summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile6
-rw-r--r--mk/build.mk23
-rw-r--r--mk/image.mk10
-rw-r--r--mk/vars.mk6
-rw-r--r--package/asterisk/Makefile4
-rw-r--r--package/avahi/Makefile5
-rw-r--r--package/avahi/patches/patch-Makefile_am12
-rw-r--r--package/avahi/patches/patch-avahi-ui_Makefile_am19
-rw-r--r--package/avahi/patches/patch-configure_ac10
-rw-r--r--package/avahi/patches/patch-ltmain_sh6
-rw-r--r--package/base-files/Makefile6
-rw-r--r--package/binutils/Makefile4
-rw-r--r--package/bitlbee/Makefile2
-rw-r--r--package/fbset/Makefile7
-rw-r--r--package/gcc/Makefile4
-rw-r--r--package/intltool/Makefile25
-rw-r--r--package/kmod/Makefile2
-rw-r--r--package/libx264/Makefile2
-rw-r--r--package/openjdk7/Makefile2
-rw-r--r--package/pcc-libs/Makefile4
-rw-r--r--package/pcc/Makefile4
-rw-r--r--package/xkeyboard-config/Makefile12
-rw-r--r--package/xkeyboard-config/patches/patch-Makefile_am10
-rw-r--r--package/xkeyboard-config/patches/patch-configure_ac13
-rw-r--r--package/xkeyboard-config/patches/patch-rules_Makefile_am10
-rw-r--r--package/xkeyboard-config/patches/patch-rules_base_extras_xml_in855
-rw-r--r--package/xkeyboard-config/patches/patch-rules_base_xml_in7654
-rw-r--r--package/xkeyboard-config/patches/patch-rules_evdev_extras_xml_in855
-rw-r--r--package/xkeyboard-config/patches/patch-rules_evdev_xml_in7654
-rw-r--r--rules.mk1
-rwxr-xr-xscripts/adkprepare.sh10
-rw-r--r--scripts/rstrip.sh9
-rw-r--r--target/arm/sys-available/acmesystems-foxg203
-rw-r--r--target/arm/sys-available/cubox-i2
-rw-r--r--target/arm/sys-available/keyasic-ka20002
-rw-r--r--target/arm/sys-available/raspberry-pi2
-rw-r--r--target/arm/sys-available/sharp-zaurus2
-rw-r--r--target/arm/sys-available/toolchain-arm2
-rw-r--r--target/arm/sys-available/toolchain-armhf4
-rw-r--r--target/config/Config.in102
-rw-r--r--target/linux/config/Config.in.graphics24
-rw-r--r--target/linux/config/Config.in.input49
-rw-r--r--target/linux/patches/3.13.5/ppc64-missing_arch_random.patch11
-rw-r--r--target/packages/pkg-available/test9
-rw-r--r--target/sh/Makefile6
-rw-r--r--target/sh/kernel/qemu-sh23
-rw-r--r--target/sh/sys-available/qemu-sh43
-rw-r--r--target/sh/sys-available/qemu-sh4eb2
-rw-r--r--target/x86/sys-available/qemu-i6862
-rw-r--r--toolchain/Makefile4
-rw-r--r--toolchain/binutils/Makefile2
-rw-r--r--toolchain/gcc/Makefile33
-rw-r--r--toolchain/gdb/Makefile4
-rw-r--r--toolchain/glibc/Makefile7
-rw-r--r--toolchain/glibc/Makefile.inc10
-rw-r--r--toolchain/glibc/patches/glibc-cross.patch33
-rw-r--r--toolchain/glibc/patches/sparc64.patch21
-rw-r--r--toolchain/musl/Makefile25
-rw-r--r--toolchain/uClibc/Makefile7
-rw-r--r--tools/lzma-loader/Makefile5
-rw-r--r--tools/lzma-loader/src/LzmaDecode.c663
-rw-r--r--tools/lzma-loader/src/LzmaDecode.h100
-rw-r--r--tools/lzma-loader/src/LzmaDecode.obin6248 -> 0 bytes
-rw-r--r--tools/lzma-loader/src/Makefile78
-rw-r--r--tools/lzma-loader/src/README55
-rw-r--r--tools/lzma-loader/src/data.lds1
-rw-r--r--tools/lzma-loader/src/data.obin3996 -> 0 bytes
-rwxr-xr-xtools/lzma-loader/src/decompressbin71097 -> 0 bytes
-rw-r--r--tools/lzma-loader/src/decompress.c186
-rwxr-xr-xtools/lzma-loader/src/decompress.imagebin3484 -> 0 bytes
-rw-r--r--tools/lzma-loader/src/decompress.lds20
-rw-r--r--tools/lzma-loader/src/decompress.lds.in20
-rw-r--r--tools/lzma-loader/src/decompress.obin2680 -> 0 bytes
-rw-r--r--tools/lzma-loader/src/head.S160
-rw-r--r--tools/lzma-loader/src/head.obin1204 -> 0 bytes
-rwxr-xr-xtools/lzma-loader/src/loaderbin3804 -> 0 bytes
-rwxr-xr-xtools/lzma-loader/src/loader.elfbin8486 -> 0 bytes
-rw-r--r--tools/lzma-loader/src/loader.gzbin2374 -> 0 bytes
-rw-r--r--tools/lzma-loader/src/loader.lds17
-rw-r--r--tools/lzma-loader/src/loader.lds.in17
-rwxr-xr-xtools/lzma-loader/src/loader.obin8486 -> 0 bytes
-rw-r--r--tools/lzma/Makefile15
-rw-r--r--tools/lzma/patches/001-large_files.patch13
-rw-r--r--tools/lzma/patches/002-lzmp.patch1059
-rw-r--r--tools/lzma/patches/003-compile_fixes.patch26
-rw-r--r--tools/lzma/patches/100-static_library.patch70
86 files changed, 17340 insertions, 2805 deletions
diff --git a/Makefile b/Makefile
index b703f6656..bf2b3be01 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
# material, please see the LICENCE file in the top-level directory.
_UNLIMIT= __limit=$$(ulimit -dH 2>/dev/null); \
- test -n "$$__limit" && ulimit -Sd $$__limit;
+ test -n "$$__limit" && ulimit -Sd $$__limit; ulimit -n 1024;
all: checkreloc .prereq_done
@${_UNLIMIT} ${GMAKE_INV} all
@@ -16,7 +16,6 @@ help:
@echo ' config - Update current config utilising a line-oriented program'
@echo ' menuconfig - Update current config utilising a menu based program'
@echo ' (default when .config does not exist)'
- @echo ' guiconfig - Update current config utilising a gui based program'
@echo ' oldconfig - Update current config utilising a provided .configs base'
@echo ' allmodconfig - New config selecting all packages as modules when possible'
@echo ' allconfig - New config selecting all packages when possible'
@@ -129,9 +128,6 @@ image_clean imageclean cleanimage: .prereq_done
menuconfig: .prereq_done
@${GMAKE_INV} menuconfig
-guiconfig: .prereq_done
- @${GMAKE_INV} guiconfig
-
defconfig: .prereq_done
@${GMAKE_INV} defconfig
diff --git a/mk/build.mk b/mk/build.mk
index 2d4523e75..8efd7becc 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -80,7 +80,6 @@ DEFCONFIG= ADK_DEBUG=n \
ADK_KERNEL_DEBUG_WITH_KGDB=n
noconfig_targets:= menuconfig \
- guiconfig \
_config \
_mconfig \
distclean \
@@ -389,6 +388,12 @@ endif
|sed -e "s#^config \(.*\)#\1=y#" \
>> $(TOPDIR)/.defconfig; \
fi
+ @if [ ! -z "$(COLLECTION)" ];then \
+ grep -h "^config" target/packages/pkg-available/* \
+ |grep -i "$(COLLECTION)" \
+ |sed -e "s#^config \(.*\)#\1=y#" \
+ >> $(TOPDIR)/.defconfig; \
+ fi
@if [ ! -z "$(PKG)" ];then \
grep "^config" target/config/Config.in \
|grep -i "$(PKG)" \
@@ -500,15 +505,6 @@ menuconfig: $(CONFIG)/mconf defconfig .menu package/Config.in.auto
@$(CONFIG)/mconf $(CONFIG_CONFIG_IN)
${POSTCONFIG}
-guiconfig: $(CONFIG)/gconf defconfig .menu package/Config.in.auto
- @${BASH} ${TOPDIR}/scripts/update-sys
- @${BASH} ${TOPDIR}/scripts/update-pkg
- @if [ ! -f .config ];then \
- $(CONFIG)/conf -D .defconfig $(CONFIG_CONFIG_IN); \
- fi
- @$(CONFIG)/gconf $(CONFIG_CONFIG_IN)
- ${POSTCONFIG}
-
_config: $(CONFIG)/conf .menu package/Config.in.auto
-@touch .config
@$(CONFIG)/conf ${W} $(CONFIG_CONFIG_IN)
@@ -555,10 +551,11 @@ test-framework:
for libc in uclibc glibc musl;do \
mkdir -p $(TOPDIR)/firmware/$(SYSTEM)_$(ARCH)_$$libc; \
( \
- for arch in arm mips mipsel x86 x86_64;do \
- echo === building qemu-$$arch for $$libc on $$(date); \
+ for arch in arm mips mipsel mips64 mips64el ppc ppc64 sparc sparc64 i686 x86_64;do \
+ tarch=$$(echo $$arch|sed -e "s#el##" -e "s#eb##" -e "s#mips64.*#mips#" -e "s#i686#x86#"); \
+ echo === building qemu-$$arch for $$libc with $$tarch on $$(date); \
$(GMAKE) prereq && \
- $(GMAKE) ARCH=$$arch SYSTEM=qemu-$$arch LIBC=$$libc FS=archive defconfig; \
+ $(GMAKE) ARCH=$$tarch SYSTEM=qemu-$$arch LIBC=$$libc FS=archive COLLECTION=test defconfig; \
$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
rm .config; \
done; \
diff --git a/mk/image.mk b/mk/image.mk
index 3f199c9cc..ec61ff374 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -145,7 +145,7 @@ ${FW_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR}
sed "s#\(.*\)#:0:0::::::\1#" | sort | \
${STAGING_HOST_DIR}/usr/bin/cpio -o -Hustar -P | gzip -n9 >$@
-${FW_DIR}/${INITRAMFS}_list: ${TARGET_DIR}
+${STAGING_TARGET_DIR}/${INITRAMFS}_list: ${TARGET_DIR}
$(BASH) ${LINUX_DIR}/scripts/gen_initramfs_list.sh -u squash -g squash \
${TARGET_DIR}/ >$@
( \
@@ -159,8 +159,8 @@ ${FW_DIR}/${INITRAMFS}_list: ${TARGET_DIR}
echo "nod /dev/ram 0655 0 0 b 1 1"; \
) >>$@
-${FW_DIR}/${INITRAMFS}: ${FW_DIR}/${INITRAMFS}_list
- ${LINUX_DIR}/usr/gen_init_cpio ${FW_DIR}/${INITRAMFS}_list | \
+${FW_DIR}/${INITRAMFS}: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
+ ${LINUX_DIR}/usr/gen_init_cpio ${STAGING_TARGET_DIR}/${INITRAMFS}_list | \
${ADK_COMPRESSION_TOOL} -c >$@
${BUILD_DIR}/root.squashfs: ${TARGET_DIR}
@@ -172,13 +172,13 @@ ${FW_DIR}/${ROOTFSJFFS2}: ${TARGET_DIR}
${STAGING_HOST_DIR}/usr/bin/mkfs.jffs2 $(ADK_JFFS2_OPTS) -q -r ${TARGET_DIR} \
--pad=$(ADK_TARGET_MTD_SIZE) -o ${FW_DIR}/${ROOTFSJFFS2} $(MAKE_TRACE)
-createinitramfs: ${FW_DIR}/${INITRAMFS}_list
+createinitramfs: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
${SED} 's/.*CONFIG_(BLK_DEV_INITRD|INITRAMFS_SOURCE|INITRAMFS_COMPRESSION).*//' \
${LINUX_DIR}/.config
( \
echo "CONFIG_BLK_DEV_INITRD=y"; \
echo "CONFIG_ACPI_INITRD_TABLE_OVERRIDE=n"; \
- echo 'CONFIG_INITRAMFS_SOURCE="${FW_DIR}/${INITRAMFS}_list"'; \
+ echo 'CONFIG_INITRAMFS_SOURCE="${STAGING_TARGET_DIR}/${INITRAMFS}_list"'; \
echo '# CONFIG_INITRAMFS_COMPRESSION_NONE is not set'; \
echo 'CONFIG_INITRAMFS_ROOT_UID=0'; \
echo 'CONFIG_INITRAMFS_ROOT_GID=0'; \
diff --git a/mk/vars.mk b/mk/vars.mk
index ef50e59d8..3798757bc 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -49,11 +49,9 @@ TARGET_PATH= ${SCRIPT_DIR}:${STAGING_TARGET_DIR}/scripts:${STAGING_HOST_DIR}/bi
HOST_PATH= ${SCRIPT_DIR}:${STAGING_HOST_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH}
AUTOTOOL_PATH= ${STAGING_HOST_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${STAGING_TARGET_DIR}/scripts:${_PATH}
ifeq ($(ADK_TARGET_ABI_X32),y)
-REAL_GNU_TARGET_NAME= $(CPU_ARCH)-x32-linux-$(ADK_TARGET_SUFFIX)
GNU_TARGET_NAME= $(CPU_ARCH)-x32-linux
else
-REAL_GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux-$(ADK_TARGET_SUFFIX)
-GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux
+GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux-$(ADK_TARGET_SUFFIX)
endif
ifeq ($(ADK_DISABLE_HONOUR_CFLAGS),)
@@ -67,7 +65,7 @@ TARGET_CROSS:=
TARGET_COMPILER_PREFIX?=
CONFIGURE_TRIPLE:=
else
-TARGET_CROSS:= $(STAGING_HOST_DIR)/bin/$(REAL_GNU_TARGET_NAME)-
+TARGET_CROSS:= $(STAGING_HOST_DIR)/bin/$(GNU_TARGET_NAME)-
TARGET_COMPILER_PREFIX?=${TARGET_CROSS}
CONFIGURE_TRIPLE:= --build=${GNU_HOST_NAME} --host=${GNU_TARGET_NAME} --target=${GNU_TARGET_NAME}
endif
diff --git a/package/asterisk/Makefile b/package/asterisk/Makefile
index 964c417df..051ad3ea3 100644
--- a/package/asterisk/Makefile
+++ b/package/asterisk/Makefile
@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:= asterisk
PKG_VERSION:= 1.8.20.1
-PKG_RELEASE:= 2
+PKG_RELEASE:= 3
PKG_MD5SUM:= 99204257de80a42c4e287fc93dfe714a
PKG_DESCR:= Open Source PBX
PKG_SECTION:= phone
@@ -101,7 +101,7 @@ endif
INSTALL_STYLE:= manual
-TARGET_LDFLAGS+= -lm -ltinfo
+TARGET_LDFLAGS+= -lm -ltinfo -ldl -lpthread
MAKE_ENV= ASTCFLAGS="${TARGET_CPPFLAGS} -DHAVE_STRTOQ" \
ASTLDFLAGS="${TARGET_LDFLAGS}"
MAKE_FLAGS+= DESTDIR="$(WRKINST)" \
diff --git a/package/avahi/Makefile b/package/avahi/Makefile
index fa8c56fe1..bd203e79e 100644
--- a/package/avahi/Makefile
+++ b/package/avahi/Makefile
@@ -5,11 +5,11 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= avahi
PKG_VERSION:= 0.6.31
-PKG_RELEASE:= 2
+PKG_RELEASE:= 3
PKG_MD5SUM:= 2f22745b8f7368ad5a0a3fddac343f2d
PKG_DESCR:= mDNS daemon
PKG_SECTION:= dhcp
-PKG_BUILDDEP:= libdaemon expat gdbm glib gettext-tiny gtk+ dbus
+PKG_BUILDDEP:= autotool libdaemon expat gdbm glib gettext-tiny gtk+ dbus
PKG_URL:= http://avahi.org/
PKG_SITES:= http://avahi.org/download/
PKG_NEED_CXX:= 1
@@ -33,6 +33,7 @@ $(eval $(call PKG_template,AVAHI_DAEMON,avahi-daemon,${PKG_VERSION}-${PKG_RELEAS
$(eval $(call PKG_template,AVAHI_DNSCONFD,avahi-dnsconfd,${PKG_VERSION}-${PKG_RELEASE},${PKGSS_AVAHI_DNSCONFD},${PKGSD_AVAHI_DNSCONFD},${PKG_SECTION}))
$(eval $(call PKG_template,LIBAVAHI,libavahi,${PKG_VERSION}-${PKG_RELEASE},,${PKGSD_LIBAVAHI},${PKGSC_LIBAVAHI},${PKG_OPTS}))
+AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --enable-glib \
--enable-gtk2 \
--enable-libdaemon \
diff --git a/package/avahi/patches/patch-Makefile_am b/package/avahi/patches/patch-Makefile_am
new file mode 100644
index 000000000..ff5160336
--- /dev/null
+++ b/package/avahi/patches/patch-Makefile_am
@@ -0,0 +1,12 @@
+--- avahi-0.6.31.orig/Makefile.am 2011-12-30 22:26:44.000000000 +0100
++++ avahi-0.6.31/Makefile.am 2014-03-04 09:57:29.000000000 +0100
+@@ -75,8 +75,7 @@ SUBDIRS = \
+ avahi-compat-howl \
+ avahi-autoipd \
+ avahi-ui \
+- avahi-ui-sharp \
+- po
++ avahi-ui-sharp
+
+ DX_INPUT = \
+ $(srcdir)/avahi-common/address.h \
diff --git a/package/avahi/patches/patch-avahi-ui_Makefile_am b/package/avahi/patches/patch-avahi-ui_Makefile_am
new file mode 100644
index 000000000..c1744d9d0
--- /dev/null
+++ b/package/avahi/patches/patch-avahi-ui_Makefile_am
@@ -0,0 +1,19 @@
+--- avahi-0.6.31.orig/avahi-ui/Makefile.am 2012-02-14 23:22:16.000000000 +0100
++++ avahi-0.6.31/avahi-ui/Makefile.am 2014-03-04 09:45:16.000000000 +0100
+@@ -79,9 +79,6 @@ libavahi_ui_gtk3_la_CFLAGS += -DDATABASE
+ endif
+
+ bin_PROGRAMS = bssh
+-desktop_DATA += bssh.desktop bvnc.desktop
+-@INTLTOOL_DESKTOP_RULE@
+-
+ bssh_SOURCES = bssh.c
+
+ if HAVE_GTK3
+@@ -108,6 +105,4 @@ endif # HAVE_GLIB
+ endif
+ endif
+
+-@INTLTOOL_DESKTOP_RULE@
+-
+ CLEANFILES = $(desktop_DATA) $(desktop_DATA_in)
diff --git a/package/avahi/patches/patch-configure_ac b/package/avahi/patches/patch-configure_ac
new file mode 100644
index 000000000..c610da2cd
--- /dev/null
+++ b/package/avahi/patches/patch-configure_ac
@@ -0,0 +1,10 @@
+--- avahi-0.6.31.orig/configure.ac 2012-02-14 22:44:25.000000000 +0100
++++ avahi-0.6.31/configure.ac 2014-03-04 08:05:14.000000000 +0100
+@@ -412,7 +412,6 @@ if test "x$have_kqueue" = "xyes" ; then
+ AC_DEFINE([HAVE_KQUEUE], 1, [Enable BSD kqueue() usage])
+ fi
+
+-IT_PROG_INTLTOOL([0.35.0])
+ GETTEXT_PACKAGE=avahi
+ AC_SUBST([GETTEXT_PACKAGE])
+ AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
diff --git a/package/avahi/patches/patch-ltmain_sh b/package/avahi/patches/patch-ltmain_sh
index c83acd926..e3bcd4083 100644
--- a/package/avahi/patches/patch-ltmain_sh
+++ b/package/avahi/patches/patch-ltmain_sh
@@ -1,6 +1,6 @@
---- avahi-0.6.30.orig/ltmain.sh 2011-04-04 00:10:35.000000000 +0200
-+++ avahi-0.6.30/ltmain.sh 2011-05-12 12:30:44.000000000 +0200
-@@ -5840,7 +5840,7 @@ func_mode_link ()
+--- avahi-0.6.31.orig/ltmain.sh 2012-02-14 23:36:26.000000000 +0100
++++ avahi-0.6.31/ltmain.sh 2014-03-04 07:44:03.000000000 +0100
+@@ -5853,7 +5853,7 @@ func_mode_link ()
# -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index ad09f8d3d..9323b25ad 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -75,6 +75,12 @@ endif
ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC64),y)
$(SED) 's#ttyS#hvc#g' $(IDIR_BASE_FILES)/etc/inittab
endif
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_SH4),y)
+ $(SED) 's#ttyS0#ttySC1#g' $(IDIR_BASE_FILES)/etc/inittab
+endif
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_SH4EB),y)
+ $(SED) 's#ttyS0#ttySC1#g' $(IDIR_BASE_FILES)/etc/inittab
+endif
ifeq ($(ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800),y)
$(SED) 's#ttyS#ttyUL#g' $(IDIR_BASE_FILES)/etc/inittab
endif
diff --git a/package/binutils/Makefile b/package/binutils/Makefile
index 19b945f41..b6e6fb616 100644
--- a/package/binutils/Makefile
+++ b/package/binutils/Makefile
@@ -35,8 +35,8 @@ TARGET_CFLAGS:= $(filter-out -flto,$(TARGET_CFLAGS))
TARGET_CFLAGS+= -fPIC
ifeq ($(ADK_NATIVE),)
CONFIGURE_ARGS+= --disable-werror \
- --host=$(REAL_GNU_TARGET_NAME) \
- --target=$(REAL_GNU_TARGET_NAME)
+ --host=$(GNU_TARGET_NAME) \
+ --target=$(GNU_TARGET_NAME)
else
CONFIGURE_ARGS+= --disable-werror
endif
diff --git a/package/bitlbee/Makefile b/package/bitlbee/Makefile
index e3ca9f404..0852d8e4f 100644
--- a/package/bitlbee/Makefile
+++ b/package/bitlbee/Makefile
@@ -20,7 +20,7 @@ $(eval $(call PKG_template,BITLBEE,bitlbee,${PKG_VERSION}-${PKG_RELEASE},${PKG_D
CONFIG_STYLE:= minimal
TARGET_CFLAGS+= -fPIC
-CONFIGURE_ARGS:= --target=${REAL_GNU_TARGET_NAME} \
+CONFIGURE_ARGS:= --target=${GNU_TARGET_NAME} \
--prefix=/usr \
--bindir=/usr/sbin \
--etcdir=/etc/bitlbee \
diff --git a/package/fbset/Makefile b/package/fbset/Makefile
index bd8186ceb..d9b51e299 100644
--- a/package/fbset/Makefile
+++ b/package/fbset/Makefile
@@ -5,9 +5,10 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= fbset
PKG_VERSION:= 2.1
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= e547cfcbb8c1a4f2a6b8ba4acb8b7164
PKG_DESCR:= framebuffer utility
+PKG_DEPENDS:= bison-host flex-host
PKG_SECTION:= utils
PKG_SITES:= http://users.telenet.be/geertu/Linux/fbdev/
@@ -22,8 +23,8 @@ BUILD_STYLE:= manual
INSTALL_STYLE:= manual
do-build:
- (cd ${WRKSRC} && bison -d modes.y)
- (cd ${WRKSRC} && flex modes.l)
+ (cd ${WRKSRC} && PATH='${HOST_PATH}' bison -d modes.y)
+ (cd ${WRKSRC} && PATH='${HOST_PATH}' flex modes.l)
${TARGET_CC} ${TARGET_CFLAGS} -I${WRKBUILD} -c -o \
${WRKBUILD}/modes.tab.o ${WRKSRC}/modes.tab.c
${TARGET_CC} ${TARGET_CFLAGS} -I${WRKBUILD} -c -o \
diff --git a/package/gcc/Makefile b/package/gcc/Makefile
index 99984ac20..6d8ee9620 100644
--- a/package/gcc/Makefile
+++ b/package/gcc/Makefile
@@ -55,8 +55,8 @@ endif
CONFIGURE_ENV+= have_sys_sdt_h=no
-CONFIGURE_ARGS+= --host=$(REAL_GNU_TARGET_NAME) \
- --target=$(REAL_GNU_TARGET_NAME) \
+CONFIGURE_ARGS+= --host=$(GNU_TARGET_NAME) \
+ --target=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--disable-__cxa_atexit \
--without-headers \
diff --git a/package/intltool/Makefile b/package/intltool/Makefile
deleted file mode 100644
index 120658360..000000000
--- a/package/intltool/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:= intltool
-PKG_VERSION:= 0.50.2
-PKG_RELEASE:= 1
-PKG_MD5SUM:= 23fbd879118253cb99aeac067da5f591
-PKG_DESCR:= Internationalization Tool Collection
-PKG_SECTION:= misc
-PKG_SITES:= https://launchpad.net/intltool/trunk/0.50.2/+download/
-
-include $(TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,INTLTOOL,intltool,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-XAKE_FLAGS+= PERL="/usr/bin/perl"
-
-intltool-install:
- $(INSTALL_DIR) $(IDIR_INTLTOOL)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/intltool* \
- $(IDIR_INTLTOOL)/usr/bin
-
-include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/kmod/Makefile b/package/kmod/Makefile
index 944f47599..e02addded 100644
--- a/package/kmod/Makefile
+++ b/package/kmod/Makefile
@@ -20,7 +20,7 @@ include $(TOPDIR)/mk/package.mk
$(eval $(call PKG_template,KMOD,kmod,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
CONFIG_STYLE:= minimal
-CONFIGURE_ARGS+= --host=${REAL_GNU_TARGET_NAME}
+CONFIGURE_ARGS+= --host=${GNU_TARGET_NAME}
kmod-install:
$(INSTALL_DIR) $(IDIR_KMOD)/usr/bin
diff --git a/package/libx264/Makefile b/package/libx264/Makefile
index 0a82c5f62..96f6de14d 100644
--- a/package/libx264/Makefile
+++ b/package/libx264/Makefile
@@ -29,7 +29,7 @@ CONFIGURE_ARGS+= --disable-cli \
--disable-opencl \
--enable-shared \
--prefix=/usr \
- --host=${REAL_GNU_TARGET_NAME} \
+ --host=${GNU_TARGET_NAME} \
--sysroot=${STAGING_TARGET_DIR} \
--cross-prefix=$(TARGET_CROSS)
diff --git a/package/openjdk7/Makefile b/package/openjdk7/Makefile
index ea998be6b..b86680a7b 100644
--- a/package/openjdk7/Makefile
+++ b/package/openjdk7/Makefile
@@ -88,7 +88,7 @@ CONFIGURE_ARGS+= $(CONFIGURE_COMMON)
CONFIGURE_ARGS+= --disable-bootstrap
CONFIGURE_ENV+= LD_LIBRARY_PATH=$(STAGING_HOST_DIR)/usr/lib
-MAKE_ENV+= ALT_COMPILER_PATH=$(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/bin \
+MAKE_ENV+= ALT_COMPILER_PATH=$(STAGING_HOST_DIR)/$(GNU_TARGET_NAME)/bin \
ALT_OPENWIN_HOME=$(STAGING_DIR)/usr/ \
ALT_CUPS_HEADERS_PATH=$(STAGING_DIR)/usr/include/ \
ALT_FREETYPE_HEADERS_PATH=$(STAGING_DIR)/usr/include/ \
diff --git a/package/pcc-libs/Makefile b/package/pcc-libs/Makefile
index 9860b6805..16b05879e 100644
--- a/package/pcc-libs/Makefile
+++ b/package/pcc-libs/Makefile
@@ -20,8 +20,8 @@ include $(TOPDIR)/mk/package.mk
$(eval $(call PKG_template,PCC_LIBS,pcc-libs,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
# we cross-compile a native compiler for the target system
-CONFIGURE_ARGS+= --host=${REAL_GNU_TARGET_NAME}
-CONFIGURE_ARGS+= --target=${REAL_GNU_TARGET_NAME}
+CONFIGURE_ARGS+= --host=${GNU_TARGET_NAME}
+CONFIGURE_ARGS+= --target=${GNU_TARGET_NAME}
pcc-libs-install:
$(INSTALL_DIR) $(IDIR_PCC_LIBS)/usr/bin
diff --git a/package/pcc/Makefile b/package/pcc/Makefile
index b3c0cbd88..891651d3a 100644
--- a/package/pcc/Makefile
+++ b/package/pcc/Makefile
@@ -22,8 +22,8 @@ include $(TOPDIR)/mk/package.mk
$(eval $(call PKG_template,PCC,pcc,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
# we cross-compile a native compiler for the target system
-CONFIGURE_ARGS+= --host=${REAL_GNU_TARGET_NAME}
-CONFIGURE_ARGS+= --target=${REAL_GNU_TARGET_NAME}
+CONFIGURE_ARGS+= --host=${GNU_TARGET_NAME}
+CONFIGURE_ARGS+= --target=${GNU_TARGET_NAME}
CONFIGURE_ARGS+= --with-assembler=/usr/bin/as
CONFIGURE_ARGS+= --with-linker=/usr/bin/ld
diff --git a/package/xkeyboard-config/Makefile b/package/xkeyboard-config/Makefile
index 68a89e31e..df46bc896 100644
--- a/package/xkeyboard-config/Makefile
+++ b/package/xkeyboard-config/Makefile
@@ -4,18 +4,22 @@
include $(TOPDIR)/rules.mk
PKG_NAME:= xkeyboard-config
-PKG_VERSION:= 2.6
+PKG_VERSION:= 2.11
PKG_RELEASE:= 1
-PKG_MD5SUM:= 9a77cb477aec1123720332a091255f25
+PKG_MD5SUM:= e3defd29cc464cc1a1dfa0eebaca53b1
PKG_DESCR:= X keyboard config
PKG_SECTION:= x11/libs
-PKG_BUILDDEP:= xkbcomp
-PKG_SITES:= ${MASTER_SITE_XORG}
+PKG_BUILDDEP:= autotool util-macros xkbcomp
+PKG_SITES:= http://www.x.org/releases/individual/data/xkeyboard-config/
+
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
include $(TOPDIR)/mk/package.mk
$(eval $(call PKG_template,XKEYBOARD_CONFIG,xkeyboard-config,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+AUTOTOOL_STYLE:= autoreconf
+
xkeyboard-config-install:
${INSTALL_DIR} ${IDIR_XKEYBOARD_CONFIG}/usr/share/X11/xkb
${CP} ${WRKINST}/usr/share/X11/xkb/* \
diff --git a/package/xkeyboard-config/patches/patch-Makefile_am b/package/xkeyboard-config/patches/patch-Makefile_am
new file mode 100644
index 000000000..91f90f91b
--- /dev/null
+++ b/package/xkeyboard-config/patches/patch-Makefile_am
@@ -0,0 +1,10 @@
+--- xkeyboard-config-2.11.orig/Makefile.am 2013-10-19 18:02:53.000000000 +0200
++++ xkeyboard-config-2.11/Makefile.am 2014-03-04 14:43:40.000000000 +0100
+@@ -1,6 +1,6 @@
+ AUTOMAKE_OPTIONS = foreign
+
+-SUBDIRS = compat geometry keycodes po rules symbols types docs man
++SUBDIRS = compat geometry keycodes rules symbols types
+
+ pkgconfigdir = $(datadir)/pkgconfig
+ pkgconfig_DATA = xkeyboard-config.pc
diff --git a/package/xkeyboard-config/patches/patch-configure_ac b/package/xkeyboard-config/patches/patch-configure_ac
new file mode 100644
index 000000000..2cb7cc7db
--- /dev/null
+++ b/package/xkeyboard-config/patches/patch-configure_ac
@@ -0,0 +1,13 @@
+--- xkeyboard-config-2.11.orig/configure.ac 2014-01-29 21:08:27.000000000 +0100
++++ xkeyboard-config-2.11/configure.ac 2014-03-04 14:43:26.000000000 +0100
+@@ -63,10 +63,6 @@ AM_CONDITIONAL(USE_COMPAT_RULES, test "x
+ # ****
+ # i18n
+ # ****
+-AC_PROG_INTLTOOL(0.30)
+-
+-AM_GNU_GETTEXT_VERSION([0.18.1])
+-AM_GNU_GETTEXT([external])
+
+ GETTEXT_PACKAGE=xkeyboard-config
+ AC_SUBST(GETTEXT_PACKAGE)
diff --git a/package/xkeyboard-config/patches/patch-rules_Makefile_am b/package/xkeyboard-config/patches/patch-rules_Makefile_am
new file mode 100644
index 000000000..ac07e510b
--- /dev/null
+++ b/package/xkeyboard-config/patches/patch-rules_Makefile_am
@@ -0,0 +1,10 @@
+--- xkeyboard-config-2.11.orig/rules/Makefile.am 2013-12-17 23:59:06.000000000 +0100
++++ xkeyboard-config-2.11/rules/Makefile.am 2014-03-04 14:30:44.000000000 +0100
+@@ -244,4 +244,6 @@ MAINTAINERCLEANFILES = $(srcdir)/evdev.x
+ rulesdir = $(xkb_base)/rules
+ xmldir = $(rulesdir)
+
+-@INTLTOOL_XML_NOMERGE_RULE@
++# remove intltool-merge dependency
++%.xml: %.xml.in
++ cp $< $@
diff --git a/package/xkeyboard-config/patches/patch-rules_base_extras_xml_in b/package/xkeyboard-config/patches/patch-rules_base_extras_xml_in
new file mode 100644
index 000000000..beb2b7a9d
--- /dev/null
+++ b/package/xkeyboard-config/patches/patch-rules_base_extras_xml_in
@@ -0,0 +1,855 @@
+--- xkeyboard-config-2.11.orig/rules/base.extras.xml.in 2013-12-24 00:48:45.000000000 +0100
++++ xkeyboard-config-2.11/rules/base.extras.xml.in 2014-03-04 14:31:19.000000000 +0100
+@@ -1,4 +1,4 @@
+-<?xml version="1.0" encoding="utf-8"?>
++<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
+ <xkbConfigRegistry>
+ <modelList/>
+@@ -6,8 +6,8 @@
+ <layout>
+ <configItem>
+ <name>apl</name>
+- <_shortDescription>apl</_shortDescription>
+- <_description>APL keyboard symbols</_description>
++ <shortDescription>apl</shortDescription>
++ <description>APL keyboard symbols</description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+@@ -58,29 +58,29 @@
+ <layout>
+ <configItem>
+ <name>ca</name>
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Canada)</_description>
++ <shortDescription>fr</shortDescription>
++ <description>French (Canada)</description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>kut</name>
+- <_shortDescription>kut</_shortDescription>
+- <_description>Kutenai</_description>
++ <shortDescription>kut</shortDescription>
++ <description>Kutenai</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>shs</name>
+- <_shortDescription>shs</_shortDescription>
+- <_description>Secwepemctsin</_description>
++ <shortDescription>shs</shortDescription>
++ <description>Secwepemctsin</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Multilingual (Canada, Sun Type 6/7)</_description>
++ <description>Multilingual (Canada, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -88,8 +88,8 @@
+ <layout>
+ <configItem>
+ <name>de</name>
+- <_shortDescription>de</_shortDescription>
+- <_description>German</_description>
++ <shortDescription>de</shortDescription>
++ <description>German</description>
+ <languageList>
+ <iso639Id>ger</iso639Id>
+ </languageList>
+@@ -98,7 +98,7 @@
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>German (US keyboard with German letters)</_description>
++ <description>German (US keyboard with German letters)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -107,7 +107,7 @@
+ <variant>
+ <configItem>
+ <name>hu</name>
+- <_description>German (with Hungarian letters and no dead keys)</_description>
++ <description>German (with Hungarian letters and no dead keys)</description>
+ <languageList>
+ <iso639Id>ger</iso639Id>
+ <iso639Id>hun</iso639Id>
+@@ -117,7 +117,7 @@
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>German (Sun Type 6/7)</_description>
++ <description>German (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -125,15 +125,15 @@
+ <layout>
+ <configItem>
+ <name>ir</name>
+- <_shortDescription>fa</_shortDescription>
+- <_description>Persian</_description>
++ <shortDescription>fa</shortDescription>
++ <description>Persian</description>
+ <languageList><iso639Id>per</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ave</name>
+- <_description>Avestan</_description>
++ <description>Avestan</description>
+ <languageList><iso639Id>ave</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -142,21 +142,21 @@
+ <layout>
+ <configItem>
+ <name>lt</name>
+- <_shortDescription>lt</_shortDescription>
+- <_description>Lithuanian</_description>
++ <shortDescription>lt</shortDescription>
++ <description>Lithuanian</description>
+ <languageList><iso639Id>lit</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>us_dvorak</name>
+- <_description>Lithuanian (US Dvorak with Lithuanian letters)</_description>
++ <description>Lithuanian (US Dvorak with Lithuanian letters)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Lithuanian (Sun Type 6/7)</_description>
++ <description>Lithuanian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -164,8 +164,8 @@
+ <layout>
+ <configItem>
+ <name>lv</name>
+- <_shortDescription>lv</_shortDescription>
+- <_description>Latvian</_description>
++ <shortDescription>lv</shortDescription>
++ <description>Latvian</description>
+ <languageList>
+ <iso639Id>lav</iso639Id>
+ </languageList>
+@@ -174,55 +174,55 @@
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Latvian (US Dvorak)</_description>
++ <description>Latvian (US Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ykeydvorak</name>
+- <_description>Latvian (US Dvorak, Y variant)</_description>
++ <description>Latvian (US Dvorak, Y variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>minuskeydvorak</name>
+- <_description>Latvian (US Dvorak, minus variant)</_description>
++ <description>Latvian (US Dvorak, minus variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorakprogr</name>
+- <_description>Latvian (programmer US Dvorak)</_description>
++ <description>Latvian (programmer US Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ykeydvorakprogr</name>
+- <_description>Latvian (programmer US Dvorak, Y variant)</_description>
++ <description>Latvian (programmer US Dvorak, Y variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>minuskeydvorakprogr</name>
+- <_description>Latvian (programmer US Dvorak, minus variant)</_description>
++ <description>Latvian (programmer US Dvorak, minus variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>Latvian (US Colemak)</_description>
++ <description>Latvian (US Colemak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>apostrophecolemak</name>
+- <_description>Latvian (US Colemak, apostrophe variant)</_description>
++ <description>Latvian (US Colemak, apostrophe variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Latvian (Sun Type 6/7)</_description>
++ <description>Latvian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -230,34 +230,34 @@
+ <layout>
+ <configItem>
+ <name>us</name>
+- <_shortDescription>en</_shortDescription>
+- <_description>English (US)</_description>
++ <shortDescription>en</shortDescription>
++ <description>English (US)</description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>intl-unicode</name>
+- <_description>English (US, international AltGr Unicode combining)</_description>
++ <description>English (US, international AltGr Unicode combining)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt-intl-unicode</name>
+- <_description>English (US, international AltGr Unicode combining, alternative)</_description>
++ <description>English (US, international AltGr Unicode combining, alternative)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ats</name>
+- <_description>Atsina</_description>
+- <!-- No ISO code in ISO639-2, only draft ISO693-3 -->
++ <description>Atsina</description>
++
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>crd</name>
+- <_description>Coeur d'Alene Salish</_description>
++ <description>Coeur d'Alene Salish</description>
+ <languageList><iso639Id>crd</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -274,13 +274,13 @@
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>English (US, Sun Type 6/7)</_description>
++ <description>English (US, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>norman</name>
+- <_description>English (Norman)</_description>
++ <description>English (Norman)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -288,27 +288,27 @@
+ <layout>
+ <configItem>
+ <name>pl</name>
+- <_shortDescription>pl</_shortDescription>
+- <_description>Polish</_description>
++ <shortDescription>pl</shortDescription>
++ <description>Polish</description>
+ <languageList><iso639Id>pol</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>intl</name>
+- <_description>Polish (international with dead keys)</_description>
++ <description>Polish (international with dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>Polish (Colemak)</_description>
++ <description>Polish (Colemak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Polish (Sun Type 6/7)</_description>
++ <description>Polish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -316,16 +316,16 @@
+ <layout>
+ <configItem>
+ <name>ro</name>
+- <_shortDescription>ro</_shortDescription>
+- <_description>Romanian</_description>
++ <shortDescription>ro</shortDescription>
++ <description>Romanian</description>
+ <languageList><iso639Id>rum</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>crh_dobruja</name>
+- <_shortDescription>crh</_shortDescription>
+- <_description>Crimean Tatar (Dobruja Q)</_description>
++ <shortDescription>crh</shortDescription>
++ <description>Crimean Tatar (Dobruja Q)</description>
+ <languageList>
+ <iso639Id>crh</iso639Id>
+ </languageList>
+@@ -334,13 +334,13 @@
+ <variant>
+ <configItem>
+ <name>ergonomic</name>
+- <_description>Romanian (ergonomic Touchtype)</_description>
++ <description>Romanian (ergonomic Touchtype)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Romanian (Sun Type 6/7)</_description>
++ <description>Romanian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -348,15 +348,15 @@
+ <layout>
+ <configItem>
+ <name>rs</name>
+- <_shortDescription>sr</_shortDescription>
+- <_description>Serbian</_description>
++ <shortDescription>sr</shortDescription>
++ <description>Serbian</description>
+ <languageList><iso639Id>srp</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>combiningkeys</name>
+- <_description>Serbian (combining accents instead of dead keys)</_description>
++ <description>Serbian (combining accents instead of dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -364,8 +364,8 @@
+ <layout>
+ <configItem>
+ <name>ru</name>
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian</_description>
++ <shortDescription>ru</shortDescription>
++ <description>Russian</description>
+ </configItem>
+ <variantList>
+ <variant>
+@@ -378,8 +378,8 @@
+ <variant>
+ <configItem>
+ <name>ruu</name>
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (with Ukrainian-Belorussian layout)</_description>
++ <shortDescription>ru</shortDescription>
++ <description>Russian (with Ukrainian-Belorussian layout)</description>
+ <languageList><iso639Id>rus</iso639Id>
+ <iso639Id>ukr</iso639Id>
+ <iso639Id>bel</iso639Id></languageList>
+@@ -388,7 +388,7 @@
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Russian (Sun Type 6/7)</_description>
++ <description>Russian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -396,8 +396,8 @@
+ <layout>
+ <configItem>
+ <name>am</name>
+- <_shortDescription>hy</_shortDescription>
+- <_description>Armenian</_description>
++ <shortDescription>hy</shortDescription>
++ <description>Armenian</description>
+ <languageList>
+ <iso639Id>hye</iso639Id>
+ </languageList>
+@@ -406,7 +406,7 @@
+ <variant>
+ <configItem>
+ <name>olpc-phonetic</name>
+- <_description>Armenian (OLPC phonetic)</_description>
++ <description>Armenian (OLPC phonetic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -414,15 +414,15 @@
+ <layout>
+ <configItem>
+ <name>il</name>
+- <_shortDescription>he</_shortDescription>
+- <_description>Hebrew</_description>
++ <shortDescription>he</shortDescription>
++ <description>Hebrew</description>
+ <languageList><iso639Id>heb</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>biblicalSIL</name>
+- <_description>Hebrew (Biblical, SIL phonetic)</_description>
++ <description>Hebrew (Biblical, SIL phonetic)</description>
+ <languageList><iso639Id>heb</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -431,14 +431,14 @@
+ <layout>
+ <configItem>
+ <name>ara</name>
+- <_shortDescription>ar</_shortDescription>
+- <_description>Arabic</_description>
++ <shortDescription>ar</shortDescription>
++ <description>Arabic</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Arabic (Sun Type 6/7)</_description>
++ <description>Arabic (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -446,14 +446,14 @@
+ <layout>
+ <configItem>
+ <name>be</name>
+- <_shortDescription>be</_shortDescription>
+- <_description>Belgian</_description>
++ <shortDescription>be</shortDescription>
++ <description>Belgian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Belgian (Sun Type 6/7)</_description>
++ <description>Belgian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -461,14 +461,14 @@
+ <layout>
+ <configItem>
+ <name>br</name>
+- <_shortDescription>pt</_shortDescription>
+- <_description>Portuguese (Brazil)</_description>
++ <shortDescription>pt</shortDescription>
++ <description>Portuguese (Brazil)</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Portuguese (Brazil, Sun Type 6/7)</_description>
++ <description>Portuguese (Brazil, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -476,14 +476,14 @@
+ <layout>
+ <configItem>
+ <name>cz</name>
+- <_shortDescription>cs</_shortDescription>
+- <_description>Czech</_description>
++ <shortDescription>cs</shortDescription>
++ <description>Czech</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Czech (Sun Type 6/7)</_description>
++ <description>Czech (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -491,14 +491,14 @@
+ <layout>
+ <configItem>
+ <name>dk</name>
+- <_shortDescription>da</_shortDescription>
+- <_description>Danish</_description>
++ <shortDescription>da</shortDescription>
++ <description>Danish</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Danish (Sun Type 6/7)</_description>
++ <description>Danish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -506,14 +506,14 @@
+ <layout>
+ <configItem>
+ <name>nl</name>
+- <_shortDescription>nl</_shortDescription>
+- <_description>Dutch</_description>
++ <shortDescription>nl</shortDescription>
++ <description>Dutch</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Dutch (Sun Type 6/7)</_description>
++ <description>Dutch (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -521,14 +521,14 @@
+ <layout>
+ <configItem>
+ <name>ee</name>
+- <_shortDescription>et</_shortDescription>
+- <_description>Estonian</_description>
++ <shortDescription>et</shortDescription>
++ <description>Estonian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Estonian (Sun Type 6/7)</_description>
++ <description>Estonian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -536,14 +536,14 @@
+ <layout>
+ <configItem>
+ <name>fi</name>
+- <_shortDescription>fi</_shortDescription>
+- <_description>Finnish</_description>
++ <shortDescription>fi</shortDescription>
++ <description>Finnish</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Finnish (Sun Type 6/7)</_description>
++ <description>Finnish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -551,14 +551,14 @@
+ <layout>
+ <configItem>
+ <name>fr</name>
+- <_shortDescription>fr</_shortDescription>
+- <_description>French</_description>
++ <shortDescription>fr</shortDescription>
++ <description>French</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>French (Sun Type 6/7)</_description>
++ <description>French (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -566,14 +566,14 @@
+ <layout>
+ <configItem>
+ <name>gr</name>
+- <_shortDescription>gr</_shortDescription>
+- <_description>Greek</_description>
++ <shortDescription>gr</shortDescription>
++ <description>Greek</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Greek (Sun Type 6/7)</_description>
++ <description>Greek (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -581,14 +581,14 @@
+ <layout>
+ <configItem>
+ <name>it</name>
+- <_shortDescription>it</_shortDescription>
+- <_description>Italian</_description>
++ <shortDescription>it</shortDescription>
++ <description>Italian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Italian (Sun Type 6/7)</_description>
++ <description>Italian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -596,26 +596,26 @@
+ <layout>
+ <configItem>
+ <name>jp</name>
+- <_shortDescription>ja</_shortDescription>
+- <_description>Japanese</_description>
++ <shortDescription>ja</shortDescription>
++ <description>Japanese</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Japanese (Sun Type 6)</_description>
++ <description>Japanese (Sun Type 6)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type7</name>
+- <_description>Japanese (Sun Type 7 - pc compatible)</_description>
++ <description>Japanese (Sun Type 7 - pc compatible)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type7_suncompat</name>
+- <_description>Japanese (Sun Type 7 - sun compatible)</_description>
++ <description>Japanese (Sun Type 7 - sun compatible)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -623,14 +623,14 @@
+ <layout>
+ <configItem>
+ <name>no</name>
+- <_shortDescription>no</_shortDescription>
+- <_description>Norwegian</_description>
++ <shortDescription>no</shortDescription>
++ <description>Norwegian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Norwegian (Sun Type 6/7)</_description>
++ <description>Norwegian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -638,14 +638,14 @@
+ <layout>
+ <configItem>
+ <name>pt</name>
+- <_shortDescription>pt</_shortDescription>
+- <_description>Portuguese</_description>
++ <shortDescription>pt</shortDescription>
++ <description>Portuguese</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Portuguese (Sun Type 6/7)</_description>
++ <description>Portuguese (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -653,14 +653,14 @@
+ <layout>
+ <configItem>
+ <name>sk</name>
+- <_shortDescription>sk</_shortDescription>
+- <_description>Slovak</_description>
++ <shortDescription>sk</shortDescription>
++ <description>Slovak</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Slovak (Sun Type 6/7)</_description>
++ <description>Slovak (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -668,14 +668,14 @@
+ <layout>
+ <configItem>
+ <name>es</name>
+- <_shortDescription>es</_shortDescription>
+- <_description>Spanish</_description>
++ <shortDescription>es</shortDescription>
++ <description>Spanish</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Spanish (Sun Type 6/7)</_description>
++ <description>Spanish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -683,14 +683,14 @@
+ <layout>
+ <configItem>
+ <name>se</name>
+- <_shortDescription>sv</_shortDescription>
+- <_description>Swedish</_description>
++ <shortDescription>sv</shortDescription>
++ <description>Swedish</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Swedish (Sun Type 6/7)</_description>
++ <description>Swedish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -698,20 +698,20 @@
+ <layout>
+ <configItem>
+ <name>ch</name>
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Switzerland)</_description>
++ <shortDescription>de</shortDescription>
++ <description>German (Switzerland)</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6_de</name>
+- <_description>German (Switzerland, Sun Type 6/7)</_description>
++ <description>German (Switzerland, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6_fr</name>
+- <_description>French (Switzerland, Sun Type 6/7)</_description>
++ <description>French (Switzerland, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -719,14 +719,14 @@
+ <layout>
+ <configItem>
+ <name>tr</name>
+- <_shortDescription>tr</_shortDescription>
+- <_description>Turkish</_description>
++ <shortDescription>tr</shortDescription>
++ <description>Turkish</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Turkish (Sun Type 6/7)</_description>
++ <description>Turkish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -734,14 +734,14 @@
+ <layout>
+ <configItem>
+ <name>ua</name>
+- <_shortDescription>uk</_shortDescription>
+- <_description>Ukrainian</_description>
++ <shortDescription>uk</shortDescription>
++ <description>Ukrainian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Ukrainian (Sun Type 6/7)</_description>
++ <description>Ukrainian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -749,14 +749,14 @@
+ <layout>
+ <configItem>
+ <name>gb</name>
+- <_shortDescription>en</_shortDescription>
+- <_description>English (UK)</_description>
++ <shortDescription>en</shortDescription>
++ <description>English (UK)</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>English (UK, Sun Type 6/7)</_description>
++ <description>English (UK, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -764,18 +764,18 @@
+ <layout>
+ <configItem>
+ <name>kr</name>
+- <_shortDescription>ko</_shortDescription>
+- <_description>Korean</_description>
++ <shortDescription>ko</shortDescription>
++ <description>Korean</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Korean (Sun Type 6/7)</_description>
++ <description>Korean (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ </layoutList>
+ <optionList/>
+-</xkbConfigRegistry>
++</xkbConfigRegistry>
+\ No newline at end of file
diff --git a/package/xkeyboard-config/patches/patch-rules_base_xml_in b/package/xkeyboard-config/patches/patch-rules_base_xml_in
new file mode 100644
index 000000000..5249ade99
--- /dev/null
+++ b/package/xkeyboard-config/patches/patch-rules_base_xml_in
@@ -0,0 +1,7654 @@
+--- xkeyboard-config-2.11.orig/rules/base.xml.in 2014-01-15 02:02:39.000000000 +0100
++++ xkeyboard-config-2.11/rules/base.xml.in 2014-03-04 14:31:12.000000000 +0100
+@@ -5,627 +5,627 @@
+ <model>
+ <configItem>
+ <name>pc101</name>
+- <_description>Generic 101-key PC</_description>
++ <description>Generic 101-key PC</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>pc102</name>
+- <_description>Generic 102-key (Intl) PC</_description>
++ <description>Generic 102-key (Intl) PC</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>pc104</name>
+- <_description>Generic 104-key PC</_description>
++ <description>Generic 104-key PC</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>pc105</name>
+- <_description>Generic 105-key (Intl) PC</_description>
++ <description>Generic 105-key (Intl) PC</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dell101</name>
+- <_description>Dell 101-key PC</_description>
++ <description>Dell 101-key PC</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>latitude</name>
+- <_description>Dell Latitude series laptop</_description>
++ <description>Dell Latitude series laptop</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dellm65</name>
+- <_description>Dell Precision M65</_description>
++ <description>Dell Precision M65</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>everex</name>
+- <_description>Everex STEPnote</_description>
++ <description>Everex STEPnote</description>
+ <vendor>Everex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>flexpro</name>
+- <_description>Keytronic FlexPro</_description>
++ <description>Keytronic FlexPro</description>
+ <vendor>Keytronic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoft</name>
+- <_description>Microsoft Natural</_description>
++ <description>Microsoft Natural</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>omnikey101</name>
+- <_description>Northgate OmniKey 101</_description>
++ <description>Northgate OmniKey 101</description>
+ <vendor>Northgate</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>winbook</name>
+- <_description>Winbook Model XP5</_description>
++ <description>Winbook Model XP5</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>pc98</name>
+- <_description>PC-98xx Series</_description>
++ <description>PC-98xx Series</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>a4techKB21</name>
+- <_description>A4Tech KB-21</_description>
++ <description>A4Tech KB-21</description>
+ <vendor>A4Tech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>a4techKBS8</name>
+- <_description>A4Tech KBS-8</_description>
++ <description>A4Tech KBS-8</description>
+ <vendor>A4Tech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>a4_rfkb23</name>
+- <_description>A4Tech Wireless Desktop RFKB-23</_description>
++ <description>A4Tech Wireless Desktop RFKB-23</description>
+ <vendor>A4Tech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>airkey</name>
+- <_description>Acer AirKey V</_description>
++ <description>Acer AirKey V</description>
+ <vendor>Acer</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>azonaRF2300</name>
+- <_description>Azona RF2300 wireless Internet Keyboard</_description>
++ <description>Azona RF2300 wireless Internet Keyboard</description>
+ <vendor>Azona</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>scorpius</name>
+- <_description>Advance Scorpius KI</_description>
++ <description>Advance Scorpius KI</description>
+ <vendor>Scorpius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>brother</name>
+- <_description>Brother Internet Keyboard</_description>
++ <description>Brother Internet Keyboard</description>
+ <vendor>Brother</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc5113rf</name>
+- <_description>BTC 5113RF Multimedia</_description>
++ <description>BTC 5113RF Multimedia</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc5126t</name>
+- <_description>BTC 5126T</_description>
++ <description>BTC 5126T</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc6301urf</name>
+- <_description>BTC 6301URF</_description>
++ <description>BTC 6301URF</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc9000</name>
+- <_description>BTC 9000</_description>
++ <description>BTC 9000</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc9000a</name>
+- <_description>BTC 9000A</_description>
++ <description>BTC 9000A</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc9001ah</name>
+- <_description>BTC 9001AH</_description>
++ <description>BTC 9001AH</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc5090</name>
+- <_description>BTC 5090</_description>
++ <description>BTC 5090</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc9019u</name>
+- <_description>BTC 9019U</_description>
++ <description>BTC 9019U</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc9116u</name>
+- <_description>BTC 9116U Mini Wireless Internet and Gaming</_description>
++ <description>BTC 9116U Mini Wireless Internet and Gaming</description>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherryblue</name>
+- <_description>Cherry Blue Line CyBo@rd</_description>
++ <description>Cherry Blue Line CyBo@rd</description>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherryblueb</name>
+- <_description>Cherry CyMotion Master XPress</_description>
++ <description>Cherry CyMotion Master XPress</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherrybluea</name>
+- <_description>Cherry Blue Line CyBo@rd (alternate option)</_description>
++ <description>Cherry Blue Line CyBo@rd (alternate option)</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherrycyboard</name>
+- <_description>Cherry CyBo@rd USB-Hub</_description>
++ <description>Cherry CyBo@rd USB-Hub</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherrycmexpert</name>
+- <_description>Cherry CyMotion Expert</_description>
++ <description>Cherry CyMotion Expert</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherrybunlim</name>
+- <_description>Cherry B.UNLIMITED</_description>
++ <description>Cherry B.UNLIMITED</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chicony</name>
+- <_description>Chicony Internet Keyboard</_description>
++ <description>Chicony Internet Keyboard</description>
+ <vendor>Chicony</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chicony0108</name>
+- <_description>Chicony KU-0108</_description>
++ <description>Chicony KU-0108</description>
+ <vendor>Chicony</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chicony0420</name>
+- <_description>Chicony KU-0420</_description>
++ <description>Chicony KU-0420</description>
+ <vendor>Chicony</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chicony9885</name>
+- <_description>Chicony KB-9885</_description>
++ <description>Chicony KB-9885</description>
+ <vendor>Chicony</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqeak8</name>
+- <_description>Compaq Easy Access Keyboard</_description>
++ <description>Compaq Easy Access Keyboard</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik7</name>
+- <_description>Compaq Internet Keyboard (7 keys)</_description>
++ <description>Compaq Internet Keyboard (7 keys)</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik13</name>
+- <_description>Compaq Internet Keyboard (13 keys)</_description>
++ <description>Compaq Internet Keyboard (13 keys)</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik18</name>
+- <_description>Compaq Internet Keyboard (18 keys)</_description>
++ <description>Compaq Internet Keyboard (18 keys)</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cymotionlinux</name>
+- <_description>Cherry CyMotion Master Linux</_description>
++ <description>Cherry CyMotion Master Linux</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>armada</name>
+- <_description>Laptop/notebook Compaq (eg. Armada) Laptop Keyboard</_description>
++ <description>Laptop/notebook Compaq (eg. Armada) Laptop Keyboard</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>presario</name>
+- <_description>Laptop/notebook Compaq (eg. Presario) Internet Keyboard</_description>
++ <description>Laptop/notebook Compaq (eg. Presario) Internet Keyboard</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>ipaq</name>
+- <_description>Compaq iPaq Keyboard</_description>
++ <description>Compaq iPaq Keyboard</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dell</name>
+- <_description>Dell</_description>
++ <description>Dell</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dellsk8125</name>
+- <_description>Dell SK-8125</_description>
++ <description>Dell SK-8125</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dellsk8135</name>
+- <_description>Dell SK-8135</_description>
++ <description>Dell SK-8135</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dellusbmm</name>
+- <_description>Dell USB Multimedia Keyboard</_description>
++ <description>Dell USB Multimedia Keyboard</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>inspiron</name>
+- <_description>Dell Laptop/notebook Inspiron 6xxx/8xxx</_description>
++ <description>Dell Laptop/notebook Inspiron 6xxx/8xxx</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>precision_m</name>
+- <_description>Dell Laptop/notebook Precision M series</_description>
++ <description>Dell Laptop/notebook Precision M series</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dexxa</name>
+- <_description>Dexxa Wireless Desktop Keyboard</_description>
++ <description>Dexxa Wireless Desktop Keyboard</description>
+ <vendor>Dexxa</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>diamond</name>
+- <_description>Diamond 9801 / 9802 series</_description>
++ <description>Diamond 9801 / 9802 series</description>
+ <vendor>Diamond</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dtk2000</name>
+- <_description>DTK2000</_description>
++ <description>DTK2000</description>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>ennyah_dkb1008</name>
+- <_description>Ennyah DKB-1008</_description>
++ <description>Ennyah DKB-1008</description>
+ <vendor>Ennyah</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>fscaa1667g</name>
+- <_description>Fujitsu-Siemens Computers AMILO laptop</_description>
++ <description>Fujitsu-Siemens Computers AMILO laptop</description>
+ <vendor>Fujitsu-Siemens</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>genius</name>
+- <_description>Genius Comfy KB-16M / Genius MM Keyboard KWD-910</_description>
++ <description>Genius Comfy KB-16M / Genius MM Keyboard KWD-910</description>
+ <vendor>Genius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>geniuscomfy</name>
+- <_description>Genius Comfy KB-12e</_description>
++ <description>Genius Comfy KB-12e</description>
+ <vendor>Genius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>geniuscomfy2</name>
+- <_description>Genius Comfy KB-21e-Scroll</_description>
++ <description>Genius Comfy KB-21e-Scroll</description>
+ <vendor>Genius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>geniuskb19e</name>
+- <_description>Genius KB-19e NB</_description>
++ <description>Genius KB-19e NB</description>
+ <vendor>Genius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>geniuskkb2050hs</name>
+- <_description>Genius KKB-2050HS</_description>
++ <description>Genius KKB-2050HS</description>
+ <vendor>Genius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>gyration</name>
+- <_description>Gyration</_description>
++ <description>Gyration</description>
+ <vendor>Gyration</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>htcdream</name>
+- <_description>HTC Dream</_description>
++ <description>HTC Dream</description>
+ <vendor>HTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>kinesis</name>
+- <_description>Kinesis</_description>
++ <description>Kinesis</description>
+ <vendor>Kinesis</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logitech_base</name>
+- <_description>Logitech Generic Keyboard</_description>
++ <description>Logitech Generic Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logitech_g15</name>
+- <_description>Logitech G15 extra keys via G15daemon</_description>
++ <description>Logitech G15 extra keys via G15daemon</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpi6</name>
+- <_description>Hewlett-Packard Internet Keyboard</_description>
++ <description>Hewlett-Packard Internet Keyboard</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp250x</name>
+- <_description>Hewlett-Packard SK-250x Multimedia Keyboard</_description>
++ <description>Hewlett-Packard SK-250x Multimedia Keyboard</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpxe3gc</name>
+- <_description>Hewlett-Packard Omnibook XE3 GC</_description>
++ <description>Hewlett-Packard Omnibook XE3 GC</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpxe3gf</name>
+- <_description>Hewlett-Packard Omnibook XE3 GF</_description>
++ <description>Hewlett-Packard Omnibook XE3 GF</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpxt1000</name>
+- <_description>Hewlett-Packard Omnibook XT1000</_description>
++ <description>Hewlett-Packard Omnibook XT1000</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpdv5</name>
+- <_description>Hewlett-Packard Pavilion dv5</_description>
++ <description>Hewlett-Packard Pavilion dv5</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpzt11xx</name>
+- <_description>Hewlett-Packard Pavilion ZT11xx</_description>
++ <description>Hewlett-Packard Pavilion ZT11xx</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp500fa</name>
+- <_description>Hewlett-Packard Omnibook 500 FA</_description>
++ <description>Hewlett-Packard Omnibook 500 FA</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp5xx</name>
+- <_description>Hewlett-Packard Omnibook 5xx</_description>
++ <description>Hewlett-Packard Omnibook 5xx</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpnx9020</name>
+- <_description>Hewlett-Packard nx9020</_description>
++ <description>Hewlett-Packard nx9020</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp6000</name>
+- <_description>Hewlett-Packard Omnibook 6000/6100</_description>
++ <description>Hewlett-Packard Omnibook 6000/6100</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>honeywell_euroboard</name>
+- <_description>Honeywell Euroboard</_description>
++ <description>Honeywell Euroboard</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpmini110</name>
+- <_description>Hewlett-Packard Mini 110 Notebook</_description>
++ <description>Hewlett-Packard Mini 110 Notebook</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>rapidaccess</name>
+- <_description>IBM Rapid Access</_description>
++ <description>IBM Rapid Access</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>rapidaccess2</name>
+- <_description>IBM Rapid Access II</_description>
++ <description>IBM Rapid Access II</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpad</name>
+- <_description>IBM ThinkPad 560Z/600/600E/A22E</_description>
++ <description>IBM ThinkPad 560Z/600/600E/A22E</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpad60</name>
+- <_description>IBM ThinkPad R60/T60/R61/T61</_description>
++ <description>IBM ThinkPad R60/T60/R61/T61</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpadz60</name>
+- <_description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</_description>
++ <description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>ibm_spacesaver</name>
+- <_description>IBM Space Saver</_description>
++ <description>IBM Space Saver</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiaccess</name>
+- <_description>Logitech Access Keyboard</_description>
++ <description>Logitech Access Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiclx300</name>
+- <_description>Logitech Cordless Desktop LX-300</_description>
++ <description>Logitech Cordless Desktop LX-300</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logii350</name>
+- <_description>Logitech Internet 350 Keyboard</_description>
++ <description>Logitech Internet 350 Keyboard</description>
+ <vendor>Logitech</vendor>
+ <hwList> <hwId>046d:c313</hwId></hwList>
+ </configItem>
+@@ -633,665 +633,665 @@
+ <model>
+ <configItem>
+ <name>logimel</name>
+- <_description>Logitech Media Elite Keyboard</_description>
++ <description>Logitech Media Elite Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicd</name>
+- <_description>Logitech Cordless Desktop</_description>
++ <description>Logitech Cordless Desktop</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicd_it</name>
+- <_description>Logitech Cordless Desktop iTouch</_description>
++ <description>Logitech Cordless Desktop iTouch</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicd_nav</name>
+- <_description>Logitech Cordless Desktop Navigator</_description>
++ <description>Logitech Cordless Desktop Navigator</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicd_opt</name>
+- <_description>Logitech Cordless Desktop Optical</_description>
++ <description>Logitech Cordless Desktop Optical</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicda</name>
+- <_description>Logitech Cordless Desktop (alternate option)</_description>
++ <description>Logitech Cordless Desktop (alternate option)</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicdpa2</name>
+- <_description>Logitech Cordless Desktop Pro (alternate option 2)</_description>
++ <description>Logitech Cordless Desktop Pro (alternate option 2)</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicfn</name>
+- <_description>Logitech Cordless Freedom/Desktop Navigator</_description>
++ <description>Logitech Cordless Freedom/Desktop Navigator</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicdn</name>
+- <_description>Logitech Cordless Desktop Navigator</_description>
++ <description>Logitech Cordless Desktop Navigator</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiitc</name>
+- <_description>Logitech iTouch Cordless Keyboard (model Y-RB6)</_description>
++ <description>Logitech iTouch Cordless Keyboard (model Y-RB6)</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiik</name>
+- <_description>Logitech Internet Keyboard</_description>
++ <description>Logitech Internet Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>itouch</name>
+- <_description>Logitech iTouch</_description>
++ <description>Logitech iTouch</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicink</name>
+- <_description>Logitech Internet Navigator Keyboard</_description>
++ <description>Logitech Internet Navigator Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiex110</name>
+- <_description>Logitech Cordless Desktop EX110</_description>
++ <description>Logitech Cordless Desktop EX110</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiinkse</name>
+- <_description>Logitech iTouch Internet Navigator Keyboard SE</_description>
++ <description>Logitech iTouch Internet Navigator Keyboard SE</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiinkseusb</name>
+- <_description>Logitech iTouch Internet Navigator Keyboard SE (USB)</_description>
++ <description>Logitech iTouch Internet Navigator Keyboard SE (USB)</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiultrax</name>
+- <_description>Logitech Ultra-X Keyboard</_description>
++ <description>Logitech Ultra-X Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiultraxc</name>
+- <_description>Logitech Ultra-X Cordless Media Desktop Keyboard</_description>
++ <description>Logitech Ultra-X Cordless Media Desktop Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logidinovo</name>
+- <_description>Logitech diNovo Keyboard</_description>
++ <description>Logitech diNovo Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logidinovoedge</name>
+- <_description>Logitech diNovo Edge Keyboard</_description>
++ <description>Logitech diNovo Edge Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>mx1998</name>
+- <_description>Memorex MX1998</_description>
++ <description>Memorex MX1998</description>
+ <vendor>Memorex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>mx2500</name>
+- <_description>Memorex MX2500 EZ-Access Keyboard</_description>
++ <description>Memorex MX2500 EZ-Access Keyboard</description>
+ <vendor>Memorex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>mx2750</name>
+- <_description>Memorex MX2750</_description>
++ <description>Memorex MX2750</description>
+ <vendor>Memorex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoft4000</name>
+- <_description>Microsoft Natural Wireless Ergonomic Keyboard 4000</_description>
++ <description>Microsoft Natural Wireless Ergonomic Keyboard 4000</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoft7000</name>
+- <_description>Microsoft Natural Wireless Ergonomic Keyboard 7000</_description>
++ <description>Microsoft Natural Wireless Ergonomic Keyboard 7000</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftinet</name>
+- <_description>Microsoft Internet Keyboard</_description>
++ <description>Microsoft Internet Keyboard</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftpro</name>
+- <_description>Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro</_description>
++ <description>Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprousb</name>
+- <_description>Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro</_description>
++ <description>Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprooem</name>
+- <_description>Microsoft Natural Keyboard Pro OEM</_description>
++ <description>Microsoft Natural Keyboard Pro OEM</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>vsonku306</name>
+- <_description>ViewSonic KU-306 Internet Keyboard</_description>
++ <description>ViewSonic KU-306 Internet Keyboard</description>
+ <vendor>ViewSonic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprose</name>
+- <_description>Microsoft Internet Keyboard Pro, Swedish</_description>
++ <description>Microsoft Internet Keyboard Pro, Swedish</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftoffice</name>
+- <_description>Microsoft Office Keyboard</_description>
++ <description>Microsoft Office Keyboard</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftmult</name>
+- <_description>Microsoft Wireless Multimedia Keyboard 1.0A</_description>
++ <description>Microsoft Wireless Multimedia Keyboard 1.0A</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftelite</name>
+- <_description>Microsoft Natural Keyboard Elite</_description>
++ <description>Microsoft Natural Keyboard Elite</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftccurve2k</name>
+- <_description>Microsoft Comfort Curve Keyboard 2000</_description>
++ <description>Microsoft Comfort Curve Keyboard 2000</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>oretec</name>
+- <_description>Ortek MCK-800 MM/Internet keyboard</_description>
++ <description>Ortek MCK-800 MM/Internet keyboard</description>
+ <vendor>Ortek</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>propeller</name>
+- <_description>Propeller Voyager (KTEZ-1000)</_description>
++ <description>Propeller Voyager (KTEZ-1000)</description>
+ <vendor>KeyTronic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>qtronix</name>
+- <_description>QTronix Scorpius 98N+</_description>
++ <description>QTronix Scorpius 98N+</description>
+ <vendor>QTronix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>samsung4500</name>
+- <_description>Samsung SDM 4500P</_description>
++ <description>Samsung SDM 4500P</description>
+ <vendor>Samsung</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>samsung4510</name>
+- <_description>Samsung SDM 4510P</_description>
++ <description>Samsung SDM 4510P</description>
+ <vendor>Samsung</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sanwaskbkg3</name>
+- <_description>Sanwa Supply SKB-KG3</_description>
++ <description>Sanwa Supply SKB-KG3</description>
+ <vendor>Sanwa Supply Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk1300</name>
+- <_description>SK-1300</_description>
++ <description>SK-1300</description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk2500</name>
+- <_description>SK-2500</_description>
++ <description>SK-2500</description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk6200</name>
+- <_description>SK-6200</_description>
++ <description>SK-6200</description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk7100</name>
+- <_description>SK-7100</_description>
++ <description>SK-7100</description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sp_inet</name>
+- <_description>Super Power Multimedia Keyboard</_description>
++ <description>Super Power Multimedia Keyboard</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sven</name>
+- <_description>SVEN Ergonomic 2500</_description>
++ <description>SVEN Ergonomic 2500</description>
+ <vendor>SVEN</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sven303</name>
+- <_description>SVEN Slim 303</_description>
++ <description>SVEN Slim 303</description>
+ <vendor>SVEN</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>symplon</name>
+- <_description>Symplon PaceBook (tablet PC)</_description>
++ <description>Symplon PaceBook (tablet PC)</description>
+ <vendor>Symplon</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>toshiba_s3000</name>
+- <_description>Toshiba Satellite S3000</_description>
++ <description>Toshiba Satellite S3000</description>
+ <vendor>Toshiba</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>trust</name>
+- <_description>Trust Wireless Keyboard Classic</_description>
++ <description>Trust Wireless Keyboard Classic</description>
+ <vendor>Trust</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>trustda</name>
+- <_description>Trust Direct Access Keyboard</_description>
++ <description>Trust Direct Access Keyboard</description>
+ <vendor>Trust</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>trust_slimline</name>
+- <_description>Trust Slimline</_description>
++ <description>Trust Slimline</description>
+ <vendor>Trust</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>tm2020</name>
+- <_description>TypeMatrix EZ-Reach 2020</_description>
++ <description>TypeMatrix EZ-Reach 2020</description>
+ <vendor>TypeMatrix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>tm2030PS2</name>
+- <_description>TypeMatrix EZ-Reach 2030 PS2</_description>
++ <description>TypeMatrix EZ-Reach 2030 PS2</description>
+ <vendor>TypeMatrix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>tm2030USB</name>
+- <_description>TypeMatrix EZ-Reach 2030 USB</_description>
++ <description>TypeMatrix EZ-Reach 2030 USB</description>
+ <vendor>TypeMatrix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>tm2030USB-102</name>
+- <_description>TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)</_description>
++ <description>TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)</description>
+ <vendor>TypeMatrix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>tm2030USB-106</name>
+- <_description>TypeMatrix EZ-Reach 2030 USB (106:JP mode)</_description>
++ <description>TypeMatrix EZ-Reach 2030 USB (106:JP mode)</description>
+ <vendor>TypeMatrix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>yahoo</name>
+- <_description>Yahoo! Internet Keyboard</_description>
++ <description>Yahoo! Internet Keyboard</description>
+ <vendor>Yahoo!</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>macbook78</name>
+- <_description>MacBook/MacBook Pro</_description>
++ <description>MacBook/MacBook Pro</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>macbook79</name>
+- <_description>MacBook/MacBook Pro (Intl)</_description>
++ <description>MacBook/MacBook Pro (Intl)</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>macintosh</name>
+- <_description>Macintosh</_description>
++ <description>Macintosh</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>macintosh_old</name>
+- <_description>Macintosh Old</_description>
++ <description>Macintosh Old</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>macintosh_hhk</name>
+- <_description>Happy Hacking Keyboard for Mac</_description>
++ <description>Happy Hacking Keyboard for Mac</description>
+ <vendor>Fujitsu</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>acer_c300</name>
+- <_description>Acer C300</_description>
++ <description>Acer C300</description>
+ <vendor>Acer</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>acer_ferrari4k</name>
+- <_description>Acer Ferrari 4000</_description>
++ <description>Acer Ferrari 4000</description>
+ <vendor>Acer</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>acer_laptop</name>
+- <_description>Acer Laptop</_description>
++ <description>Acer Laptop</description>
+ <vendor>Acer</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>asus_laptop</name>
+- <_description>Asus Laptop</_description>
++ <description>Asus Laptop</description>
+ <vendor>Asus</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>apple</name>
+- <_description>Apple</_description>
++ <description>Apple</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>apple_laptop</name>
+- <_description>Apple Laptop</_description>
++ <description>Apple Laptop</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>applealu_ansi</name>
+- <_description>Apple Aluminium Keyboard (ANSI)</_description>
++ <description>Apple Aluminium Keyboard (ANSI)</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>applealu_iso</name>
+- <_description>Apple Aluminium Keyboard (ISO)</_description>
++ <description>Apple Aluminium Keyboard (ISO)</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>applealu_jis</name>
+- <_description>Apple Aluminium Keyboard (JIS)</_description>
++ <description>Apple Aluminium Keyboard (JIS)</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>silvercrest</name>
+- <_description>SILVERCREST Multimedia Wireless Keyboard</_description>
++ <description>SILVERCREST Multimedia Wireless Keyboard</description>
+ <vendor>Silvercrest</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>emachines</name>
+- <_description>Laptop/notebook eMachines m68xx</_description>
++ <description>Laptop/notebook eMachines m68xx</description>
+ <vendor>eMachines</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>benqx</name>
+- <_description>BenQ X-Touch</_description>
++ <description>BenQ X-Touch</description>
+ <vendor>BenQ</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>benqx730</name>
+- <_description>BenQ X-Touch 730</_description>
++ <description>BenQ X-Touch 730</description>
+ <vendor>BenQ</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>benqx800</name>
+- <_description>BenQ X-Touch 800</_description>
++ <description>BenQ X-Touch 800</description>
+ <vendor>BenQ</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hhk</name>
+- <_description>Happy Hacking Keyboard</_description>
++ <description>Happy Hacking Keyboard</description>
+ <vendor>Fujitsu</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>classmate</name>
+- <_description>Classmate PC</_description>
++ <description>Classmate PC</description>
+ <vendor>Intel</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>olpc</name>
+- <_description>OLPC</_description>
++ <description>OLPC</description>
+ <vendor>OLPC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type7_usb</name>
+- <_description>Sun Type 7 USB</_description>
++ <description>Sun Type 7 USB</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type7_euro_usb</name>
+- <_description>Sun Type 7 USB (European layout)</_description>
++ <description>Sun Type 7 USB (European layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type7_unix_usb</name>
+- <_description>Sun Type 7 USB (Unix layout)</_description>
++ <description>Sun Type 7 USB (Unix layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type7_jp_usb</name>
+- <_description>Sun Type 7 USB (Japanese layout) / Japanese 106-key</_description>
++ <description>Sun Type 7 USB (Japanese layout) / Japanese 106-key</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_usb</name>
+- <_description>Sun Type 6/7 USB</_description>
++ <description>Sun Type 6/7 USB</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_euro_usb</name>
+- <_description>Sun Type 6/7 USB (European layout)</_description>
++ <description>Sun Type 6/7 USB (European layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_unix_usb</name>
+- <_description>Sun Type 6 USB (Unix layout)</_description>
++ <description>Sun Type 6 USB (Unix layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_jp_usb</name>
+- <_description>Sun Type 6 USB (Japanese layout)</_description>
++ <description>Sun Type 6 USB (Japanese layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_jp</name>
+- <_description>Sun Type 6 (Japanese layout)</_description>
++ <description>Sun Type 6 (Japanese layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>targa_v811</name>
+- <_description>Targa Visionary 811</_description>
++ <description>Targa Visionary 811</description>
+ <vendor>Targa</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>unitekkb1925</name>
+- <_description>Unitek KB-1925</_description>
++ <description>Unitek KB-1925</description>
+ <vendor>Unitek Group</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compalfl90</name>
+- <_description>FL90</_description>
++ <description>FL90</description>
+ <vendor>Compal Electronics Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>creativedw7000</name>
+- <_description>Creative Desktop Wireless 7000</_description>
++ <description>Creative Desktop Wireless 7000</description>
+ <vendor>Creative</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>htcdream</name>
+- <_description>Htc Dream phone</_description>
++ <description>Htc Dream phone</description>
+ <vendor>htc</vendor>
+ </configItem>
+ </model>
+@@ -1300,9 +1300,9 @@
+ <layout>
+ <configItem>
+ <name>us</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (US)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (US)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -1311,9 +1311,9 @@
+ <variant>
+ <configItem>
+ <name>chr</name>
+- <!-- Keyboard indicator for Cherokee layouts -->
+- <_shortDescription>chr</_shortDescription>
+- <_description>Cherokee</_description>
++
++ <shortDescription>chr</shortDescription>
++ <description>Cherokee</description>
+ <languageList>
+ <iso639Id>chr</iso639Id>
+ </languageList>
+@@ -1322,75 +1322,75 @@
+ <variant>
+ <configItem>
+ <name>euro</name>
+- <_description>English (US, with euro on 5)</_description>
++ <description>English (US, with euro on 5)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>intl</name>
+- <_description>English (US, international with dead keys)</_description>
++ <description>English (US, international with dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt-intl</name>
+- <_description>English (US, alternative international)</_description>
++ <description>English (US, alternative international)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>English (Colemak)</_description>
++ <description>English (Colemak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>English (Dvorak)</_description>
++ <description>English (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-intl</name>
+- <_description>English (Dvorak, international with dead keys)</_description>
++ <description>English (Dvorak, international with dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-alt-intl</name>
+- <_description>English (Dvorak alternative international no dead keys)</_description>
++ <description>English (Dvorak alternative international no dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-l</name>
+- <_description>English (left handed Dvorak)</_description>
++ <description>English (left handed Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-r</name>
+- <_description>English (right handed Dvorak)</_description>
++ <description>English (right handed Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-classic</name>
+- <_description>English (classic Dvorak)</_description>
++ <description>English (classic Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvp</name>
+- <_description>English (programmer Dvorak)</_description>
++ <description>English (programmer Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rus</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (US, phonetic)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (US, phonetic)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -1399,13 +1399,13 @@
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>English (Macintosh)</_description>
++ <description>English (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>altgr-intl</name>
+- <_description>English (international AltGr dead keys)</_description>
++ <description>English (international AltGr dead keys)</description>
+ <languageList><iso639Id>eng</iso639Id>
+ <iso639Id>fra</iso639Id>
+ <iso639Id>ger</iso639Id></languageList>
+@@ -1414,13 +1414,13 @@
+ <variant>
+ <configItem>
+ <name>olpc2</name>
+- <_description>English (the divide/multiply keys toggle the layout)</_description>
++ <description>English (the divide/multiply keys toggle the layout)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>hbs</name>
+- <_description>Serbo-Croatian (US)</_description>
++ <description>Serbo-Croatian (US)</description>
+ <languageList><iso639Id>eng</iso639Id>
+ <iso639Id>bos</iso639Id>
+ <iso639Id>hbs</iso639Id>
+@@ -1431,13 +1431,13 @@
+ <variant>
+ <configItem>
+ <name>workman</name>
+- <_description>English (Workman)</_description>
++ <description>English (Workman)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>workman-intl</name>
+- <_description>English (Workman, international with dead keys)</_description>
++ <description>English (Workman, international with dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1445,17 +1445,17 @@
+ <layout>
+ <configItem>
+ <name>af</name>
+- <!-- Keyboard indicator for Afghani layouts -->
+- <_shortDescription>fa</_shortDescription>
+- <_description>Afghani</_description>
++
++ <shortDescription>fa</shortDescription>
++ <description>Afghani</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ps</name>
+- <!-- Keyboard indicator for Pashto layouts -->
+- <_shortDescription>ps</_shortDescription>
+- <_description>Pashto</_description>
++
++ <shortDescription>ps</shortDescription>
++ <description>Pashto</description>
+ <languageList>
+ <iso639Id>pus</iso639Id>
+ </languageList>
+@@ -1464,9 +1464,9 @@
+ <variant>
+ <configItem>
+ <name>uz</name>
+- <!-- Keyboard indicator for Uzbek layouts -->
+- <_shortDescription>uz</_shortDescription>
+- <_description>Uzbek (Afghanistan)</_description>
++
++ <shortDescription>uz</shortDescription>
++ <description>Uzbek (Afghanistan)</description>
+ <languageList>
+ <iso639Id>uzb</iso639Id>
+ </languageList>
+@@ -1475,9 +1475,9 @@
+ <variant>
+ <configItem>
+ <name>olpc-ps</name>
+- <!-- Keyboard indicator for Pashto layouts -->
+- <_shortDescription>ps</_shortDescription>
+- <_description>Pashto (Afghanistan, OLPC)</_description>
++
++ <shortDescription>ps</shortDescription>
++ <description>Pashto (Afghanistan, OLPC)</description>
+ <languageList>
+ <iso639Id>pus</iso639Id>
+ </languageList>
+@@ -1486,17 +1486,17 @@
+ <variant>
+ <configItem>
+ <name>fa-olpc</name>
+- <!-- Keyboard indicator for Persian layouts -->
+- <_shortDescription>fa</_shortDescription>
+- <_description>Persian (Afghanistan, Dari OLPC)</_description>
++
++ <shortDescription>fa</shortDescription>
++ <description>Persian (Afghanistan, Dari OLPC)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>uz-olpc</name>
+- <!-- Keyboard indicator for Uzbek layouts -->
+- <_shortDescription>uz</_shortDescription>
+- <_description>Uzbek (Afghanistan, OLPC)</_description>
++
++ <shortDescription>uz</shortDescription>
++ <description>Uzbek (Afghanistan, OLPC)</description>
+ <languageList>
+ <iso639Id>uzb</iso639Id>
+ </languageList>
+@@ -1507,9 +1507,9 @@
+ <layout>
+ <configItem>
+ <name>ara</name>
+- <!-- Keyboard indicator for Arabic layouts -->
+- <_shortDescription>ar</_shortDescription>
+- <_description>Arabic</_description>
++
++ <shortDescription>ar</shortDescription>
++ <description>Arabic</description>
+ <countryList>
+ <iso3166Id>AE</iso3166Id>
+ <iso3166Id>BH</iso3166Id>
+@@ -1539,37 +1539,37 @@
+ <variant>
+ <configItem>
+ <name>azerty</name>
+- <_description>Arabic (azerty)</_description>
++ <description>Arabic (azerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>azerty_digits</name>
+- <_description>Arabic (azerty/digits)</_description>
++ <description>Arabic (azerty/digits)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>digits</name>
+- <_description>Arabic (digits)</_description>
++ <description>Arabic (digits)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>Arabic (qwerty)</_description>
++ <description>Arabic (qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_digits</name>
+- <_description>Arabic (qwerty/digits)</_description>
++ <description>Arabic (qwerty/digits)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>buckwalter</name>
+- <_description>Arabic (Buckwalter)</_description>
++ <description>Arabic (Buckwalter)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1577,9 +1577,9 @@
+ <layout>
+ <configItem>
+ <name>al</name>
+- <!-- Keyboard indicator for Albanian layouts -->
+- <_shortDescription>sq</_shortDescription>
+- <_description>Albanian</_description>
++
++ <shortDescription>sq</shortDescription>
++ <description>Albanian</description>
+ <languageList>
+ <iso639Id>alb</iso639Id>
+ </languageList>
+@@ -1589,9 +1589,9 @@
+ <layout>
+ <configItem>
+ <name>am</name>
+- <!-- Keyboard indicator for Armenian layouts -->
+- <_shortDescription>hy</_shortDescription>
+- <_description>Armenian</_description>
++
++ <shortDescription>hy</shortDescription>
++ <description>Armenian</description>
+ <languageList>
+ <iso639Id>hye</iso639Id>
+ </languageList>
+@@ -1600,31 +1600,31 @@
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Armenian (phonetic)</_description>
++ <description>Armenian (phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>phonetic-alt</name>
+- <_description>Armenian (alternative phonetic)</_description>
++ <description>Armenian (alternative phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>eastern</name>
+- <_description>Armenian (eastern)</_description>
++ <description>Armenian (eastern)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>western</name>
+- <_description>Armenian (western)</_description>
++ <description>Armenian (western)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>eastern-alt</name>
+- <_description>Armenian (alternative eastern)</_description>
++ <description>Armenian (alternative eastern)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1632,9 +1632,9 @@
+ <layout>
+ <configItem>
+ <name>at</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Austria)</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German (Austria)</description>
+ <languageList>
+ <iso639Id>ger</iso639Id>
+ </languageList>
+@@ -1643,19 +1643,19 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>German (Austria, eliminate dead keys)</_description>
++ <description>German (Austria, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>German (Austria, Sun dead keys)</_description>
++ <description>German (Austria, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>German (Austria, Macintosh)</_description>
++ <description>German (Austria, Macintosh)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1663,9 +1663,9 @@
+ <layout>
+ <configItem>
+ <name>az</name>
+- <!-- Keyboard indicator for Azerbaijani layouts -->
+- <_shortDescription>az</_shortDescription>
+- <_description>Azerbaijani</_description>
++
++ <shortDescription>az</shortDescription>
++ <description>Azerbaijani</description>
+ <languageList>
+ <iso639Id>aze</iso639Id>
+ </languageList>
+@@ -1674,7 +1674,7 @@
+ <variant>
+ <configItem>
+ <name>cyrillic</name>
+- <_description>Azerbaijani (Cyrillic)</_description>
++ <description>Azerbaijani (Cyrillic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1682,9 +1682,9 @@
+ <layout>
+ <configItem>
+ <name>by</name>
+- <!-- Keyboard indicator for Belarusian layouts -->
+- <_shortDescription>by</_shortDescription>
+- <_description>Belarusian</_description>
++
++ <shortDescription>by</shortDescription>
++ <description>Belarusian</description>
+ <languageList>
+ <iso639Id>bel</iso639Id>
+ </languageList>
+@@ -1693,13 +1693,13 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Belarusian (legacy)</_description>
++ <description>Belarusian (legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin</name>
+- <_description>Belarusian (Latin)</_description>
++ <description>Belarusian (Latin)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1707,9 +1707,9 @@
+ <layout>
+ <configItem>
+ <name>be</name>
+- <!-- Keyboard indicator for Belgian layouts -->
+- <_shortDescription>be</_shortDescription>
+- <_description>Belgian</_description>
++
++ <shortDescription>be</shortDescription>
++ <description>Belgian</description>
+ <languageList><iso639Id>ger</iso639Id>
+ <iso639Id>nld</iso639Id>
+ <iso639Id>fra</iso639Id></languageList>
+@@ -1718,43 +1718,43 @@
+ <variant>
+ <configItem>
+ <name>oss</name>
+- <_description>Belgian (alternative)</_description>
++ <description>Belgian (alternative)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_latin9</name>
+- <_description>Belgian (alternative, Latin-9 only)</_description>
++ <description>Belgian (alternative, Latin-9 only)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_sundeadkeys</name>
+- <_description>Belgian (alternative, Sun dead keys)</_description>
++ <description>Belgian (alternative, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>iso-alternate</name>
+- <_description>Belgian (ISO alternate)</_description>
++ <description>Belgian (ISO alternate)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Belgian (eliminate dead keys)</_description>
++ <description>Belgian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Belgian (Sun dead keys)</_description>
++ <description>Belgian (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>wang</name>
+- <_description>Belgian (Wang model 724 azerty)</_description>
++ <description>Belgian (Wang model 724 azerty)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1762,9 +1762,9 @@
+ <layout>
+ <configItem>
+ <name>bd</name>
+- <!-- Keyboard indicator for Bangla layouts -->
+- <_shortDescription>bn</_shortDescription>
+- <_description>Bangla</_description>
++
++ <shortDescription>bn</shortDescription>
++ <description>Bangla</description>
+ <languageList>
+ <iso639Id>ben</iso639Id>
+ </languageList>
+@@ -1773,7 +1773,7 @@
+ <variant>
+ <configItem>
+ <name>probhat</name>
+- <_description>Bangla (Probhat)</_description>
++ <description>Bangla (Probhat)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1781,17 +1781,17 @@
+ <layout>
+ <configItem>
+ <name>in</name>
+- <!-- Keyboard indicator for Indian layouts -->
+- <_shortDescription>in</_shortDescription>
+- <_description>Indian</_description>
++
++ <shortDescription>in</shortDescription>
++ <description>Indian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ben</name>
+- <!-- Keyboard indicator for Bangla layouts -->
+- <_shortDescription>bn</_shortDescription>
+- <_description>Bangla (India)</_description>
++
++ <shortDescription>bn</shortDescription>
++ <description>Bangla (India)</description>
+ <languageList>
+ <iso639Id>ben</iso639Id>
+ </languageList>
+@@ -1800,9 +1800,9 @@
+ <variant>
+ <configItem>
+ <name>ben_probhat</name>
+- <!-- Keyboard indicator for Bangla layouts -->
+- <_shortDescription>bn</_shortDescription>
+- <_description>Bangla (India, Probhat)</_description>
++
++ <shortDescription>bn</shortDescription>
++ <description>Bangla (India, Probhat)</description>
+ <languageList>
+ <iso639Id>ben</iso639Id>
+ </languageList>
+@@ -1811,28 +1811,28 @@
+ <variant>
+ <configItem>
+ <name>ben_baishakhi</name>
+- <_description>Bangla (India, Baishakhi)</_description>
++ <description>Bangla (India, Baishakhi)</description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ben_bornona</name>
+- <_description>Bangla (India, Bornona)</_description>
++ <description>Bangla (India, Bornona)</description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ben_gitanjali</name>
+- <_description>Bangla (India, Uni Gitanjali)</_description>
++ <description>Bangla (India, Uni Gitanjali)</description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ben_inscript</name>
+- <_description>Bangla (India, Baishakhi Inscript)</_description>
++ <description>Bangla (India, Baishakhi Inscript)</description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -1846,9 +1846,9 @@
+ <variant>
+ <configItem>
+ <name>guj</name>
+- <!-- Keyboard indicator for Gujarati layouts -->
+- <_shortDescription>gu</_shortDescription>
+- <_description>Gujarati</_description>
++
++ <shortDescription>gu</shortDescription>
++ <description>Gujarati</description>
+ <languageList>
+ <iso639Id>guj</iso639Id>
+ </languageList>
+@@ -1857,9 +1857,9 @@
+ <variant>
+ <configItem>
+ <name>guru</name>
+- <!-- Keyboard indicator for Punjabi layouts -->
+- <_shortDescription>pa</_shortDescription>
+- <_description>Punjabi (Gurmukhi)</_description>
++
++ <shortDescription>pa</shortDescription>
++ <description>Punjabi (Gurmukhi)</description>
+ <languageList>
+ <iso639Id>pan</iso639Id>
+ </languageList>
+@@ -1868,9 +1868,9 @@
+ <variant>
+ <configItem>
+ <name>jhelum</name>
+- <!-- Keyboard indicator for Punjabi layouts -->
+- <_shortDescription>pa</_shortDescription>
+- <_description>Punjabi (Gurmukhi Jhelum)</_description>
++
++ <shortDescription>pa</shortDescription>
++ <description>Punjabi (Gurmukhi Jhelum)</description>
+ <languageList>
+ <iso639Id>pan</iso639Id>
+ </languageList>
+@@ -1879,9 +1879,9 @@
+ <variant>
+ <configItem>
+ <name>kan</name>
+- <!-- Keyboard indicator for Kannada layouts -->
+- <_shortDescription>kn</_shortDescription>
+- <_description>Kannada</_description>
++
++ <shortDescription>kn</shortDescription>
++ <description>Kannada</description>
+ <languageList>
+ <iso639Id>kan</iso639Id>
+ </languageList>
+@@ -1890,9 +1890,9 @@
+ <variant>
+ <configItem>
+ <name>kan-kagapa</name>
+- <!-- Keyboard indicator for Kannada layouts -->
+- <_shortDescription>kn</_shortDescription>
+- <_description>Kannada (KaGaPa phonetic)</_description>
++
++ <shortDescription>kn</shortDescription>
++ <description>Kannada (KaGaPa phonetic)</description>
+ <languageList>
+ <iso639Id>kan</iso639Id>
+ </languageList>
+@@ -1901,9 +1901,9 @@
+ <variant>
+ <configItem>
+ <name>mal</name>
+- <!-- Keyboard indicator for Malayalam layouts -->
+- <_shortDescription>ml</_shortDescription>
+- <_description>Malayalam</_description>
++
++ <shortDescription>ml</shortDescription>
++ <description>Malayalam</description>
+ <languageList>
+ <iso639Id>mal</iso639Id>
+ </languageList>
+@@ -1912,9 +1912,9 @@
+ <variant>
+ <configItem>
+ <name>mal_lalitha</name>
+- <!-- Keyboard indicator for Malayalam layouts -->
+- <_shortDescription>ml</_shortDescription>
+- <_description>Malayalam (Lalitha)</_description>
++
++ <shortDescription>ml</shortDescription>
++ <description>Malayalam (Lalitha)</description>
+ <languageList>
+ <iso639Id>mal</iso639Id>
+ </languageList>
+@@ -1923,18 +1923,18 @@
+ <variant>
+ <configItem>
+ <name>mal_enhanced</name>
+- <!-- Keyboard indicator for Malayalam layouts -->
+- <_shortDescription>ml</_shortDescription>
+- <_description>Malayalam (enhanced Inscript with Rupee Sign)</_description>
++
++ <shortDescription>ml</shortDescription>
++ <description>Malayalam (enhanced Inscript with Rupee Sign)</description>
+ <languageList><iso639Id>mal</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ori</name>
+- <!-- Keyboard indicator for Oriya layouts -->
+- <_shortDescription>or</_shortDescription>
+- <_description>Oriya</_description>
++
++ <shortDescription>or</shortDescription>
++ <description>Oriya</description>
+ <languageList>
+ <iso639Id>ori</iso639Id>
+ </languageList>
+@@ -1943,9 +1943,9 @@
+ <variant>
+ <configItem>
+ <name>tam_unicode</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil (Unicode)</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil (Unicode)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -1954,9 +1954,9 @@
+ <variant>
+ <configItem>
+ <name>tam_keyboard_with_numerals</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil (keyboard with numerals)</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil (keyboard with numerals)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -1965,9 +1965,9 @@
+ <variant>
+ <configItem>
+ <name>tam_TAB</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil (TAB typewriter)</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil (TAB typewriter)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -1976,9 +1976,9 @@
+ <variant>
+ <configItem>
+ <name>tam_TSCII</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil (TSCII typewriter)</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil (TSCII typewriter)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -1987,9 +1987,9 @@
+ <variant>
+ <configItem>
+ <name>tam</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -1998,9 +1998,9 @@
+ <variant>
+ <configItem>
+ <name>tel</name>
+- <!-- Keyboard indicator for Telugu layouts -->
+- <_shortDescription>te</_shortDescription>
+- <_description>Telugu</_description>
++
++ <shortDescription>te</shortDescription>
++ <description>Telugu</description>
+ <languageList>
+ <iso639Id>tel</iso639Id>
+ </languageList>
+@@ -2009,9 +2009,9 @@
+ <variant>
+ <configItem>
+ <name>tel-kagapa</name>
+- <!-- Keyboard indicator for Telugu layouts -->
+- <_shortDescription>te</_shortDescription>
+- <_description>Telugu (KaGaPa phonetic)</_description>
++
++ <shortDescription>te</shortDescription>
++ <description>Telugu (KaGaPa phonetic)</description>
+ <languageList>
+ <iso639Id>tel</iso639Id>
+ </languageList>
+@@ -2020,9 +2020,9 @@
+ <variant>
+ <configItem>
+ <name>urd-phonetic</name>
+- <!-- Keyboard indicator for Urdu layouts -->
+- <_shortDescription>ur</_shortDescription>
+- <_description>Urdu (phonetic)</_description>
++
++ <shortDescription>ur</shortDescription>
++ <description>Urdu (phonetic)</description>
+ <languageList>
+ <iso639Id>urd</iso639Id>
+ </languageList>
+@@ -2031,9 +2031,9 @@
+ <variant>
+ <configItem>
+ <name>urd-phonetic3</name>
+- <!-- Keyboard indicator for Urdu layouts -->
+- <_shortDescription>ur</_shortDescription>
+- <_description>Urdu (alternative phonetic)</_description>
++
++ <shortDescription>ur</shortDescription>
++ <description>Urdu (alternative phonetic)</description>
+ <languageList>
+ <iso639Id>urd</iso639Id>
+ </languageList>
+@@ -2042,9 +2042,9 @@
+ <variant>
+ <configItem>
+ <name>urd-winkeys</name>
+- <!-- Keyboard indicator for Urdu layouts -->
+- <_shortDescription>ur</_shortDescription>
+- <_description>Urdu (WinKeys)</_description>
++
++ <shortDescription>ur</shortDescription>
++ <description>Urdu (WinKeys)</description>
+ <languageList>
+ <iso639Id>urd</iso639Id>
+ </languageList>
+@@ -2053,9 +2053,9 @@
+ <variant>
+ <configItem>
+ <name>bolnagri</name>
+- <!-- Keyboard indicator for Hindi layouts -->
+- <_shortDescription>hi</_shortDescription>
+- <_description>Hindi (Bolnagri)</_description>
++
++ <shortDescription>hi</shortDescription>
++ <description>Hindi (Bolnagri)</description>
+ <languageList>
+ <iso639Id>hin</iso639Id>
+ </languageList>
+@@ -2064,9 +2064,9 @@
+ <variant>
+ <configItem>
+ <name>hin-wx</name>
+- <!-- Keyboard indicator for Hindi layouts -->
+- <_shortDescription>hi</_shortDescription>
+- <_description>Hindi (Wx)</_description>
++
++ <shortDescription>hi</shortDescription>
++ <description>Hindi (Wx)</description>
+ <languageList>
+ <iso639Id>hin</iso639Id>
+ </languageList>
+@@ -2075,9 +2075,9 @@
+ <variant>
+ <configItem>
+ <name>hin-kagapa</name>
+- <!-- Keyboard indicator for Hindi layouts -->
+- <_shortDescription>hi</_shortDescription>
+- <_description>Hindi (KaGaPa phonetic)</_description>
++
++ <shortDescription>hi</shortDescription>
++ <description>Hindi (KaGaPa phonetic)</description>
+ <languageList>
+ <iso639Id>hin</iso639Id>
+ </languageList>
+@@ -2086,9 +2086,9 @@
+ <variant>
+ <configItem>
+ <name>san-kagapa</name>
+- <!-- Keyboard indicator for Sanskrit layouts -->
+- <_shortDescription>sa</_shortDescription>
+- <_description>Sanskrit (KaGaPa phonetic)</_description>
++
++ <shortDescription>sa</shortDescription>
++ <description>Sanskrit (KaGaPa phonetic)</description>
+ <languageList>
+ <iso639Id>san</iso639Id>
+ </languageList>
+@@ -2097,9 +2097,9 @@
+ <variant>
+ <configItem>
+ <name>mar-kagapa</name>
+- <!-- Keyboard indicator for Marathi layouts -->
+- <_shortDescription>mr</_shortDescription>
+- <_description>Marathi (KaGaPa phonetic)</_description>
++
++ <shortDescription>mr</shortDescription>
++ <description>Marathi (KaGaPa phonetic)</description>
+ <languageList>
+ <iso639Id>mar</iso639Id>
+ </languageList>
+@@ -2108,9 +2108,9 @@
+ <variant>
+ <configItem>
+ <name>eng</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (India, with RupeeSign)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (India, with RupeeSign)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -2121,9 +2121,9 @@
+ <layout>
+ <configItem>
+ <name>ba</name>
+- <!-- Keyboard indicator for Bosnian layouts -->
+- <_shortDescription>bs</_shortDescription>
+- <_description>Bosnian</_description>
++
++ <shortDescription>bs</shortDescription>
++ <description>Bosnian</description>
+ <languageList>
+ <iso639Id>bos</iso639Id>
+ </languageList>
+@@ -2132,25 +2132,25 @@
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+- <_description>Bosnian (use guillemets for quotes)</_description>
++ <description>Bosnian (use guillemets for quotes)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+- <_description>Bosnian (use Bosnian digraphs)</_description>
++ <description>Bosnian (use Bosnian digraphs)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicodeus</name>
+- <_description>Bosnian (US keyboard with Bosnian digraphs)</_description>
++ <description>Bosnian (US keyboard with Bosnian digraphs)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Bosnian (US keyboard with Bosnian letters)</_description>
++ <description>Bosnian (US keyboard with Bosnian letters)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2158,9 +2158,9 @@
+ <layout>
+ <configItem>
+ <name>br</name>
+- <!-- Keyboard indicator for Portuguese layouts -->
+- <_shortDescription>pt</_shortDescription>
+- <_description>Portuguese (Brazil)</_description>
++
++ <shortDescription>pt</shortDescription>
++ <description>Portuguese (Brazil)</description>
+ <languageList>
+ <iso639Id>por</iso639Id>
+ </languageList>
+@@ -2169,31 +2169,31 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Portuguese (Brazil, eliminate dead keys)</_description>
++ <description>Portuguese (Brazil, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Portuguese (Brazil, Dvorak)</_description>
++ <description>Portuguese (Brazil, Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo</name>
+- <_description>Portuguese (Brazil, Nativo)</_description>
++ <description>Portuguese (Brazil, Nativo)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-us</name>
+- <_description>Portuguese (Brazil, Nativo for US keyboards)</_description>
++ <description>Portuguese (Brazil, Nativo for US keyboards)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-epo</name>
+- <_description>Esperanto (Brazil, Nativo)</_description>
++ <description>Esperanto (Brazil, Nativo)</description>
+ <languageList>
+ <iso639Id>epo</iso639Id>
+ </languageList>
+@@ -2204,9 +2204,9 @@
+ <layout>
+ <configItem>
+ <name>bg</name>
+- <!-- Keyboard indicator for Bulgarian layouts -->
+- <_shortDescription>bg</_shortDescription>
+- <_description>Bulgarian</_description>
++
++ <shortDescription>bg</shortDescription>
++ <description>Bulgarian</description>
+ <languageList>
+ <iso639Id>bul</iso639Id>
+ </languageList>
+@@ -2215,13 +2215,13 @@
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Bulgarian (traditional phonetic)</_description>
++ <description>Bulgarian (traditional phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bas_phonetic</name>
+- <_description>Bulgarian (new phonetic)</_description>
++ <description>Bulgarian (new phonetic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2229,17 +2229,17 @@
+ <layout>
+ <configItem>
+ <name>ma</name>
+- <!-- Keyboard indicator for Arabic layouts -->
+- <_shortDescription>ar</_shortDescription>
+- <_description>Arabic (Morocco)</_description>
++
++ <shortDescription>ar</shortDescription>
++ <description>Arabic (Morocco)</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>french</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Morocco)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Morocco)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -2248,9 +2248,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2259,9 +2259,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh-alt</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh alternative)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh alternative)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2270,9 +2270,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh-alt-phonetic</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh alternative phonetic)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh alternative phonetic)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2281,9 +2281,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh-extended</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh extended)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh extended)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2292,9 +2292,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh-phonetic</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh phonetic)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh phonetic)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2303,9 +2303,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh-extended-phonetic</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh extended phonetic)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh extended phonetic)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2316,23 +2316,23 @@
+ <layout>
+ <configItem>
+ <name>cm</name>
+- <!-- Keyboard indicator for Cameroon layouts -->
+- <_shortDescription>cm</_shortDescription>
+- <_description>English (Cameroon)</_description>
++
++ <shortDescription>cm</shortDescription>
++ <description>English (Cameroon)</description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>french</name>
+- <_description>French (Cameroon)</_description>
++ <description>French (Cameroon)</description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>Cameroon Multilingual (qwerty)</_description>
++ <description>Cameroon Multilingual (qwerty)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ <iso639Id>bas</iso639Id>
+@@ -2369,7 +2369,7 @@
+ <variant>
+ <configItem>
+ <name>azerty</name>
+- <_description>Cameroon Multilingual (azerty)</_description>
++ <description>Cameroon Multilingual (azerty)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ <iso639Id>bas</iso639Id>
+@@ -2406,7 +2406,7 @@
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Cameroon Multilingual (Dvorak)</_description>
++ <description>Cameroon Multilingual (Dvorak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2414,9 +2414,9 @@
+ <layout>
+ <configItem>
+ <name>mm</name>
+- <!-- Keyboard indicator for Burmese layouts -->
+- <_shortDescription>my</_shortDescription>
+- <_description>Burmese</_description>
++
++ <shortDescription>my</shortDescription>
++ <description>Burmese</description>
+ <languageList>
+ <iso639Id>mya</iso639Id>
+ </languageList>
+@@ -2426,9 +2426,9 @@
+ <layout>
+ <configItem>
+ <name>ca</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Canada)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Canada)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -2437,43 +2437,43 @@
+ <variant>
+ <configItem>
+ <name>fr-dvorak</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Canada, Dvorak)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Canada, Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr-legacy</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Canada, legacy)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Canada, legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multix</name>
+- <_description>Canadian Multilingual</_description>
++ <description>Canadian Multilingual</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multi</name>
+- <_description>Canadian Multilingual (first part)</_description>
++ <description>Canadian Multilingual (first part)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multi-2gr</name>
+- <_description>Canadian Multilingual (second part)</_description>
++ <description>Canadian Multilingual (second part)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ike</name>
+- <!-- Keyboard indicator for Inuktikut layouts -->
+- <_shortDescription>ike</_shortDescription>
+- <_description>Inuktitut</_description>
++
++ <shortDescription>ike</shortDescription>
++ <description>Inuktitut</description>
+ <languageList>
+ <iso639Id>iku</iso639Id>
+ </languageList>
+@@ -2482,9 +2482,9 @@
+ <variant>
+ <configItem>
+ <name>eng</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (Canada)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (Canada)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -2495,9 +2495,9 @@
+ <layout>
+ <configItem>
+ <name>cd</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Democratic Republic of the Congo)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Democratic Republic of the Congo)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -2507,9 +2507,9 @@
+ <layout>
+ <configItem>
+ <name>cn</name>
+- <!-- Keyboard indicator for Chinese layouts -->
+- <_shortDescription>zh</_shortDescription>
+- <_description>Chinese</_description>
++
++ <shortDescription>zh</shortDescription>
++ <description>Chinese</description>
+ <languageList>
+ <iso639Id>chi</iso639Id>
+ </languageList>
+@@ -2518,7 +2518,7 @@
+ <variant>
+ <configItem>
+ <name>tib</name>
+- <_description>Tibetan</_description>
++ <description>Tibetan</description>
+ <languageList>
+ <iso639Id>tib</iso639Id>
+ </languageList>
+@@ -2527,7 +2527,7 @@
+ <variant>
+ <configItem>
+ <name>tib_asciinum</name>
+- <_description>Tibetan (with ASCII numerals)</_description>
++ <description>Tibetan (with ASCII numerals)</description>
+ <languageList>
+ <iso639Id>tib</iso639Id>
+ </languageList>
+@@ -2536,8 +2536,8 @@
+ <variant>
+ <configItem>
+ <name>ug</name>
+- <_shortDescription>ug</_shortDescription>
+- <_description>Uyghur</_description>
++ <shortDescription>ug</shortDescription>
++ <description>Uyghur</description>
+ <languageList>
+ <iso639Id>ug</iso639Id>
+ </languageList>
+@@ -2548,9 +2548,9 @@
+ <layout>
+ <configItem>
+ <name>hr</name>
+- <!-- Keyboard indicator for Croatian layouts -->
+- <_shortDescription>hr</_shortDescription>
+- <_description>Croatian</_description>
++
++ <shortDescription>hr</shortDescription>
++ <description>Croatian</description>
+ <languageList>
+ <iso639Id>hrv</iso639Id>
+ </languageList>
+@@ -2559,25 +2559,25 @@
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+- <_description>Croatian (use guillemets for quotes)</_description>
++ <description>Croatian (use guillemets for quotes)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+- <_description>Croatian (use Croatian digraphs)</_description>
++ <description>Croatian (use Croatian digraphs)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicodeus</name>
+- <_description>Croatian (US keyboard with Croatian digraphs)</_description>
++ <description>Croatian (US keyboard with Croatian digraphs)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Croatian (US keyboard with Croatian letters)</_description>
++ <description>Croatian (US keyboard with Croatian letters)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2585,9 +2585,9 @@
+ <layout>
+ <configItem>
+ <name>cz</name>
+- <!-- Keyboard indicator for Chech layouts -->
+- <_shortDescription>cs</_shortDescription>
+- <_description>Czech</_description>
++
++ <shortDescription>cs</shortDescription>
++ <description>Czech</description>
+ <languageList>
+ <iso639Id>cze</iso639Id>
+ </languageList>
+@@ -2596,31 +2596,31 @@
+ <variant>
+ <configItem>
+ <name>bksl</name>
+- <_description>Czech (with &lt;\|&gt; key)</_description>
++ <description>Czech (with &lt;\|&gt; key)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>Czech (qwerty)</_description>
++ <description>Czech (qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_bksl</name>
+- <_description>Czech (qwerty, extended Backslash)</_description>
++ <description>Czech (qwerty, extended Backslash)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ucw</name>
+- <_description>Czech (UCW layout, accented letters only)</_description>
++ <description>Czech (UCW layout, accented letters only)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-ucw</name>
+- <_description>Czech (US Dvorak with CZ UCW support)</_description>
++ <description>Czech (US Dvorak with CZ UCW support)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2628,9 +2628,9 @@
+ <layout>
+ <configItem>
+ <name>dk</name>
+- <!-- Keyboard indicator for Danish layouts -->
+- <_shortDescription>da</_shortDescription>
+- <_description>Danish</_description>
++
++ <shortDescription>da</shortDescription>
++ <description>Danish</description>
+ <languageList>
+ <iso639Id>dan</iso639Id>
+ </languageList>
+@@ -2639,25 +2639,25 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Danish (eliminate dead keys)</_description>
++ <description>Danish (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Danish (Macintosh)</_description>
++ <description>Danish (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+- <_description>Danish (Macintosh, eliminate dead keys)</_description>
++ <description>Danish (Macintosh, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Danish (Dvorak)</_description>
++ <description>Danish (Dvorak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2665,9 +2665,9 @@
+ <layout>
+ <configItem>
+ <name>nl</name>
+- <!-- Keyboard indicator for Dutch layouts -->
+- <_shortDescription>nl</_shortDescription>
+- <_description>Dutch</_description>
++
++ <shortDescription>nl</shortDescription>
++ <description>Dutch</description>
+ <languageList>
+ <iso639Id>nld</iso639Id>
+ </languageList>
+@@ -2676,19 +2676,19 @@
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Dutch (Sun dead keys)</_description>
++ <description>Dutch (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Dutch (Macintosh)</_description>
++ <description>Dutch (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std</name>
+- <_description>Dutch (standard)</_description>
++ <description>Dutch (standard)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2696,9 +2696,9 @@
+ <layout>
+ <configItem>
+ <name>bt</name>
+- <!-- Keyboard indicator for Dzongkha layouts -->
+- <_shortDescription>dz</_shortDescription>
+- <_description>Dzongkha</_description>
++
++ <shortDescription>dz</shortDescription>
++ <description>Dzongkha</description>
+ <languageList>
+ <iso639Id>dzo</iso639Id>
+ </languageList>
+@@ -2707,9 +2707,9 @@
+ <layout>
+ <configItem>
+ <name>ee</name>
+- <!-- Keyboard indicator for Estonian layouts -->
+- <_shortDescription>et</_shortDescription>
+- <_description>Estonian</_description>
++
++ <shortDescription>et</shortDescription>
++ <description>Estonian</description>
+ <languageList>
+ <iso639Id>est</iso639Id>
+ </languageList>
+@@ -2718,19 +2718,19 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Estonian (eliminate dead keys)</_description>
++ <description>Estonian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Estonian (Dvorak)</_description>
++ <description>Estonian (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Estonian (US keyboard with Estonian letters)</_description>
++ <description>Estonian (US keyboard with Estonian letters)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2738,9 +2738,9 @@
+ <layout>
+ <configItem>
+ <name>ir</name>
+- <!-- Keyboard indicator for Persian layouts -->
+- <_shortDescription>fa</_shortDescription>
+- <_description>Persian</_description>
++
++ <shortDescription>fa</shortDescription>
++ <description>Persian</description>
+ <languageList>
+ <iso639Id>per</iso639Id>
+ </languageList>
+@@ -2749,15 +2749,15 @@
+ <variant>
+ <configItem>
+ <name>pes_keypad</name>
+- <_description>Persian (with Persian Keypad)</_description>
++ <description>Persian (with Persian Keypad)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iran, Latin Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iran, Latin Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2766,9 +2766,9 @@
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iran, F)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iran, F)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2777,9 +2777,9 @@
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iran, Latin Alt-Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iran, Latin Alt-Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2788,9 +2788,9 @@
+ <variant>
+ <configItem>
+ <name>ku_ara</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iran, Arabic-Latin)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iran, Arabic-Latin)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2801,9 +2801,9 @@
+ <layout>
+ <configItem>
+ <name>iq</name>
+- <!-- Keyboard indicator for Iraqi layouts -->
+- <_shortDescription>ar</_shortDescription>
+- <_description>Iraqi</_description>
++
++ <shortDescription>ar</shortDescription>
++ <description>Iraqi</description>
+ <languageList><iso639Id>ara</iso639Id>
+ <iso639Id>kur</iso639Id></languageList>
+ </configItem>
+@@ -2811,9 +2811,9 @@
+ <variant>
+ <configItem>
+ <name>ku</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iraq, Latin Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iraq, Latin Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2822,9 +2822,9 @@
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iraq, F)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iraq, F)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2833,9 +2833,9 @@
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iraq, Latin Alt-Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iraq, Latin Alt-Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2844,9 +2844,9 @@
+ <variant>
+ <configItem>
+ <name>ku_ara</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iraq, Arabic-Latin)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iraq, Arabic-Latin)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2857,9 +2857,9 @@
+ <layout>
+ <configItem>
+ <name>fo</name>
+- <!-- Keyboard indicator for Faroese layouts -->
+- <_shortDescription>fo</_shortDescription>
+- <_description>Faroese</_description>
++
++ <shortDescription>fo</shortDescription>
++ <description>Faroese</description>
+ <languageList>
+ <iso639Id>fao</iso639Id>
+ </languageList>
+@@ -2868,7 +2868,7 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Faroese (eliminate dead keys)</_description>
++ <description>Faroese (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2876,9 +2876,9 @@
+ <layout>
+ <configItem>
+ <name>fi</name>
+- <!-- Keyboard indicator for Finnish layouts -->
+- <_shortDescription>fi</_shortDescription>
+- <_description>Finnish</_description>
++
++ <shortDescription>fi</shortDescription>
++ <description>Finnish</description>
+ <languageList>
+ <iso639Id>fin</iso639Id>
+ </languageList>
+@@ -2887,26 +2887,26 @@
+ <variant>
+ <configItem>
+ <name>classic</name>
+- <_description>Finnish (classic)</_description>
++ <description>Finnish (classic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Finnish (classic, eliminate dead keys)</_description>
++ <description>Finnish (classic, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi</name>
+- <_description>Northern Saami (Finland)</_description>
++ <description>Northern Saami (Finland)</description>
+ <languageList><iso639Id>sme</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Finnish (Macintosh)</_description>
++ <description>Finnish (Macintosh)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2914,9 +2914,9 @@
+ <layout>
+ <configItem>
+ <name>fr</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -2925,91 +2925,91 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>French (eliminate dead keys)</_description>
++ <description>French (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>French (Sun dead keys)</_description>
++ <description>French (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss</name>
+- <_description>French (alternative)</_description>
++ <description>French (alternative)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_latin9</name>
+- <_description>French (alternative, Latin-9 only)</_description>
++ <description>French (alternative, Latin-9 only)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_nodeadkeys</name>
+- <_description>French (alternative, eliminate dead keys)</_description>
++ <description>French (alternative, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_sundeadkeys</name>
+- <_description>French (alternative, Sun dead keys)</_description>
++ <description>French (alternative, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9</name>
+- <_description>French (legacy, alternative)</_description>
++ <description>French (legacy, alternative)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9_nodeadkeys</name>
+- <_description>French (legacy, alternative, eliminate dead keys)</_description>
++ <description>French (legacy, alternative, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9_sundeadkeys</name>
+- <_description>French (legacy, alternative, Sun dead keys)</_description>
++ <description>French (legacy, alternative, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bepo</name>
+- <_description>French (Bepo, ergonomic, Dvorak way)</_description>
++ <description>French (Bepo, ergonomic, Dvorak way)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bepo_latin9</name>
+- <_description>French (Bepo, ergonomic, Dvorak way, Latin-9 only)</_description>
++ <description>French (Bepo, ergonomic, Dvorak way, Latin-9 only)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>French (Dvorak)</_description>
++ <description>French (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>French (Macintosh)</_description>
++ <description>French (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bre</name>
+- <_description>French (Breton)</_description>
++ <description>French (Breton)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oci</name>
+- <_description>Occitan</_description>
++ <description>Occitan</description>
+ <languageList>
+ <iso639Id>oci</iso639Id>
+ </languageList>
+@@ -3018,7 +3018,7 @@
+ <variant>
+ <configItem>
+ <name>geo</name>
+- <_description>Georgian (France, AZERTY Tskapo)</_description>
++ <description>Georgian (France, AZERTY Tskapo)</description>
+ <languageList>
+ <iso639Id>geo</iso639Id>
+ </languageList>
+@@ -3029,9 +3029,9 @@
+ <layout>
+ <configItem>
+ <name>gh</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (Ghana)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (Ghana)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -3040,15 +3040,15 @@
+ <variant>
+ <configItem>
+ <name>generic</name>
+- <_description>English (Ghana, multilingual)</_description>
++ <description>English (Ghana, multilingual)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>akan</name>
+- <!-- Keyboard indicator for Akan layouts -->
+- <_shortDescription>ak</_shortDescription>
+- <_description>Akan</_description>
++
++ <shortDescription>ak</shortDescription>
++ <description>Akan</description>
+ <languageList>
+ <iso639Id>aka</iso639Id>
+ </languageList>
+@@ -3057,9 +3057,9 @@
+ <variant>
+ <configItem>
+ <name>ewe</name>
+- <!-- Keyboard indicator for Ewe layouts -->
+- <_shortDescription>ee</_shortDescription>
+- <_description>Ewe</_description>
++
++ <shortDescription>ee</shortDescription>
++ <description>Ewe</description>
+ <languageList>
+ <iso639Id>ewe</iso639Id>
+ </languageList>
+@@ -3068,9 +3068,9 @@
+ <variant>
+ <configItem>
+ <name>fula</name>
+- <!-- Keyboard indicator for Fula layouts -->
+- <_shortDescription>ff</_shortDescription>
+- <_description>Fula</_description>
++
++ <shortDescription>ff</shortDescription>
++ <description>Fula</description>
+ <languageList>
+ <iso639Id>ful</iso639Id>
+ </languageList>
+@@ -3079,9 +3079,9 @@
+ <variant>
+ <configItem>
+ <name>ga</name>
+- <!-- Keyboard indicator for Ga layouts -->
+- <_shortDescription>gaa</_shortDescription>
+- <_description>Ga</_description>
++
++ <shortDescription>gaa</shortDescription>
++ <description>Ga</description>
+ <languageList>
+ <iso639Id>gaa</iso639Id>
+ </languageList>
+@@ -3090,9 +3090,9 @@
+ <variant>
+ <configItem>
+ <name>hausa</name>
+- <!-- Keyboard indicator for Hausa layouts -->
+- <_shortDescription>ha</_shortDescription>
+- <_description>Hausa</_description>
++
++ <shortDescription>ha</shortDescription>
++ <description>Hausa</description>
+ <languageList>
+ <iso639Id>hau</iso639Id>
+ </languageList>
+@@ -3101,9 +3101,9 @@
+ <variant>
+ <configItem>
+ <name>avn</name>
+- <!-- Keyboard indicator for Avatime layouts -->
+- <_shortDescription>avn</_shortDescription>
+- <_description>Avatime</_description>
++
++ <shortDescription>avn</shortDescription>
++ <description>Avatime</description>
+ <languageList>
+ <iso639Id>avn</iso639Id>
+ </languageList>
+@@ -3112,7 +3112,7 @@
+ <variant>
+ <configItem>
+ <name>gillbt</name>
+- <_description>English (Ghana, GILLBT)</_description>
++ <description>English (Ghana, GILLBT)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3120,9 +3120,9 @@
+ <layout>
+ <configItem>
+ <name>gn</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Guinea)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Guinea)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -3132,9 +3132,9 @@
+ <layout>
+ <configItem>
+ <name>ge</name>
+- <!-- Keyboard indicator for Georgian layouts -->
+- <_shortDescription>ka</_shortDescription>
+- <_description>Georgian</_description>
++
++ <shortDescription>ka</shortDescription>
++ <description>Georgian</description>
+ <languageList>
+ <iso639Id>geo</iso639Id>
+ </languageList>
+@@ -3143,21 +3143,21 @@
+ <variant>
+ <configItem>
+ <name>ergonomic</name>
+- <_description>Georgian (ergonomic)</_description>
++ <description>Georgian (ergonomic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mess</name>
+- <_description>Georgian (MESS)</_description>
++ <description>Georgian (MESS)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ru</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Georgia)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Georgia)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -3166,7 +3166,7 @@
+ <variant>
+ <configItem>
+ <name>os</name>
+- <_description>Ossetian (Georgia)</_description>
++ <description>Ossetian (Georgia)</description>
+ <languageList>
+ <iso639Id>oss</iso639Id>
+ </languageList>
+@@ -3177,9 +3177,9 @@
+ <layout>
+ <configItem>
+ <name>de</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German</description>
+ <languageList>
+ <iso639Id>ger</iso639Id>
+ </languageList>
+@@ -3188,75 +3188,75 @@
+ <variant>
+ <configItem>
+ <name>deadacute</name>
+- <_description>German (dead acute)</_description>
++ <description>German (dead acute)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>deadgraveacute</name>
+- <_description>German (dead grave acute)</_description>
++ <description>German (dead grave acute)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>German (eliminate dead keys)</_description>
++ <description>German (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>T3</name>
+- <_description>German (T3)</_description>
++ <description>German (T3)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ro</name>
+- <_description>Romanian (Germany)</_description>
++ <description>Romanian (Germany)</description>
+ <languageList><iso639Id>rum</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ro_nodeadkeys</name>
+- <_description>Romanian (Germany, eliminate dead keys)</_description>
++ <description>Romanian (Germany, eliminate dead keys)</description>
+ <languageList><iso639Id>rum</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>German (Dvorak)</_description>
++ <description>German (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>German (Sun dead keys)</_description>
++ <description>German (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>neo</name>
+- <_description>German (Neo 2)</_description>
++ <description>German (Neo 2)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>German (Macintosh)</_description>
++ <description>German (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+- <_description>German (Macintosh, eliminate dead keys)</_description>
++ <description>German (Macintosh, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dsb</name>
+- <_description>Lower Sorbian</_description>
++ <description>Lower Sorbian</description>
+ <languageList>
+ <iso639Id>dsb</iso639Id>
+ </languageList>
+@@ -3265,7 +3265,7 @@
+ <variant>
+ <configItem>
+ <name>dsb_qwertz</name>
+- <_description>Lower Sorbian (qwertz)</_description>
++ <description>Lower Sorbian (qwertz)</description>
+ <languageList>
+ <iso639Id>dsb</iso639Id>
+ </languageList>
+@@ -3274,15 +3274,15 @@
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>German (qwerty)</_description>
++ <description>German (qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ru</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Germany, phonetic)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Germany, phonetic)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -3291,7 +3291,7 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>German (legacy)</_description>
++ <description>German (legacy)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3299,9 +3299,9 @@
+ <layout>
+ <configItem>
+ <name>gr</name>
+- <!-- Keyboard indicator for Greek layouts -->
+- <_shortDescription>gr</_shortDescription>
+- <_description>Greek</_description>
++
++ <shortDescription>gr</shortDescription>
++ <description>Greek</description>
+ <languageList>
+ <iso639Id>gre</iso639Id>
+ </languageList>
+@@ -3310,25 +3310,25 @@
+ <variant>
+ <configItem>
+ <name>simple</name>
+- <_description>Greek (simple)</_description>
++ <description>Greek (simple)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>extended</name>
+- <_description>Greek (extended)</_description>
++ <description>Greek (extended)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Greek (eliminate dead keys)</_description>
++ <description>Greek (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>polytonic</name>
+- <_description>Greek (polytonic)</_description>
++ <description>Greek (polytonic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3336,9 +3336,9 @@
+ <layout>
+ <configItem>
+ <name>hu</name>
+- <!-- Keyboard indicator for Hungarian layouts -->
+- <_shortDescription>hu</_shortDescription>
+- <_description>Hungarian</_description>
++
++ <shortDescription>hu</shortDescription>
++ <description>Hungarian</description>
+ <languageList>
+ <iso639Id>hun</iso639Id>
+ </languageList>
+@@ -3347,115 +3347,115 @@
+ <variant>
+ <configItem>
+ <name>standard</name>
+- <_description>Hungarian (standard)</_description>
++ <description>Hungarian (standard)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Hungarian (eliminate dead keys)</_description>
++ <description>Hungarian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>Hungarian (qwerty)</_description>
++ <description>Hungarian (qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_comma_dead</name>
+- <_description>Hungarian (101/qwertz/comma/dead keys)</_description>
++ <description>Hungarian (101/qwertz/comma/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_comma_nodead</name>
+- <_description>Hungarian (101/qwertz/comma/eliminate dead keys)</_description>
++ <description>Hungarian (101/qwertz/comma/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_dot_dead</name>
+- <_description>Hungarian (101/qwertz/dot/dead keys)</_description>
++ <description>Hungarian (101/qwertz/dot/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_dot_nodead</name>
+- <_description>Hungarian (101/qwertz/dot/eliminate dead keys)</_description>
++ <description>Hungarian (101/qwertz/dot/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_comma_dead</name>
+- <_description>Hungarian (101/qwerty/comma/dead keys)</_description>
++ <description>Hungarian (101/qwerty/comma/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_comma_nodead</name>
+- <_description>Hungarian (101/qwerty/comma/eliminate dead keys)</_description>
++ <description>Hungarian (101/qwerty/comma/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_dot_dead</name>
+- <_description>Hungarian (101/qwerty/dot/dead keys)</_description>
++ <description>Hungarian (101/qwerty/dot/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_dot_nodead</name>
+- <_description>Hungarian (101/qwerty/dot/eliminate dead keys)</_description>
++ <description>Hungarian (101/qwerty/dot/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_comma_dead</name>
+- <_description>Hungarian (102/qwertz/comma/dead keys)</_description>
++ <description>Hungarian (102/qwertz/comma/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_comma_nodead</name>
+- <_description>Hungarian (102/qwertz/comma/eliminate dead keys)</_description>
++ <description>Hungarian (102/qwertz/comma/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_dot_dead</name>
+- <_description>Hungarian (102/qwertz/dot/dead keys)</_description>
++ <description>Hungarian (102/qwertz/dot/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_dot_nodead</name>
+- <_description>Hungarian (102/qwertz/dot/eliminate dead keys)</_description>
++ <description>Hungarian (102/qwertz/dot/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_comma_dead</name>
+- <_description>Hungarian (102/qwerty/comma/dead keys)</_description>
++ <description>Hungarian (102/qwerty/comma/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_comma_nodead</name>
+- <_description>Hungarian (102/qwerty/comma/eliminate dead keys)</_description>
++ <description>Hungarian (102/qwerty/comma/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_dot_dead</name>
+- <_description>Hungarian (102/qwerty/dot/dead keys)</_description>
++ <description>Hungarian (102/qwerty/dot/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_dot_nodead</name>
+- <_description>Hungarian (102/qwerty/dot/eliminate dead keys)</_description>
++ <description>Hungarian (102/qwerty/dot/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3463,9 +3463,9 @@
+ <layout>
+ <configItem>
+ <name>is</name>
+- <!-- Keyboard indicator for Icelandic layouts -->
+- <_shortDescription>is</_shortDescription>
+- <_description>Icelandic</_description>
++
++ <shortDescription>is</shortDescription>
++ <description>Icelandic</description>
+ <languageList>
+ <iso639Id>ice</iso639Id>
+ </languageList>
+@@ -3474,25 +3474,25 @@
+ <variant>
+ <configItem>
+ <name>Sundeadkeys</name>
+- <_description>Icelandic (Sun dead keys)</_description>
++ <description>Icelandic (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Icelandic (eliminate dead keys)</_description>
++ <description>Icelandic (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Icelandic (Macintosh)</_description>
++ <description>Icelandic (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Icelandic (Dvorak)</_description>
++ <description>Icelandic (Dvorak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3500,9 +3500,9 @@
+ <layout>
+ <configItem>
+ <name>il</name>
+- <!-- Keyboard indicator for Hebrew layouts -->
+- <_shortDescription>he</_shortDescription>
+- <_description>Hebrew</_description>
++
++ <shortDescription>he</shortDescription>
++ <description>Hebrew</description>
+ <languageList>
+ <iso639Id>heb</iso639Id>
+ </languageList>
+@@ -3511,19 +3511,19 @@
+ <variant>
+ <configItem>
+ <name>lyx</name>
+- <_description>Hebrew (lyx)</_description>
++ <description>Hebrew (lyx)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Hebrew (phonetic)</_description>
++ <description>Hebrew (phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>biblical</name>
+- <_description>Hebrew (Biblical, Tiro)</_description>
++ <description>Hebrew (Biblical, Tiro)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3531,9 +3531,9 @@
+ <layout>
+ <configItem>
+ <name>it</name>
+- <!-- Keyboard indicator for Italian layouts -->
+- <_shortDescription>it</_shortDescription>
+- <_description>Italian</_description>
++
++ <shortDescription>it</shortDescription>
++ <description>Italian</description>
+ <languageList>
+ <iso639Id>ita</iso639Id>
+ </languageList>
+@@ -3542,25 +3542,25 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Italian (eliminate dead keys)</_description>
++ <description>Italian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Italian (Macintosh)</_description>
++ <description>Italian (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Italian (US keyboard with Italian letters)</_description>
++ <description>Italian (US keyboard with Italian letters)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>geo</name>
+- <_description>Georgian (Italy)</_description>
++ <description>Georgian (Italy)</description>
+ <languageList>
+ <iso639Id>geo</iso639Id>
+ </languageList>
+@@ -3569,7 +3569,7 @@
+ <variant>
+ <configItem>
+ <name>ibm</name>
+- <_description>Italian (IBM 142)</_description>
++ <description>Italian (IBM 142)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3577,9 +3577,9 @@
+ <layout>
+ <configItem>
+ <name>jp</name>
+- <!-- Keyboard indicator for Japanese layouts -->
+- <_shortDescription>ja</_shortDescription>
+- <_description>Japanese</_description>
++
++ <shortDescription>ja</shortDescription>
++ <description>Japanese</description>
+ <languageList>
+ <iso639Id>jpn</iso639Id>
+ </languageList>
+@@ -3588,31 +3588,31 @@
+ <variant>
+ <configItem>
+ <name>kana</name>
+- <_description>Japanese (Kana)</_description>
++ <description>Japanese (Kana)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>kana86</name>
+- <_description>Japanese (Kana 86)</_description>
++ <description>Japanese (Kana 86)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>OADG109A</name>
+- <_description>Japanese (OADG 109A)</_description>
++ <description>Japanese (OADG 109A)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Japanese (Macintosh)</_description>
++ <description>Japanese (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Japanese (Dvorak)</_description>
++ <description>Japanese (Dvorak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3620,9 +3620,9 @@
+ <layout>
+ <configItem>
+ <name>kg</name>
+- <!-- Keyboard indicator for Kyrgyz layouts -->
+- <_shortDescription>ki</_shortDescription>
+- <_description>Kyrgyz</_description>
++
++ <shortDescription>ki</shortDescription>
++ <description>Kyrgyz</description>
+ <languageList>
+ <iso639Id>kir</iso639Id>
+ </languageList>
+@@ -3631,7 +3631,7 @@
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Kyrgyz (phonetic)</_description>
++ <description>Kyrgyz (phonetic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3639,9 +3639,9 @@
+ <layout>
+ <configItem>
+ <name>kh</name>
+- <!-- Keyboard indicator for Khmer layouts -->
+- <_shortDescription>km</_shortDescription>
+- <_description>Khmer (Cambodia)</_description>
++
++ <shortDescription>km</shortDescription>
++ <description>Khmer (Cambodia)</description>
+ <languageList>
+ <iso639Id>khm</iso639Id>
+ </languageList>
+@@ -3651,9 +3651,9 @@
+ <layout>
+ <configItem>
+ <name>kz</name>
+- <!-- Keyboard indicator for Kazakh layouts -->
+- <_shortDescription>kk</_shortDescription>
+- <_description>Kazakh</_description>
++
++ <shortDescription>kk</shortDescription>
++ <description>Kazakh</description>
+ <languageList>
+ <iso639Id>kaz</iso639Id>
+ </languageList>
+@@ -3662,9 +3662,9 @@
+ <variant>
+ <configItem>
+ <name>ruskaz</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Kazakhstan, with Kazakh)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Kazakhstan, with Kazakh)</description>
+ <languageList><iso639Id>kaz</iso639Id>
+ <iso639Id>rus</iso639Id></languageList>
+ </configItem>
+@@ -3672,7 +3672,7 @@
+ <variant>
+ <configItem>
+ <name>kazrus</name>
+- <_description>Kazakh (with Russian)</_description>
++ <description>Kazakh (with Russian)</description>
+ <languageList><iso639Id>kaz</iso639Id>
+ <iso639Id>rus</iso639Id></languageList>
+ </configItem>
+@@ -3682,9 +3682,9 @@
+ <layout>
+ <configItem>
+ <name>la</name>
+- <!-- Keyboard indicator for Lao layouts -->
+- <_shortDescription>lo</_shortDescription>
+- <_description>Lao</_description>
++
++ <shortDescription>lo</shortDescription>
++ <description>Lao</description>
+ <languageList>
+ <iso639Id>lao</iso639Id>
+ </languageList>
+@@ -3693,7 +3693,7 @@
+ <variant>
+ <configItem>
+ <name>stea</name>
+- <_description>Lao (STEA proposed standard layout)</_description>
++ <description>Lao (STEA proposed standard layout)</description>
+ <languageList><iso639Id>lao</iso639Id>
+ </languageList>
+ </configItem>
+@@ -3703,9 +3703,9 @@
+ <layout>
+ <configItem>
+ <name>latam</name>
+- <!-- Keyboard indicator for Spanish layouts -->
+- <_shortDescription>es</_shortDescription>
+- <_description>Spanish (Latin American)</_description>
++
++ <shortDescription>es</shortDescription>
++ <description>Spanish (Latin American)</description>
+ <countryList>
+ <iso3166Id>AR</iso3166Id>
+ <iso3166Id>BO</iso3166Id>
+@@ -3737,19 +3737,19 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Spanish (Latin American, eliminate dead keys)</_description>
++ <description>Spanish (Latin American, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>deadtilde</name>
+- <_description>Spanish (Latin American, include dead tilde)</_description>
++ <description>Spanish (Latin American, include dead tilde)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Spanish (Latin American, Sun dead keys)</_description>
++ <description>Spanish (Latin American, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3757,9 +3757,9 @@
+ <layout>
+ <configItem>
+ <name>lt</name>
+- <!-- Keyboard indicator for Lithuanian layouts -->
+- <_shortDescription>lt</_shortDescription>
+- <_description>Lithuanian</_description>
++
++ <shortDescription>lt</shortDescription>
++ <description>Lithuanian</description>
+ <languageList>
+ <iso639Id>lit</iso639Id>
+ </languageList>
+@@ -3768,31 +3768,31 @@
+ <variant>
+ <configItem>
+ <name>std</name>
+- <_description>Lithuanian (standard)</_description>
++ <description>Lithuanian (standard)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Lithuanian (US keyboard with Lithuanian letters)</_description>
++ <description>Lithuanian (US keyboard with Lithuanian letters)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ibm</name>
+- <_description>Lithuanian (IBM LST 1205-92)</_description>
++ <description>Lithuanian (IBM LST 1205-92)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>lekp</name>
+- <_description>Lithuanian (LEKP)</_description>
++ <description>Lithuanian (LEKP)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>lekpa</name>
+- <_description>Lithuanian (LEKPa)</_description>
++ <description>Lithuanian (LEKPa)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3800,9 +3800,9 @@
+ <layout>
+ <configItem>
+ <name>lv</name>
+- <!-- Keyboard indicator for Latvian layouts -->
+- <_shortDescription>lv</_shortDescription>
+- <_description>Latvian</_description>
++
++ <shortDescription>lv</shortDescription>
++ <description>Latvian</description>
+ <languageList>
+ <iso639Id>lav</iso639Id>
+ </languageList>
+@@ -3811,37 +3811,37 @@
+ <variant>
+ <configItem>
+ <name>apostrophe</name>
+- <_description>Latvian (apostrophe variant)</_description>
++ <description>Latvian (apostrophe variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tilde</name>
+- <_description>Latvian (tilde variant)</_description>
++ <description>Latvian (tilde variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fkey</name>
+- <_description>Latvian (F variant)</_description>
++ <description>Latvian (F variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>modern</name>
+- <_description>Latvian (modern)</_description>
++ <description>Latvian (modern)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ergonomic</name>
+- <_description>Latvian (ergonomic, ŪGJRMV)</_description>
++ <description>Latvian (ergonomic, ŪGJRMV)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>adapted</name>
+- <_description>Latvian (adapted)</_description>
++ <description>Latvian (adapted)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3849,9 +3849,9 @@
+ <layout>
+ <configItem>
+ <name>mao</name>
+- <!-- Keyboard indicator for Maori layouts -->
+- <_shortDescription>mi</_shortDescription>
+- <_description>Maori</_description>
++
++ <shortDescription>mi</shortDescription>
++ <description>Maori</description>
+ <languageList>
+ <iso639Id>mao</iso639Id>
+ </languageList>
+@@ -3861,9 +3861,9 @@
+ <layout>
+ <configItem>
+ <name>me</name>
+- <!-- Keyboard indicator for Montenegrin layouts -->
+- <_shortDescription>sr</_shortDescription>
+- <_description>Montenegrin</_description>
++
++ <shortDescription>sr</shortDescription>
++ <description>Montenegrin</description>
+ <languageList>
+ <iso639Id>srp</iso639Id>
+ </languageList>
+@@ -3872,43 +3872,43 @@
+ <variant>
+ <configItem>
+ <name>cyrillic</name>
+- <_description>Montenegrin (Cyrillic)</_description>
++ <description>Montenegrin (Cyrillic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>cyrillicyz</name>
+- <_description>Montenegrin (Cyrillic, Z and ZHE swapped)</_description>
++ <description>Montenegrin (Cyrillic, Z and ZHE swapped)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicode</name>
+- <_description>Montenegrin (Latin Unicode)</_description>
++ <description>Montenegrin (Latin Unicode)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinyz</name>
+- <_description>Montenegrin (Latin qwerty)</_description>
++ <description>Montenegrin (Latin qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicodeyz</name>
+- <_description>Montenegrin (Latin Unicode qwerty)</_description>
++ <description>Montenegrin (Latin Unicode qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>cyrillicalternatequotes</name>
+- <_description>Montenegrin (Cyrillic with guillemets)</_description>
++ <description>Montenegrin (Cyrillic with guillemets)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinalternatequotes</name>
+- <_description>Montenegrin (Latin with guillemets)</_description>
++ <description>Montenegrin (Latin with guillemets)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3916,9 +3916,9 @@
+ <layout>
+ <configItem>
+ <name>mk</name>
+- <!-- Keyboard indicator for Macedonian layouts -->
+- <_shortDescription>mk</_shortDescription>
+- <_description>Macedonian</_description>
++
++ <shortDescription>mk</shortDescription>
++ <description>Macedonian</description>
+ <languageList>
+ <iso639Id>mkd</iso639Id>
+ </languageList>
+@@ -3927,7 +3927,7 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Macedonian (eliminate dead keys)</_description>
++ <description>Macedonian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3935,9 +3935,9 @@
+ <layout>
+ <configItem>
+ <name>mt</name>
+- <!-- Keyboard indicator for Maltese layouts -->
+- <_shortDescription>mt</_shortDescription>
+- <_description>Maltese</_description>
++
++ <shortDescription>mt</shortDescription>
++ <description>Maltese</description>
+ <languageList>
+ <iso639Id>mlt</iso639Id>
+ </languageList>
+@@ -3946,7 +3946,7 @@
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Maltese (with US layout)</_description>
++ <description>Maltese (with US layout)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3954,9 +3954,9 @@
+ <layout>
+ <configItem>
+ <name>mn</name>
+- <!-- Keyboard indicator for Mongolian layouts -->
+- <_shortDescription>mn</_shortDescription>
+- <_description>Mongolian</_description>
++
++ <shortDescription>mn</shortDescription>
++ <description>Mongolian</description>
+ <languageList>
+ <iso639Id>mon</iso639Id>
+ </languageList>
+@@ -3966,9 +3966,9 @@
+ <layout>
+ <configItem>
+ <name>no</name>
+- <!-- Keyboard indicator for Norwegian layouts -->
+- <_shortDescription>no</_shortDescription>
+- <_description>Norwegian</_description>
++
++ <shortDescription>no</shortDescription>
++ <description>Norwegian</description>
+ <languageList>
+ <iso639Id>nor</iso639Id>
+ <iso639Id>nob</iso639Id>
+@@ -3979,19 +3979,19 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Norwegian (eliminate dead keys)</_description>
++ <description>Norwegian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Norwegian (Dvorak)</_description>
++ <description>Norwegian (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi</name>
+- <_description>Northern Saami (Norway)</_description>
++ <description>Northern Saami (Norway)</description>
+ <languageList>
+ <iso639Id>sme</iso639Id>
+ </languageList>
+@@ -4000,7 +4000,7 @@
+ <variant>
+ <configItem>
+ <name>smi_nodeadkeys</name>
+- <_description>Northern Saami (Norway, eliminate dead keys)</_description>
++ <description>Northern Saami (Norway, eliminate dead keys)</description>
+ <languageList>
+ <iso639Id>sme</iso639Id>
+ </languageList>
+@@ -4009,19 +4009,19 @@
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Norwegian (Macintosh)</_description>
++ <description>Norwegian (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+- <_description>Norwegian (Macintosh, eliminate dead keys)</_description>
++ <description>Norwegian (Macintosh, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>Norwegian (Colemak)</_description>
++ <description>Norwegian (Colemak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4029,9 +4029,9 @@
+ <layout>
+ <configItem>
+ <name>pl</name>
+- <!-- Keyboard indicator for Polish layouts -->
+- <_shortDescription>pl</_shortDescription>
+- <_description>Polish</_description>
++
++ <shortDescription>pl</shortDescription>
++ <description>Polish</description>
+ <languageList>
+ <iso639Id>pol</iso639Id>
+ </languageList>
+@@ -4040,37 +4040,37 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Polish (legacy)</_description>
++ <description>Polish (legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwertz</name>
+- <_description>Polish (qwertz)</_description>
++ <description>Polish (qwertz)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Polish (Dvorak)</_description>
++ <description>Polish (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak_quotes</name>
+- <_description>Polish (Dvorak, Polish quotes on quotemark key)</_description>
++ <description>Polish (Dvorak, Polish quotes on quotemark key)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak_altquotes</name>
+- <_description>Polish (Dvorak, Polish quotes on key 1)</_description>
++ <description>Polish (Dvorak, Polish quotes on key 1)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>csb</name>
+- <_description>Kashubian</_description>
++ <description>Kashubian</description>
+ <languageList>
+ <iso639Id>csb</iso639Id>
+ </languageList>
+@@ -4086,9 +4086,9 @@
+ <variant>
+ <configItem>
+ <name>ru_phonetic_dvorak</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Poland, phonetic Dvorak)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Poland, phonetic Dvorak)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -4097,7 +4097,7 @@
+ <variant>
+ <configItem>
+ <name>dvp</name>
+- <_description>Polish (programmer Dvorak)</_description>
++ <description>Polish (programmer Dvorak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4105,9 +4105,9 @@
+ <layout>
+ <configItem>
+ <name>pt</name>
+- <!-- Keyboard indicator for Portuguese layouts -->
+- <_shortDescription>pt</_shortDescription>
+- <_description>Portuguese</_description>
++
++ <shortDescription>pt</shortDescription>
++ <description>Portuguese</description>
+ <languageList>
+ <iso639Id>por</iso639Id>
+ </languageList>
+@@ -4116,49 +4116,49 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Portuguese (eliminate dead keys)</_description>
++ <description>Portuguese (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Portuguese (Sun dead keys)</_description>
++ <description>Portuguese (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Portuguese (Macintosh)</_description>
++ <description>Portuguese (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+- <_description>Portuguese (Macintosh, eliminate dead keys)</_description>
++ <description>Portuguese (Macintosh, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_sundeadkeys</name>
+- <_description>Portuguese (Macintosh, Sun dead keys)</_description>
++ <description>Portuguese (Macintosh, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo</name>
+- <_description>Portuguese (Nativo)</_description>
++ <description>Portuguese (Nativo)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-us</name>
+- <_description>Portuguese (Nativo for US keyboards)</_description>
++ <description>Portuguese (Nativo for US keyboards)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-epo</name>
+- <_description>Esperanto (Portugal, Nativo)</_description>
++ <description>Esperanto (Portugal, Nativo)</description>
+ <languageList>
+ <iso639Id>epo</iso639Id>
+ </languageList>
+@@ -4169,9 +4169,9 @@
+ <layout>
+ <configItem>
+ <name>ro</name>
+- <!-- Keyboard indicator for Romanian layouts -->
+- <_shortDescription>ro</_shortDescription>
+- <_description>Romanian</_description>
++
++ <shortDescription>ro</shortDescription>
++ <description>Romanian</description>
+ <languageList>
+ <iso639Id>rum</iso639Id>
+ </languageList>
+@@ -4180,25 +4180,25 @@
+ <variant>
+ <configItem>
+ <name>cedilla</name>
+- <_description>Romanian (cedilla)</_description>
++ <description>Romanian (cedilla)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std</name>
+- <_description>Romanian (standard)</_description>
++ <description>Romanian (standard)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std_cedilla</name>
+- <_description>Romanian (standard cedilla)</_description>
++ <description>Romanian (standard cedilla)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>winkeys</name>
+- <_description>Romanian (WinKeys)</_description>
++ <description>Romanian (WinKeys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4206,9 +4206,9 @@
+ <layout>
+ <configItem>
+ <name>ru</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -4217,37 +4217,37 @@
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Russian (phonetic)</_description>
++ <description>Russian (phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>phonetic_winkeys</name>
+- <_description>Russian (phonetic WinKeys)</_description>
++ <description>Russian (phonetic WinKeys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>typewriter</name>
+- <_description>Russian (typewriter)</_description>
++ <description>Russian (typewriter)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Russian (legacy)</_description>
++ <description>Russian (legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>typewriter-legacy</name>
+- <_description>Russian (typewriter, legacy)</_description>
++ <description>Russian (typewriter, legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tt</name>
+- <_description>Tatar</_description>
++ <description>Tatar</description>
+ <languageList>
+ <iso639Id>tat</iso639Id>
+ </languageList>
+@@ -4256,7 +4256,7 @@
+ <variant>
+ <configItem>
+ <name>os_legacy</name>
+- <_description>Ossetian (legacy)</_description>
++ <description>Ossetian (legacy)</description>
+ <languageList>
+ <iso639Id>oss</iso639Id>
+ </languageList>
+@@ -4265,7 +4265,7 @@
+ <variant>
+ <configItem>
+ <name>os_winkeys</name>
+- <_description>Ossetian (WinKeys)</_description>
++ <description>Ossetian (WinKeys)</description>
+ <languageList>
+ <iso639Id>oss</iso639Id>
+ </languageList>
+@@ -4274,7 +4274,7 @@
+ <variant>
+ <configItem>
+ <name>cv</name>
+- <_description>Chuvash</_description>
++ <description>Chuvash</description>
+ <languageList>
+ <iso639Id>chv</iso639Id>
+ </languageList>
+@@ -4283,7 +4283,7 @@
+ <variant>
+ <configItem>
+ <name>cv_latin</name>
+- <_description>Chuvash (Latin)</_description>
++ <description>Chuvash (Latin)</description>
+ <languageList>
+ <iso639Id>chv</iso639Id>
+ </languageList>
+@@ -4292,7 +4292,7 @@
+ <variant>
+ <configItem>
+ <name>udm</name>
+- <_description>Udmurt</_description>
++ <description>Udmurt</description>
+ <languageList>
+ <iso639Id>udm</iso639Id>
+ </languageList>
+@@ -4301,7 +4301,7 @@
+ <variant>
+ <configItem>
+ <name>kom</name>
+- <_description>Komi</_description>
++ <description>Komi</description>
+ <languageList>
+ <iso639Id>kom</iso639Id>
+ </languageList>
+@@ -4310,7 +4310,7 @@
+ <variant>
+ <configItem>
+ <name>sah</name>
+- <_description>Yakut</_description>
++ <description>Yakut</description>
+ <languageList>
+ <iso639Id>sah</iso639Id>
+ </languageList>
+@@ -4319,7 +4319,7 @@
+ <variant>
+ <configItem>
+ <name>xal</name>
+- <_description>Kalmyk</_description>
++ <description>Kalmyk</description>
+ <languageList>
+ <iso639Id>xal</iso639Id>
+ </languageList>
+@@ -4328,19 +4328,19 @@
+ <variant>
+ <configItem>
+ <name>dos</name>
+- <_description>Russian (DOS)</_description>
++ <description>Russian (DOS)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Russian (Macintosh)</_description>
++ <description>Russian (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>srp</name>
+- <_description>Serbian (Russia)</_description>
++ <description>Serbian (Russia)</description>
+ <languageList><iso639Id>rus</iso639Id>
+ <iso639Id>srp</iso639Id></languageList>
+ </configItem>
+@@ -4348,7 +4348,7 @@
+ <variant>
+ <configItem>
+ <name>bak</name>
+- <_description>Bashkirian</_description>
++ <description>Bashkirian</description>
+ <languageList>
+ <iso639Id>bak</iso639Id>
+ </languageList>
+@@ -4357,7 +4357,7 @@
+ <variant>
+ <configItem>
+ <name>chm</name>
+- <_description>Mari</_description>
++ <description>Mari</description>
+ <languageList>
+ <iso639Id>chm</iso639Id>
+ </languageList>
+@@ -4368,9 +4368,9 @@
+ <layout>
+ <configItem>
+ <name>rs</name>
+- <!-- Keyboard indicator for Serbian layouts -->
+- <_shortDescription>sr</_shortDescription>
+- <_description>Serbian</_description>
++
++ <shortDescription>sr</shortDescription>
++ <description>Serbian</description>
+ <languageList>
+ <iso639Id>srp</iso639Id>
+ </languageList>
+@@ -4379,49 +4379,49 @@
+ <variant>
+ <configItem>
+ <name>yz</name>
+- <_description>Serbian (Cyrillic, Z and ZHE swapped)</_description>
++ <description>Serbian (Cyrillic, Z and ZHE swapped)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin</name>
+- <_description>Serbian (Latin)</_description>
++ <description>Serbian (Latin)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicode</name>
+- <_description>Serbian (Latin Unicode)</_description>
++ <description>Serbian (Latin Unicode)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinyz</name>
+- <_description>Serbian (Latin qwerty)</_description>
++ <description>Serbian (Latin qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicodeyz</name>
+- <_description>Serbian (Latin Unicode qwerty)</_description>
++ <description>Serbian (Latin Unicode qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+- <_description>Serbian (Cyrillic with guillemets)</_description>
++ <description>Serbian (Cyrillic with guillemets)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinalternatequotes</name>
+- <_description>Serbian (Latin with guillemets)</_description>
++ <description>Serbian (Latin with guillemets)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rue</name>
+- <_description>Pannonian Rusyn</_description>
++ <description>Pannonian Rusyn</description>
+ <languageList>
+ <iso639Id>rue</iso639Id>
+ </languageList>
+@@ -4432,9 +4432,9 @@
+ <layout>
+ <configItem>
+ <name>si</name>
+- <!-- Keyboard indicator for Slovenian layouts -->
+- <_shortDescription>sl</_shortDescription>
+- <_description>Slovenian</_description>
++
++ <shortDescription>sl</shortDescription>
++ <description>Slovenian</description>
+ <languageList>
+ <iso639Id>slv</iso639Id>
+ </languageList>
+@@ -4443,13 +4443,13 @@
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+- <_description>Slovenian (use guillemets for quotes)</_description>
++ <description>Slovenian (use guillemets for quotes)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Slovenian (US keyboard with Slovenian letters)</_description>
++ <description>Slovenian (US keyboard with Slovenian letters)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4457,9 +4457,9 @@
+ <layout>
+ <configItem>
+ <name>sk</name>
+- <!-- Keyboard indicator for Slovak layouts -->
+- <_shortDescription>sk</_shortDescription>
+- <_description>Slovak</_description>
++
++ <shortDescription>sk</shortDescription>
++ <description>Slovak</description>
+ <languageList>
+ <iso639Id>slo</iso639Id>
+ </languageList>
+@@ -4468,19 +4468,19 @@
+ <variant>
+ <configItem>
+ <name>bksl</name>
+- <_description>Slovak (extended Backslash)</_description>
++ <description>Slovak (extended Backslash)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>Slovak (qwerty)</_description>
++ <description>Slovak (qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_bksl</name>
+- <_description>Slovak (qwerty, extended Backslash)</_description>
++ <description>Slovak (qwerty, extended Backslash)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4488,9 +4488,9 @@
+ <layout>
+ <configItem>
+ <name>es</name>
+- <!-- Keyboard indicator for Spanish layouts -->
+- <_shortDescription>es</_shortDescription>
+- <_description>Spanish</_description>
++
++ <shortDescription>es</shortDescription>
++ <description>Spanish</description>
+ <languageList>
+ <iso639Id>spa</iso639Id>
+ </languageList>
+@@ -4499,31 +4499,31 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Spanish (eliminate dead keys)</_description>
++ <description>Spanish (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>deadtilde</name>
+- <_description>Spanish (include dead tilde)</_description>
++ <description>Spanish (include dead tilde)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Spanish (Sun dead keys)</_description>
++ <description>Spanish (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Spanish (Dvorak)</_description>
++ <description>Spanish (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ast</name>
+- <_description>Asturian (Spain, with bottom-dot H and bottom-dot L)</_description>
++ <description>Asturian (Spain, with bottom-dot H and bottom-dot L)</description>
+ <languageList>
+ <iso639Id>ast</iso639Id>
+ </languageList>
+@@ -4532,7 +4532,7 @@
+ <variant>
+ <configItem>
+ <name>cat</name>
+- <_description>Catalan (Spain, with middle-dot L)</_description>
++ <description>Catalan (Spain, with middle-dot L)</description>
+ <languageList>
+ <iso639Id>cat</iso639Id>
+ </languageList>
+@@ -4541,7 +4541,7 @@
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Spanish (Macintosh)</_description>
++ <description>Spanish (Macintosh)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4549,9 +4549,9 @@
+ <layout>
+ <configItem>
+ <name>se</name>
+- <!-- Keyboard indicator for Swedish layouts -->
+- <_shortDescription>sv</_shortDescription>
+- <_description>Swedish</_description>
++
++ <shortDescription>sv</shortDescription>
++ <description>Swedish</description>
+ <languageList>
+ <iso639Id>swe</iso639Id>
+ </languageList>
+@@ -4560,21 +4560,21 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Swedish (eliminate dead keys)</_description>
++ <description>Swedish (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Swedish (Dvorak)</_description>
++ <description>Swedish (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rus</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Sweden, phonetic)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Sweden, phonetic)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -4583,9 +4583,9 @@
+ <variant>
+ <configItem>
+ <name>rus_nodeadkeys</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Sweden, phonetic, eliminate dead keys)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Sweden, phonetic, eliminate dead keys)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -4594,7 +4594,7 @@
+ <variant>
+ <configItem>
+ <name>smi</name>
+- <_description>Northern Saami (Sweden)</_description>
++ <description>Northern Saami (Sweden)</description>
+ <languageList>
+ <iso639Id>sme</iso639Id>
+ </languageList>
+@@ -4603,19 +4603,19 @@
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Swedish (Macintosh)</_description>
++ <description>Swedish (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>svdvorak</name>
+- <_description>Swedish (Svdvorak)</_description>
++ <description>Swedish (Svdvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>swl</name>
+- <_description>Swedish Sign Language</_description>
++ <description>Swedish Sign Language</description>
+ <languageList><iso639Id>swl</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -4624,9 +4624,9 @@
+ <layout>
+ <configItem>
+ <name>ch</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Switzerland)</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German (Switzerland)</description>
+ <languageList><iso639Id>ger</iso639Id>
+ <iso639Id>gsw</iso639Id></languageList>
+ </configItem>
+@@ -4634,31 +4634,31 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>German (Switzerland, legacy)</_description>
++ <description>German (Switzerland, legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>de_nodeadkeys</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Switzerland, eliminate dead keys)</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German (Switzerland, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>de_sundeadkeys</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Switzerland, Sun dead keys)</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German (Switzerland, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Switzerland)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Switzerland)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -4667,9 +4667,9 @@
+ <variant>
+ <configItem>
+ <name>fr_nodeadkeys</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Switzerland, eliminate dead keys)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Switzerland, eliminate dead keys)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -4678,9 +4678,9 @@
+ <variant>
+ <configItem>
+ <name>fr_sundeadkeys</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Switzerland, Sun dead keys)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Switzerland, Sun dead keys)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -4689,9 +4689,9 @@
+ <variant>
+ <configItem>
+ <name>fr_mac</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Switzerland, Macintosh)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Switzerland, Macintosh)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -4700,9 +4700,9 @@
+ <variant>
+ <configItem>
+ <name>de_mac</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Switzerland, Macintosh)</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German (Switzerland, Macintosh)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4710,9 +4710,9 @@
+ <layout>
+ <configItem>
+ <name>sy</name>
+- <!-- Keyboard indicator for Arabic layouts -->
+- <_shortDescription>ar</_shortDescription>
+- <_description>Arabic (Syria)</_description>
++
++ <shortDescription>ar</shortDescription>
++ <description>Arabic (Syria)</description>
+ <languageList>
+ <iso639Id>syr</iso639Id>
+ </languageList>
+@@ -4721,25 +4721,25 @@
+ <variant>
+ <configItem>
+ <name>syc</name>
+- <!-- Keyboard indicator for Syriac layouts -->
+- <_shortDescription>syc</_shortDescription>
+- <_description>Syriac</_description>
++
++ <shortDescription>syc</shortDescription>
++ <description>Syriac</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>syc_phonetic</name>
+- <!-- Keyboard indicator for Syriac layouts -->
+- <_shortDescription>syc</_shortDescription>
+- <_description>Syriac (phonetic)</_description>
++
++ <shortDescription>syc</shortDescription>
++ <description>Syriac (phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Syria, Latin Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Syria, Latin Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4748,9 +4748,9 @@
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Syria, F)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Syria, F)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4759,9 +4759,9 @@
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Syria, Latin Alt-Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Syria, Latin Alt-Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4772,9 +4772,9 @@
+ <layout>
+ <configItem>
+ <name>tj</name>
+- <!-- Keyboard indicator for Tajik layouts -->
+- <_shortDescription>tg</_shortDescription>
+- <_description>Tajik</_description>
++
++ <shortDescription>tg</shortDescription>
++ <description>Tajik</description>
+ <languageList>
+ <iso639Id>tgk</iso639Id>
+ </languageList>
+@@ -4783,7 +4783,7 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Tajik (legacy)</_description>
++ <description>Tajik (legacy)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4791,9 +4791,9 @@
+ <layout>
+ <configItem>
+ <name>lk</name>
+- <!-- Keyboard indicator for Sinhala layouts -->
+- <_shortDescription>si</_shortDescription>
+- <_description>Sinhala (phonetic)</_description>
++
++ <shortDescription>si</shortDescription>
++ <description>Sinhala (phonetic)</description>
+ <languageList>
+ <iso639Id>sin</iso639Id>
+ </languageList>
+@@ -4802,9 +4802,9 @@
+ <variant>
+ <configItem>
+ <name>tam_unicode</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil (Sri Lanka, Unicode)</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil (Sri Lanka, Unicode)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -4813,7 +4813,7 @@
+ <variant>
+ <configItem>
+ <name>tam_TAB</name>
+- <_description>Tamil (Sri Lanka, TAB Typewriter)</_description>
++ <description>Tamil (Sri Lanka, TAB Typewriter)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -4824,9 +4824,9 @@
+ <layout>
+ <configItem>
+ <name>th</name>
+- <!-- Keyboard indicator for Thai layouts -->
+- <_shortDescription>th</_shortDescription>
+- <_description>Thai</_description>
++
++ <shortDescription>th</shortDescription>
++ <description>Thai</description>
+ <languageList>
+ <iso639Id>tha</iso639Id>
+ </languageList>
+@@ -4835,13 +4835,13 @@
+ <variant>
+ <configItem>
+ <name>tis</name>
+- <_description>Thai (TIS-820.2538)</_description>
++ <description>Thai (TIS-820.2538)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>pat</name>
+- <_description>Thai (Pattachote)</_description>
++ <description>Thai (Pattachote)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4849,9 +4849,9 @@
+ <layout>
+ <configItem>
+ <name>tr</name>
+- <!-- Keyboard indicator for Turkish layouts -->
+- <_shortDescription>tr</_shortDescription>
+- <_description>Turkish</_description>
++
++ <shortDescription>tr</shortDescription>
++ <description>Turkish</description>
+ <languageList>
+ <iso639Id>tur</iso639Id>
+ </languageList>
+@@ -4860,27 +4860,27 @@
+ <variant>
+ <configItem>
+ <name>f</name>
+- <_description>Turkish (F)</_description>
++ <description>Turkish (F)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt</name>
+- <_description>Turkish (Alt-Q)</_description>
++ <description>Turkish (Alt-Q)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Turkish (Sun dead keys)</_description>
++ <description>Turkish (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Turkey, Latin Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Turkey, Latin Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4889,9 +4889,9 @@
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Turkey, F)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Turkey, F)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4900,9 +4900,9 @@
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Turkey, Latin Alt-Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Turkey, Latin Alt-Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4911,15 +4911,15 @@
+ <variant>
+ <configItem>
+ <name>intl</name>
+- <_description>Turkish (international with dead keys)</_description>
++ <description>Turkish (international with dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>crh</name>
+- <!-- Keyboard indicator for Crimean Tatar layouts -->
+- <_shortDescription>crh</_shortDescription>
+- <_description>Crimean Tatar (Turkish Q)</_description>
++
++ <shortDescription>crh</shortDescription>
++ <description>Crimean Tatar (Turkish Q)</description>
+ <languageList>
+ <iso639Id>crh</iso639Id>
+ </languageList>
+@@ -4928,9 +4928,9 @@
+ <variant>
+ <configItem>
+ <name>crh_f</name>
+- <!-- Keyboard indicator for Crimean Tatar layouts -->
+- <_shortDescription>crh</_shortDescription>
+- <_description>Crimean Tatar (Turkish F)</_description>
++
++ <shortDescription>crh</shortDescription>
++ <description>Crimean Tatar (Turkish F)</description>
+ <languageList>
+ <iso639Id>crh</iso639Id>
+ </languageList>
+@@ -4939,9 +4939,9 @@
+ <variant>
+ <configItem>
+ <name>crh_alt</name>
+- <!-- Keyboard indicator for Crimean Tatar layouts -->
+- <_shortDescription>crh</_shortDescription>
+- <_description>Crimean Tatar (Turkish Alt-Q)</_description>
++
++ <shortDescription>crh</shortDescription>
++ <description>Crimean Tatar (Turkish Alt-Q)</description>
+ <languageList>
+ <iso639Id>crh</iso639Id>
+ </languageList>
+@@ -4952,9 +4952,9 @@
+ <layout>
+ <configItem>
+ <name>tw</name>
+- <!-- Keyboard indicator for Taiwanese layouts -->
+- <_shortDescription>zh</_shortDescription>
+- <_description>Taiwanese</_description>
++
++ <shortDescription>zh</shortDescription>
++ <description>Taiwanese</description>
+ <languageList>
+ <iso639Id>fox</iso639Id>
+ </languageList>
+@@ -4963,7 +4963,7 @@
+ <variant>
+ <configItem>
+ <name>indigenous</name>
+- <_description>Taiwanese (indigenous)</_description>
++ <description>Taiwanese (indigenous)</description>
+ <languageList>
+ <iso639Id>ami</iso639Id>
+ <iso639Id>tay</iso639Id>
+@@ -4987,9 +4987,9 @@
+ <variant>
+ <configItem>
+ <name>saisiyat</name>
+- <!-- Keyboard indicator for Saisiyat layouts -->
+- <_shortDescription>xsy</_shortDescription>
+- <_description>Saisiyat (Taiwan)</_description>
++
++ <shortDescription>xsy</shortDescription>
++ <description>Saisiyat (Taiwan)</description>
+ <languageList>
+ <iso639Id>xsy</iso639Id>
+ </languageList>
+@@ -5000,9 +5000,9 @@
+ <layout>
+ <configItem>
+ <name>ua</name>
+- <!-- Keyboard indicator for Ukranian layouts -->
+- <_shortDescription>uk</_shortDescription>
+- <_description>Ukrainian</_description>
++
++ <shortDescription>uk</shortDescription>
++ <description>Ukrainian</description>
+ <languageList>
+ <iso639Id>ukr</iso639Id>
+ </languageList>
+@@ -5011,43 +5011,43 @@
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Ukrainian (phonetic)</_description>
++ <description>Ukrainian (phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>typewriter</name>
+- <_description>Ukrainian (typewriter)</_description>
++ <description>Ukrainian (typewriter)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>winkeys</name>
+- <_description>Ukrainian (WinKeys)</_description>
++ <description>Ukrainian (WinKeys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Ukrainian (legacy)</_description>
++ <description>Ukrainian (legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rstu</name>
+- <_description>Ukrainian (standard RSTU)</_description>
++ <description>Ukrainian (standard RSTU)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rstu_ru</name>
+- <_description>Russian (Ukraine, standard RSTU)</_description>
++ <description>Russian (Ukraine, standard RSTU)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>homophonic</name>
+- <_description>Ukrainian (homophonic)</_description>
++ <description>Ukrainian (homophonic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5055,9 +5055,9 @@
+ <layout>
+ <configItem>
+ <name>gb</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (UK)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (UK)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5066,43 +5066,43 @@
+ <variant>
+ <configItem>
+ <name>extd</name>
+- <_description>English (UK, extended WinKeys)</_description>
++ <description>English (UK, extended WinKeys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>intl</name>
+- <_description>English (UK, international with dead keys)</_description>
++ <description>English (UK, international with dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>English (UK, Dvorak)</_description>
++ <description>English (UK, Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorakukp</name>
+- <_description>English (UK, Dvorak with UK punctuation)</_description>
++ <description>English (UK, Dvorak with UK punctuation)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>English (UK, Macintosh)</_description>
++ <description>English (UK, Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_intl</name>
+- <_description>English (UK, Macintosh international)</_description>
++ <description>English (UK, Macintosh international)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>English (UK, Colemak)</_description>
++ <description>English (UK, Colemak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5110,9 +5110,9 @@
+ <layout>
+ <configItem>
+ <name>uz</name>
+- <!-- Keyboard indicator for Uzbek layouts -->
+- <_shortDescription>uz</_shortDescription>
+- <_description>Uzbek</_description>
++
++ <shortDescription>uz</shortDescription>
++ <description>Uzbek</description>
+ <languageList>
+ <iso639Id>uzb</iso639Id>
+ </languageList>
+@@ -5121,7 +5121,7 @@
+ <variant>
+ <configItem>
+ <name>latin</name>
+- <_description>Uzbek (Latin)</_description>
++ <description>Uzbek (Latin)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5129,9 +5129,9 @@
+ <layout>
+ <configItem>
+ <name>vn</name>
+- <!-- Keyboard indicator for Vietnamese layouts -->
+- <_shortDescription>vi</_shortDescription>
+- <_description>Vietnamese</_description>
++
++ <shortDescription>vi</shortDescription>
++ <description>Vietnamese</description>
+ <languageList>
+ <iso639Id>vie</iso639Id>
+ </languageList>
+@@ -5141,9 +5141,9 @@
+ <layout>
+ <configItem>
+ <name>kr</name>
+- <!-- Keyboard indicator for Korean layouts -->
+- <_shortDescription>ko</_shortDescription>
+- <_description>Korean</_description>
++
++ <shortDescription>ko</shortDescription>
++ <description>Korean</description>
+ <languageList>
+ <iso639Id>kor</iso639Id>
+ </languageList>
+@@ -5152,7 +5152,7 @@
+ <variant>
+ <configItem>
+ <name>kr104</name>
+- <_description>Korean (101/104 key compatible)</_description>
++ <description>Korean (101/104 key compatible)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5160,9 +5160,9 @@
+ <layout>
+ <configItem>
+ <name>nec_vndr/jp</name>
+- <!-- Keyboard indicator for Japanese layouts -->
+- <_shortDescription>ja</_shortDescription>
+- <_description>Japanese (PC-98xx Series)</_description>
++
++ <shortDescription>ja</shortDescription>
++ <description>Japanese (PC-98xx Series)</description>
+ <countryList>
+ <iso3166Id>JP</iso3166Id>
+ </countryList>
+@@ -5175,9 +5175,9 @@
+ <layout>
+ <configItem>
+ <name>ie</name>
+- <!-- Keyboard indicator for Irish layouts -->
+- <_shortDescription>ie</_shortDescription>
+- <_description>Irish</_description>
++
++ <shortDescription>ie</shortDescription>
++ <description>Irish</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5186,7 +5186,7 @@
+ <variant>
+ <configItem>
+ <name>CloGaelach</name>
+- <_description>CloGaelach</_description>
++ <description>CloGaelach</description>
+ <languageList>
+ <iso639Id>gle</iso639Id>
+ </languageList>
+@@ -5195,13 +5195,13 @@
+ <variant>
+ <configItem>
+ <name>UnicodeExpert</name>
+- <_description>Irish (UnicodeExpert)</_description>
++ <description>Irish (UnicodeExpert)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ogam</name>
+- <_description>Ogham</_description>
++ <description>Ogham</description>
+ <languageList>
+ <iso639Id>sga</iso639Id>
+ </languageList>
+@@ -5210,7 +5210,7 @@
+ <variant>
+ <configItem>
+ <name>ogam_is434</name>
+- <_description>Ogham (IS434)</_description>
++ <description>Ogham (IS434)</description>
+ <languageList>
+ <iso639Id>sga</iso639Id>
+ </languageList>
+@@ -5221,9 +5221,9 @@
+ <layout>
+ <configItem>
+ <name>pk</name>
+- <!-- Keyboard indicator for Urdu layouts -->
+- <_shortDescription>ur</_shortDescription>
+- <_description>Urdu (Pakistan)</_description>
++
++ <shortDescription>ur</shortDescription>
++ <description>Urdu (Pakistan)</description>
+ <languageList>
+ <iso639Id>urd</iso639Id>
+ </languageList>
+@@ -5232,20 +5232,20 @@
+ <variant>
+ <configItem>
+ <name>urd-crulp</name>
+- <_description>Urdu (Pakistan, CRULP)</_description>
++ <description>Urdu (Pakistan, CRULP)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>urd-nla</name>
+- <_description>Urdu (Pakistan, NLA)</_description>
++ <description>Urdu (Pakistan, NLA)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ara</name>
+- <_shortDescription>ar</_shortDescription>
+- <_description>Arabic (Pakistan)</_description>
++ <shortDescription>ar</shortDescription>
++ <description>Arabic (Pakistan)</description>
+ <languageList>
+ <iso639Id>ara</iso639Id>
+ </languageList>
+@@ -5254,9 +5254,9 @@
+ <variant>
+ <configItem>
+ <name>snd</name>
+- <!-- Keyboard indicator for Sindhi layouts -->
+- <_shortDescription>sd</_shortDescription>
+- <_description>Sindhi</_description>
++
++ <shortDescription>sd</shortDescription>
++ <description>Sindhi</description>
+ <languageList>
+ <iso639Id>snd</iso639Id>
+ </languageList>
+@@ -5267,9 +5267,9 @@
+ <layout>
+ <configItem>
+ <name>mv</name>
+- <!-- Keyboard indicator for Dhivehi layouts -->
+- <_shortDescription>dv</_shortDescription>
+- <_description>Dhivehi</_description>
++
++ <shortDescription>dv</shortDescription>
++ <description>Dhivehi</description>
+ <languageList>
+ <iso639Id>div</iso639Id>
+ </languageList>
+@@ -5279,9 +5279,9 @@
+ <layout>
+ <configItem>
+ <name>za</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (South Africa)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (South Africa)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5290,9 +5290,9 @@
+ <layout>
+ <configItem>
+ <name>epo</name>
+- <!-- Keyboard indicator for Esperanto layouts -->
+- <_shortDescription>eo</_shortDescription>
+- <_description>Esperanto</_description>
++
++ <shortDescription>eo</shortDescription>
++ <description>Esperanto</description>
+ <languageList>
+ <iso639Id>epo</iso639Id>
+ </languageList>
+@@ -5301,7 +5301,7 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Esperanto (displaced semicolon and quote, obsolete)</_description>
++ <description>Esperanto (displaced semicolon and quote, obsolete)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5309,9 +5309,9 @@
+ <layout>
+ <configItem>
+ <name>np</name>
+- <!-- Keyboard indicator for Nepali layouts -->
+- <_shortDescription>ne</_shortDescription>
+- <_description>Nepali</_description>
++
++ <shortDescription>ne</shortDescription>
++ <description>Nepali</description>
+ <languageList>
+ <iso639Id>nep</iso639Id>
+ </languageList>
+@@ -5320,9 +5320,9 @@
+ <layout>
+ <configItem>
+ <name>ng</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (Nigeria)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (Nigeria)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5331,9 +5331,9 @@
+ <variant>
+ <configItem>
+ <name>igbo</name>
+- <!-- Keyboard indicator for Igbo layouts -->
+- <_shortDescription>ig</_shortDescription>
+- <_description>Igbo</_description>
++
++ <shortDescription>ig</shortDescription>
++ <description>Igbo</description>
+ <languageList>
+ <iso639Id>ibo</iso639Id>
+ </languageList>
+@@ -5342,9 +5342,9 @@
+ <variant>
+ <configItem>
+ <name>yoruba</name>
+- <!-- Keyboard indicator for Yoruba layouts -->
+- <_shortDescription>yo</_shortDescription>
+- <_description>Yoruba</_description>
++
++ <shortDescription>yo</shortDescription>
++ <description>Yoruba</description>
+ <languageList>
+ <iso639Id>yor</iso639Id>
+ </languageList>
+@@ -5353,9 +5353,9 @@
+ <variant>
+ <configItem>
+ <name>hausa</name>
+- <!-- Keyboard indicator for Hausa layouts -->
+- <_shortDescription>ha</_shortDescription>
+- <_description>Hausa</_description>
++
++ <shortDescription>ha</shortDescription>
++ <description>Hausa</description>
+ <languageList>
+ <iso639Id>hau</iso639Id>
+ </languageList>
+@@ -5366,9 +5366,9 @@
+ <layout>
+ <configItem>
+ <name>et</name>
+- <!-- Keyboard indicator for Amharic layouts -->
+- <_shortDescription>am</_shortDescription>
+- <_description>Amharic</_description>
++
++ <shortDescription>am</shortDescription>
++ <description>Amharic</description>
+ <languageList>
+ <iso639Id>amh</iso639Id>
+ </languageList>
+@@ -5378,9 +5378,9 @@
+ <layout>
+ <configItem>
+ <name>sn</name>
+- <!-- Keyboard indicator for Wolof layouts -->
+- <_shortDescription>wo</_shortDescription>
+- <_description>Wolof</_description>
++
++ <shortDescription>wo</shortDescription>
++ <description>Wolof</description>
+ <languageList>
+ <iso639Id>wol</iso639Id>
+ </languageList>
+@@ -5390,21 +5390,21 @@
+ <layout>
+ <configItem>
+ <name>brai</name>
+- <!-- Keyboard indicator for Braille layouts -->
+- <_shortDescription>brl</_shortDescription>
+- <_description>Braille</_description>
++
++ <shortDescription>brl</shortDescription>
++ <description>Braille</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>left_hand</name>
+- <_description>Braille (left hand)</_description>
++ <description>Braille (left hand)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>right_hand</name>
+- <_description>Braille (right hand)</_description>
++ <description>Braille (right hand)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5412,9 +5412,9 @@
+ <layout>
+ <configItem>
+ <name>tm</name>
+- <!-- Keyboard indicator for Turkmen layouts -->
+- <_shortDescription>tk</_shortDescription>
+- <_description>Turkmen</_description>
++
++ <shortDescription>tk</shortDescription>
++ <description>Turkmen</description>
+ <languageList>
+ <iso639Id>tuk</iso639Id>
+ </languageList>
+@@ -5423,7 +5423,7 @@
+ <variant>
+ <configItem>
+ <name>alt</name>
+- <_description>Turkmen (Alt-Q)</_description>
++ <description>Turkmen (Alt-Q)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5431,9 +5431,9 @@
+ <layout>
+ <configItem>
+ <name>ml</name>
+- <!-- Keyboard indicator for Bambara layouts -->
+- <_shortDescription>bm</_shortDescription>
+- <_description>Bambara</_description>
++
++ <shortDescription>bm</shortDescription>
++ <description>Bambara</description>
+ <languageList>
+ <iso639Id>bam</iso639Id>
+ </languageList>
+@@ -5442,9 +5442,9 @@
+ <variant>
+ <configItem>
+ <name>fr-oss</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Mali, alternative)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Mali, alternative)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -5453,9 +5453,9 @@
+ <variant>
+ <configItem>
+ <name>us-mac</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (Mali, US Macintosh)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (Mali, US Macintosh)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5464,9 +5464,9 @@
+ <variant>
+ <configItem>
+ <name>us-intl</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (Mali, US international)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (Mali, US international)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5477,9 +5477,9 @@
+ <layout>
+ <configItem>
+ <name>tz</name>
+- <!-- Keyboard indicator for Swahili layouts -->
+- <_shortDescription>sw</_shortDescription>
+- <_description>Swahili (Tanzania)</_description>
++
++ <shortDescription>sw</shortDescription>
++ <description>Swahili (Tanzania)</description>
+ <languageList>
+ <iso639Id>swa</iso639Id>
+ </languageList>
+@@ -5488,9 +5488,9 @@
+ <layout>
+ <configItem>
+ <name>ke</name>
+- <!-- Keyboard indicator for Swahili layouts -->
+- <_shortDescription>sw</_shortDescription>
+- <_description>Swahili (Kenya)</_description>
++
++ <shortDescription>sw</shortDescription>
++ <description>Swahili (Kenya)</description>
+ <languageList>
+ <iso639Id>swa</iso639Id>
+ </languageList>
+@@ -5499,9 +5499,9 @@
+ <variant>
+ <configItem>
+ <name>kik</name>
+- <!-- Keyboard indicator for Kikuyu layouts -->
+- <_shortDescription>ki</_shortDescription>
+- <_description>Kikuyu</_description>
++
++ <shortDescription>ki</shortDescription>
++ <description>Kikuyu</description>
+ <languageList>
+ <iso639Id>kik</iso639Id>
+ </languageList>
+@@ -5512,9 +5512,9 @@
+ <layout>
+ <configItem>
+ <name>bw</name>
+- <!-- Keyboard indicator for Tswana layouts -->
+- <_shortDescription>tn</_shortDescription>
+- <_description>Tswana</_description>
++
++ <shortDescription>tn</shortDescription>
++ <description>Tswana</description>
+ <languageList>
+ <iso639Id>tsn</iso639Id>
+ </languageList>
+@@ -5523,9 +5523,9 @@
+ <layout>
+ <configItem>
+ <name>ph</name>
+- <!-- Keyboard indicator for Filipino layouts -->
+- <_shortDescription>ph</_shortDescription>
+- <_description>Filipino</_description>
++
++ <shortDescription>ph</shortDescription>
++ <description>Filipino</description>
+ <languageList><iso639Id>eng</iso639Id>
+ <iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+@@ -5542,7 +5542,7 @@
+ <variant>
+ <configItem>
+ <name>qwerty-bay</name>
+- <_description>Filipino (QWERTY Baybayin)</_description>
++ <description>Filipino (QWERTY Baybayin)</description>
+ <languageList><iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+ <iso639Id>fil</iso639Id>
+@@ -5558,13 +5558,13 @@
+ <variant>
+ <configItem>
+ <name>capewell-dvorak</name>
+- <_description>Filipino (Capewell-Dvorak Latin)</_description>
++ <description>Filipino (Capewell-Dvorak Latin)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>capewell-dvorak-bay</name>
+- <_description>Filipino (Capewell-Dvorak Baybayin)</_description>
++ <description>Filipino (Capewell-Dvorak Baybayin)</description>
+ <languageList><iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+ <iso639Id>fil</iso639Id>
+@@ -5580,13 +5580,13 @@
+ <variant>
+ <configItem>
+ <name>capewell-qwerf2k6</name>
+- <_description>Filipino (Capewell-QWERF 2006 Latin)</_description>
++ <description>Filipino (Capewell-QWERF 2006 Latin)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>capewell-qwerf2k6-bay</name>
+- <_description>Filipino (Capewell-QWERF 2006 Baybayin)</_description>
++ <description>Filipino (Capewell-QWERF 2006 Baybayin)</description>
+ <languageList><iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+ <iso639Id>fil</iso639Id>
+@@ -5602,13 +5602,13 @@
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>Filipino (Colemak Latin)</_description>
++ <description>Filipino (Colemak Latin)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak-bay</name>
+- <_description>Filipino (Colemak Baybayin)</_description>
++ <description>Filipino (Colemak Baybayin)</description>
+ <languageList><iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+ <iso639Id>fil</iso639Id>
+@@ -5624,13 +5624,13 @@
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Filipino (Dvorak Latin)</_description>
++ <description>Filipino (Dvorak Latin)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-bay</name>
+- <_description>Filipino (Dvorak Baybayin)</_description>
++ <description>Filipino (Dvorak Baybayin)</description>
+ <languageList><iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+ <iso639Id>fil</iso639Id>
+@@ -5648,16 +5648,16 @@
+ <layout>
+ <configItem>
+ <name>md</name>
+- <_shortDescription>md</_shortDescription>
+- <_description>Moldavian</_description>
++ <shortDescription>md</shortDescription>
++ <description>Moldavian</description>
+ <languageList><iso639Id>rum</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>gag</name>
+- <_shortDescription>gag</_shortDescription>
+- <_description>Moldavian (Gagauz)</_description>
++ <shortDescription>gag</shortDescription>
++ <description>Moldavian (Gagauz)</description>
+ <languageList><iso639Id>gag</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -5666,1183 +5666,1142 @@
+ </layoutList>
+ <optionList>
+ <group allowMultipleSelection="true">
+- <!-- The key combination used to switch between groups -->
++
+ <configItem>
+ <name>grp</name>
+- <_description>Switching to another layout</_description>
++ <description>Switching to another layout</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>grp:switch</name>
+- <_description>Right Alt (while pressed)</_description>
++ <description>Right Alt (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lswitch</name>
+- <_description>Left Alt (while pressed)</_description>
++ <description>Left Alt (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lwin_switch</name>
+- <_description>Left Win (while pressed)</_description>
++ <description>Left Win (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rwin_switch</name>
+- <_description>Right Win (while pressed)</_description>
++ <description>Right Win (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:win_switch</name>
+- <_description>Any Win key (while pressed)</_description>
++ <description>Any Win key (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:caps_switch</name>
+- <_description>Caps Lock (while pressed), Alt+Caps Lock does the original capslock action</_description>
++ <description>Caps Lock (while pressed), Alt+Caps Lock does the original capslock action</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rctrl_switch</name>
+- <_description>Right Ctrl (while pressed)</_description>
++ <description>Right Ctrl (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:toggle</name>
+- <_description>Right Alt</_description>
++ <description>Right Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lalt_toggle</name>
+- <_description>Left Alt</_description>
++ <description>Left Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:caps_toggle</name>
+- <_description>Caps Lock</_description>
++ <description>Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shift_caps_toggle</name>
+- <_description>Shift+Caps Lock</_description>
++ <description>Shift+Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shift_caps_switch</name>
+- <_description>Caps Lock (to first layout), Shift+Caps Lock (to last layout)</_description>
++ <description>Caps Lock (to first layout), Shift+Caps Lock (to last layout)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:win_menu_switch</name>
+- <_description>Left Win (to first layout), Right Win/Menu (to last layout)</_description>
++ <description>Left Win (to first layout), Right Win/Menu (to last layout)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_rctrl_switch</name>
+- <_description>Left Ctrl (to first layout), Right Ctrl (to last layout)</_description>
++ <description>Left Ctrl (to first layout), Right Ctrl (to last layout)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alt_caps_toggle</name>
+- <_description>Alt+Caps Lock</_description>
++ <description>Alt+Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shifts_toggle</name>
+- <_description>Both Shift keys together</_description>
++ <description>Both Shift keys together</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alts_toggle</name>
+- <_description>Both Alt keys together</_description>
++ <description>Both Alt keys together</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrls_toggle</name>
+- <_description>Both Ctrl keys together</_description>
++ <description>Both Ctrl keys together</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrl_shift_toggle</name>
+- <_description>Ctrl+Shift</_description>
++ <description>Ctrl+Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_lshift_toggle</name>
+- <_description>Left Ctrl+Left Shift</_description>
++ <description>Left Ctrl+Left Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rctrl_rshift_toggle</name>
+- <_description>Right Ctrl+Right Shift</_description>
++ <description>Right Ctrl+Right Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrl_alt_toggle</name>
+- <_description>Alt+Ctrl</_description>
++ <description>Alt+Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alt_shift_toggle</name>
+- <_description>Alt+Shift</_description>
++ <description>Alt+Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lalt_lshift_toggle</name>
+- <_description>Left Alt+Left Shift</_description>
++ <description>Left Alt+Left Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alt_space_toggle</name>
+- <_description>Alt+Space</_description>
++ <description>Alt+Space</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:menu_toggle</name>
+- <_description>Menu</_description>
++ <description>Menu</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lwin_toggle</name>
+- <_description>Left Win</_description>
++ <description>Left Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rwin_toggle</name>
+- <_description>Right Win</_description>
++ <description>Right Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lshift_toggle</name>
+- <_description>Left Shift</_description>
++ <description>Left Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rshift_toggle</name>
+- <_description>Right Shift</_description>
++ <description>Right Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_toggle</name>
+- <_description>Left Ctrl</_description>
++ <description>Left Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rctrl_toggle</name>
+- <_description>Right Ctrl</_description>
++ <description>Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:sclk_toggle</name>
+- <_description>Scroll Lock</_description>
++ <description>Scroll Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_lwin_rctrl_menu</name>
+- <_description>LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)</_description>
++ <description>LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+- <!-- The key combination used to choose the 3rd (and 4th, together with Shift)
+- level of symbols -->
++
+ <configItem>
+ <name>lv3</name>
+- <_description>Key to choose 3rd level</_description>
++ <description>Key to choose 3rd level</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>lv3:switch</name>
+- <_description>Right Ctrl</_description>
++ <description>Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:menu_switch</name>
+- <_description>Menu</_description>
++ <description>Menu</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:win_switch</name>
+- <_description>Any Win key</_description>
++ <description>Any Win key</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lwin_switch</name>
+- <_description>Left Win</_description>
++ <description>Left Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:rwin_switch</name>
+- <_description>Right Win</_description>
++ <description>Right Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:alt_switch</name>
+- <_description>Any Alt key</_description>
++ <description>Any Alt key</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lalt_switch</name>
+- <_description>Left Alt</_description>
++ <description>Left Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_switch</name>
+- <_description>Right Alt</_description>
++ <description>Right Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_switch_multikey</name>
+- <_description>Right Alt, Shift+Right Alt key is Compose</_description>
++ <description>Right Alt, Shift+Right Alt key is Compose</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_alt</name>
+- <_description>Right Alt key never chooses 3rd level</_description>
++ <description>Right Alt key never chooses 3rd level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:enter_switch</name>
+- <_description>Enter on keypad</_description>
++ <description>Enter on keypad</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:caps_switch</name>
+- <_description>Caps Lock</_description>
++ <description>Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:bksl_switch</name>
+- <_description>Backslash</_description>
++ <description>Backslash</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lsgt_switch</name>
+- <_description>&lt;Less/Greater&gt;</_description>
++ <description>&lt;Less/Greater&gt;</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:caps_switch_latch</name>
+- <_description>Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
++ <description>Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:bksl_switch_latch</name>
+- <_description>Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
++ <description>Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lsgt_switch_latch</name>
+- <_description>&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
++ <description>&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+- <!-- Tweaking the position of the "Ctrl" key -->
++
+ <configItem>
+ <name>ctrl</name>
+- <_description>Ctrl key position</_description>
++ <description>Ctrl key position</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>ctrl:nocaps</name>
+- <_description>Caps Lock as Ctrl</_description>
++ <description>Caps Lock as Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:lctrl_meta</name>
+- <_description>Left Ctrl as Meta</_description>
++ <description>Left Ctrl as Meta</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:swapcaps</name>
+- <_description>Swap Ctrl and Caps Lock</_description>
++ <description>Swap Ctrl and Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:ac_ctrl</name>
+- <_description>At left of 'A'</_description>
++ <description>At left of 'A'</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:aa_ctrl</name>
+- <_description>At bottom left</_description>
++ <description>At bottom left</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:rctrl_ralt</name>
+- <_description>Right Ctrl as Right Alt</_description>
++ <description>Right Ctrl as Right Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:menu_rctrl</name>
+- <_description>Menu as Right Ctrl</_description>
++ <description>Menu as Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:ctrl_ralt</name>
+- <_description>Right Alt as Right Ctrl</_description>
++ <description>Right Alt as Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:swap_lalt_lctl</name>
+- <_description>Swap Left Alt key with Left Ctrl key</_description>
++ <description>Swap Left Alt key with Left Ctrl key</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:swap_lwin_lctl</name>
+- <_description>Swap Left Win key with Left Ctrl key</_description>
++ <description>Swap Left Win key with Left Ctrl key</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:swap_lalt_lctl_lwin</name>
+- <_description>Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt</_description>
++ <description>Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+- <!-- Using startard LEDs to indicate the alternative (not first) group(s) -->
++
+ <configItem>
+ <name>grp_led</name>
+- <_description>Use keyboard LED to show alternative layout</_description>
++ <description>Use keyboard LED to show alternative layout</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>grp_led:num</name>
+- <_description>Num Lock</_description>
++ <description>Num Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp_led:caps</name>
+- <_description>Caps Lock</_description>
++ <description>Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp_led:scroll</name>
+- <_description>Scroll Lock</_description>
++ <description>Scroll Lock</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+- <!-- Select a keypad type -->
++
+ <configItem>
+ <name>keypad</name>
+- <_description>Layout of numeric keypad</_description>
++ <description>Layout of numeric keypad</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>keypad:legacy</name>
+- <_description>Legacy</_description>
++ <description>Legacy</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:oss</name>
+- <_description>Unicode additions (arrows and math operators)</_description>
++ <description>Unicode additions (arrows and math operators)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:future</name>
+- <_description>Unicode additions (arrows and math operators; math operators on default level)</_description>
++ <description>Unicode additions (arrows and math operators; math operators on default level)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:legacy_wang</name>
+- <_description>Legacy Wang 724</_description>
++ <description>Legacy Wang 724</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:oss_wang</name>
+- <_description>Wang 724 keypad with Unicode additions (arrows and math operators)</_description>
++ <description>Wang 724 keypad with Unicode additions (arrows and math operators)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:future_wang</name>
+- <_description>Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)</_description>
++ <description>Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:hex</name>
+- <_description>Hexadecimal</_description>
++ <description>Hexadecimal</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:atm</name>
+- <_description>ATM/phone-style</_description>
++ <description>ATM/phone-style</description>
+ </configItem>
+ </option>
+ </group>
+- <!-- This option should override the KPDL key defined in keypad; I hope it's declared in the right place -->
++
+ <group allowMultipleSelection="false">
+- <!-- Select a keypad KPDL variant -->
++
+ <configItem>
+ <name>kpdl</name>
+- <_description>Numeric keypad delete key behaviour</_description>
++ <description>Numeric keypad delete key behaviour</description>
+ </configItem>
+ <option>
+ <configItem>
+- <!-- Actually, with KP_DECIMAL, as the old keypad(dot) -->
++
+ <name>kpdl:dot</name>
+- <_description>Legacy key with dot</_description>
++ <description>Legacy key with dot</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:comma</name>
+- <!-- Actually, with KP_SEPARATOR, as the old keypad(comma) -->
+- <_description>Legacy key with comma</_description>
++
++ <description>Legacy key with comma</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:dotoss</name>
+- <_description>Four-level key with dot</_description>
++ <description>Four-level key with dot</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:dotoss_latin9</name>
+- <_description>Four-level key with dot, Latin-9 only</_description>
++ <description>Four-level key with dot, Latin-9 only</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:commaoss</name>
+- <_description>Four-level key with comma</_description>
++ <description>Four-level key with comma</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:momayyezoss</name>
+- <_description>Four-level key with momayyez</_description>
++ <description>Four-level key with momayyez</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:kposs</name>
+- <!-- This assumes the KP_ abstract symbols are actually useful for some apps
+- The description needs to be rewritten -->
+- <_description>Four-level key with abstract separators</_description>
++
++ <description>Four-level key with abstract separators</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:semi</name>
+- <_description>Semicolon on third level</_description>
++ <description>Semicolon on third level</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+- <!-- Caps Lock tweaks.
+- "Internal" capitalization means capitalization using some internal tables.
+- Otherwise "as Shift" - means using next group. -->
++
+ <configItem>
+ <name>caps</name>
+- <_description>Caps Lock key behavior</_description>
++ <description>Caps Lock key behavior</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>caps:internal</name>
+- <_description>Caps Lock uses internal capitalization; Shift "pauses" Caps Lock</_description>
++ <description>Caps Lock uses internal capitalization; Shift "pauses" Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:internal_nocancel</name>
+- <_description>Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock</_description>
++ <description>Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shift</name>
+- <_description>Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock</_description>
++ <description>Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shift_nocancel</name>
+- <_description>Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock</_description>
++ <description>Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:capslock</name>
+- <_description>Caps Lock toggles normal capitalization of alphabetic characters</_description>
++ <description>Caps Lock toggles normal capitalization of alphabetic characters</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:numlock</name>
+- <_description>Make Caps Lock an additional Num Lock</_description>
++ <description>Make Caps Lock an additional Num Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:swapescape</name>
+- <_description>Swap ESC and Caps Lock</_description>
++ <description>Swap ESC and Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:escape</name>
+- <_description>Make Caps Lock an additional ESC</_description>
++ <description>Make Caps Lock an additional ESC</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:backspace</name>
+- <_description>Make Caps Lock an additional Backspace</_description>
++ <description>Make Caps Lock an additional Backspace</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:super</name>
+- <_description>Make Caps Lock an additional Super</_description>
++ <description>Make Caps Lock an additional Super</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:hyper</name>
+- <_description>Make Caps Lock an additional Hyper</_description>
++ <description>Make Caps Lock an additional Hyper</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shiftlock</name>
+- <_description>Caps Lock toggles ShiftLock (affects all keys)</_description>
++ <description>Caps Lock toggles ShiftLock (affects all keys)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:none</name>
+- <_description>Caps Lock is disabled</_description>
++ <description>Caps Lock is disabled</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:ctrl_modifier</name>
+- <_description>Make Caps Lock an additional Ctrl</_description>
++ <description>Make Caps Lock an additional Ctrl</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+- <!-- Using special PC keys (Win, Menu) to work as standard X keys (Super, Hyper, etc.) -->
++
+ <configItem>
+ <name>altwin</name>
+- <_description>Alt/Win key behavior</_description>
++ <description>Alt/Win key behavior</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>altwin:menu</name>
+- <_description>Add the standard behavior to Menu key</_description>
++ <description>Add the standard behavior to Menu key</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:meta_alt</name>
+- <_description>Alt and Meta are on Alt keys</_description>
++ <description>Alt and Meta are on Alt keys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:alt_win</name>
+- <_description>Alt is mapped to Win keys (and the usual Alt keys)</_description>
++ <description>Alt is mapped to Win keys (and the usual Alt keys)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:ctrl_win</name>
+- <_description>Ctrl is mapped to Win keys (and the usual Ctrl keys)</_description>
++ <description>Ctrl is mapped to Win keys (and the usual Ctrl keys)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:ctrl_alt_win</name>
+- <_description>Ctrl is mapped to Alt keys, Alt is mapped to Win keys</_description>
++ <description>Ctrl is mapped to Alt keys, Alt is mapped to Win keys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:meta_win</name>
+- <_description>Meta is mapped to Win keys</_description>
++ <description>Meta is mapped to Win keys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:left_meta_win</name>
+- <_description>Meta is mapped to Left Win</_description>
++ <description>Meta is mapped to Left Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:hyper_win</name>
+- <_description>Hyper is mapped to Win-keys</_description>
++ <description>Hyper is mapped to Win-keys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:alt_super_win</name>
+- <_description>Alt is mapped to Right Win, Super to Menu</_description>
++ <description>Alt is mapped to Right Win, Super to Menu</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:swap_alt_win</name>
+- <_description>Alt is swapped with Win</_description>
++ <description>Alt is swapped with Win</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+- <!-- Tweaking the position of the "Compose" key: mapping to existing PC keys -->
++
+ <configItem>
+ <name>Compose key</name>
+- <_description>Position of Compose key</_description>
++ <description>Position of Compose key</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>compose:ralt</name>
+- <_description>Right Alt</_description>
++ <description>Right Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:lwin</name>
+- <_description>Left Win</_description>
++ <description>Left Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:lwin-altgr</name>
+- <_description>3rd level of Left Win</_description>
++ <description>3rd level of Left Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rwin</name>
+- <_description>Right Win</_description>
++ <description>Right Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rwin-altgr</name>
+- <_description>3rd level of Right Win</_description>
++ <description>3rd level of Right Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:menu</name>
+- <_description>Menu</_description>
++ <description>Menu</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:menu-altgr</name>
+- <_description>3rd level of Menu</_description>
++ <description>3rd level of Menu</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:lctrl</name>
+- <_description>Left Ctrl</_description>
++ <description>Left Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:lctrl-altgr</name>
+- <_description>3rd level of Left Ctrl</_description>
++ <description>3rd level of Left Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rctrl</name>
+- <_description>Right Ctrl</_description>
++ <description>Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rctrl-altgr</name>
+- <_description>3rd level of Right Ctrl</_description>
++ <description>3rd level of Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:caps</name>
+- <_description>Caps Lock</_description>
++ <description>Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:caps-altgr</name>
+- <_description>3rd level of Caps Lock</_description>
++ <description>3rd level of Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:102</name>
+- <_description>&lt;Less/Greater&gt;</_description>
++ <description>&lt;Less/Greater&gt;</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:102-altgr</name>
+- <_description>3rd level of &lt;Less/Greater&gt;</_description>
++ <description>3rd level of &lt;Less/Greater&gt;</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:paus</name>
+- <_description>Pause</_description>
++ <description>Pause</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:prsc</name>
+- <_description>PrtSc</_description>
++ <description>PrtSc</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:sclk</name>
+- <_description>Scroll Lock</_description>
++ <description>Scroll Lock</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <configItem>
+ <name>compat</name>
+- <_description>Miscellaneous compatibility options</_description>
++ <description>Miscellaneous compatibility options</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>numpad:pc</name>
+- <_description>Default numeric keypad keys</_description>
++ <description>Default numeric keypad keys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>numpad:mac</name>
+- <_description>Numeric keypad keys always enter digits (as in Mac OS)</_description>
++ <description>Numeric keypad keys always enter digits (as in Mac OS)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>numpad:microsoft</name>
+- <_description>Shift with numeric keypad keys works as in MS Windows</_description>
++ <description>Shift with numeric keypad keys works as in MS Windows</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>numpad:shift3</name>
+- <_description>Shift does not cancel Num Lock, chooses 3rd level instead</_description>
++ <description>Shift does not cancel Num Lock, chooses 3rd level instead</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>srvrkeys:none</name>
+- <_description>Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server</_description>
++ <description>Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>apple:alupckeys</name>
+- <_description>Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)</_description>
++ <description>Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>shift:breaks_caps</name>
+- <_description>Shift cancels Caps Lock</_description>
++ <description>Shift cancels Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>misc:typo</name>
+- <_description>Enable extra typographic characters</_description>
++ <description>Enable extra typographic characters</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>shift:both_capslock</name>
+- <_description>Both Shift keys together toggle Caps Lock</_description>
++ <description>Both Shift keys together toggle Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>shift:both_capslock_cancel</name>
+- <_description>Both Shift keys together activate Caps Lock, one Shift key deactivates</_description>
++ <description>Both Shift keys together activate Caps Lock, one Shift key deactivates</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>shift:both_shiftlock</name>
+- <_description>Both Shift keys together toggle ShiftLock</_description>
++ <description>Both Shift keys together toggle ShiftLock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:pointerkeys</name>
+- <_description>Shift + NumLock toggles PointerKeys</_description>
++ <description>Shift + NumLock toggles PointerKeys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grab:break_actions</name>
+- <_description>Allow breaking grabs with keyboard actions (warning: security risk)</_description>
++ <description>Allow breaking grabs with keyboard actions (warning: security risk)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grab:debug_actions</name>
+- <_description>Allow grab and window tree logging</_description>
++ <description>Allow grab and window tree logging</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+- <!-- Special shortcuts for the Euro character -->
++
+ <configItem>
+ <name>currencysign</name>
+- <_description>Adding currency signs to certain keys</_description>
++ <description>Adding currency signs to certain keys</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>eurosign:e</name>
+- <_description>Euro on E</_description>
++ <description>Euro on E</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:2</name>
+- <_description>Euro on 2</_description>
++ <description>Euro on 2</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:4</name>
+- <_description>Euro on 4</_description>
++ <description>Euro on 4</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:5</name>
+- <_description>Euro on 5</_description>
++ <description>Euro on 5</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>rupeesign:4</name>
+- <_description>Rupee on 4</_description>
++ <description>Rupee on 4</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <configItem>
+ <name>lv5</name>
+- <_description>Key to choose 5th level</_description>
++ <description>Key to choose 5th level</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>lv5:lsgt_switch_lock</name>
+- <_description>&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
++ <description>&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv5:ralt_switch_lock</name>
+- <_description>Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
++ <description>Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv5:lwin_switch_lock</name>
+- <_description>Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
++ <description>Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv5:rwin_switch_lock</name>
+- <_description>Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+-<!--
+- <option>
+- <configItem>
+- <name>lv5:lsgt_switch_lock_cancel</name>
+- <_description>&lt;Less/Greater&gt; chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+- <option>
+- <configItem>
+- <name>lv5:ralt_switch_lock_cancel</name>
+- <_description>Right Alt chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+- <option>
+- <configItem>
+- <name>lv5:lwin_switch_lock_cancel</name>
+- <_description>Left Win chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+- <option>
+- <configItem>
+- <name>lv5:rwin_switch_lock_cancel</name>
+- <_description>Right Win chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+- <option>
+- <configItem>
+- <name>lv5:lsgt_switch_lock_cancel</name>
+- <_description>&lt;Less/Greater&gt; chooses 5th level, acts as onetime lock lock when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+- <option>
+- <configItem>
+- <name>lv5:ralt_switch_lock_cancel</name>
+- <_description>Right Alt chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
++ <description>Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
+ </configItem>
+ </option>
+--->
++
+ </group>
+ <group allowMultipleSelection="false">
+- <!-- Let space output NBSP, NNBSP, ZWNJ, and ZWJ for the desired level -->
++
+ <configItem>
+ <name>nbsp</name>
+- <_description>Using space key to input non-breakable space character</_description>
++ <description>Using space key to input non-breakable space character</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>nbsp:none</name>
+- <_description>Usual space at any level</_description>
++ <description>Usual space at any level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level2</name>
+- <_description>Non-breakable space character at second level</_description>
++ <description>Non-breakable space character at second level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3</name>
+- <_description>Non-breakable space character at third level</_description>
++ <description>Non-breakable space character at third level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3s</name>
+- <_description>Non-breakable space character at third level, nothing at fourth level</_description>
++ <description>Non-breakable space character at third level, nothing at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3n</name>
+- <_description>Non-breakable space character at third level, thin non-breakable space character at fourth level</_description>
++ <description>Non-breakable space character at third level, thin non-breakable space character at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4</name>
+- <_description>Non-breakable space character at fourth level</_description>
++ <description>Non-breakable space character at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4n</name>
+- <_description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level</_description>
++ <description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4nl</name>
+- <_description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)</_description>
++ <description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2</name>
+- <_description>Zero-width non-joiner character at second level</_description>
++ <description>Zero-width non-joiner character at second level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2zwj3</name>
+- <_description>Zero-width non-joiner character at second level, zero-width joiner character at third level</_description>
++ <description>Zero-width non-joiner character at second level, zero-width joiner character at third level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2zwj3nb4</name>
+- <_description>Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level</_description>
++ <description>Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2nb3</name>
+- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level</_description>
++ <description>Zero-width non-joiner character at second level, non-breakable space character at third level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2nb3s</name>
+- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level</_description>
++ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2nb3zwj4</name>
+- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level</_description>
++ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2nb3nnb4</name>
+- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level</_description>
++ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj3zwj4</name>
+- <_description>Zero-width non-joiner character at third level, zero-width joiner at fourth level</_description>
++ <description>Zero-width non-joiner character at third level, zero-width joiner at fourth level</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <configItem>
+ <name>japan</name>
+- <_description>Japanese keyboard options</_description>
++ <description>Japanese keyboard options</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>japan:kana_lock</name>
+- <_description>Kana Lock key is locking</_description>
++ <description>Kana Lock key is locking</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>japan:nicola_f_bs</name>
+- <_description>NICOLA-F style Backspace</_description>
++ <description>NICOLA-F style Backspace</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>japan:hztg_escape</name>
+- <_description>Make Zenkaku Hankaku an additional ESC</_description>
++ <description>Make Zenkaku Hankaku an additional ESC</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+ <configItem>
+ <name>esperanto</name>
+- <_description>Adding Esperanto supersigned letters</_description>
++ <description>Adding Esperanto supersigned letters</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>esperanto:qwerty</name>
+- <_description>To the corresponding key in a Qwerty layout</_description>
++ <description>To the corresponding key in a Qwerty layout</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>esperanto:dvorak</name>
+- <_description>To the corresponding key in a Dvorak layout</_description>
++ <description>To the corresponding key in a Dvorak layout</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>esperanto:colemak</name>
+- <_description>To the corresponding key in a Colemak layout</_description>
++ <description>To the corresponding key in a Colemak layout</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <configItem>
+ <name>solaris</name>
+- <_description>Maintain key compatibility with old Solaris keycodes</_description>
++ <description>Maintain key compatibility with old Solaris keycodes</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>solaris:sun_compat</name>
+- <_description>Sun Key compatibility</_description>
++ <description>Sun Key compatibility</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <configItem>
+ <name>terminate</name>
+- <_description>Key sequence to kill the X server</_description>
++ <description>Key sequence to kill the X server</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>terminate:ctrl_alt_bksp</name>
+- <_description>Ctrl + Alt + Backspace</_description>
++ <description>Ctrl + Alt + Backspace</description>
+ </configItem>
+ </option>
+ </group>
+ </optionList>
+-</xkbConfigRegistry>
++</xkbConfigRegistry>
+\ No newline at end of file
diff --git a/package/xkeyboard-config/patches/patch-rules_evdev_extras_xml_in b/package/xkeyboard-config/patches/patch-rules_evdev_extras_xml_in
new file mode 100644
index 000000000..185ded7f8
--- /dev/null
+++ b/package/xkeyboard-config/patches/patch-rules_evdev_extras_xml_in
@@ -0,0 +1,855 @@
+--- xkeyboard-config-2.11.orig/rules/evdev.extras.xml.in 2013-12-24 00:49:09.000000000 +0100
++++ xkeyboard-config-2.11/rules/evdev.extras.xml.in 2014-03-04 14:31:30.000000000 +0100
+@@ -1,4 +1,4 @@
+-<?xml version="1.0" encoding="utf-8"?>
++<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
+ <xkbConfigRegistry>
+ <modelList/>
+@@ -6,8 +6,8 @@
+ <layout>
+ <configItem>
+ <name>apl</name>
+- <_shortDescription>apl</_shortDescription>
+- <_description>APL keyboard symbols</_description>
++ <shortDescription>apl</shortDescription>
++ <description>APL keyboard symbols</description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+@@ -58,29 +58,29 @@
+ <layout>
+ <configItem>
+ <name>ca</name>
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Canada)</_description>
++ <shortDescription>fr</shortDescription>
++ <description>French (Canada)</description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>kut</name>
+- <_shortDescription>kut</_shortDescription>
+- <_description>Kutenai</_description>
++ <shortDescription>kut</shortDescription>
++ <description>Kutenai</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>shs</name>
+- <_shortDescription>shs</_shortDescription>
+- <_description>Secwepemctsin</_description>
++ <shortDescription>shs</shortDescription>
++ <description>Secwepemctsin</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Multilingual (Canada, Sun Type 6/7)</_description>
++ <description>Multilingual (Canada, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -88,8 +88,8 @@
+ <layout>
+ <configItem>
+ <name>de</name>
+- <_shortDescription>de</_shortDescription>
+- <_description>German</_description>
++ <shortDescription>de</shortDescription>
++ <description>German</description>
+ <languageList>
+ <iso639Id>ger</iso639Id>
+ </languageList>
+@@ -98,7 +98,7 @@
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>German (US keyboard with German letters)</_description>
++ <description>German (US keyboard with German letters)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -107,7 +107,7 @@
+ <variant>
+ <configItem>
+ <name>hu</name>
+- <_description>German (with Hungarian letters and no dead keys)</_description>
++ <description>German (with Hungarian letters and no dead keys)</description>
+ <languageList>
+ <iso639Id>ger</iso639Id>
+ <iso639Id>hun</iso639Id>
+@@ -117,7 +117,7 @@
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>German (Sun Type 6/7)</_description>
++ <description>German (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -125,15 +125,15 @@
+ <layout>
+ <configItem>
+ <name>ir</name>
+- <_shortDescription>fa</_shortDescription>
+- <_description>Persian</_description>
++ <shortDescription>fa</shortDescription>
++ <description>Persian</description>
+ <languageList><iso639Id>per</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ave</name>
+- <_description>Avestan</_description>
++ <description>Avestan</description>
+ <languageList><iso639Id>ave</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -142,21 +142,21 @@
+ <layout>
+ <configItem>
+ <name>lt</name>
+- <_shortDescription>lt</_shortDescription>
+- <_description>Lithuanian</_description>
++ <shortDescription>lt</shortDescription>
++ <description>Lithuanian</description>
+ <languageList><iso639Id>lit</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>us_dvorak</name>
+- <_description>Lithuanian (US Dvorak with Lithuanian letters)</_description>
++ <description>Lithuanian (US Dvorak with Lithuanian letters)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Lithuanian (Sun Type 6/7)</_description>
++ <description>Lithuanian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -164,8 +164,8 @@
+ <layout>
+ <configItem>
+ <name>lv</name>
+- <_shortDescription>lv</_shortDescription>
+- <_description>Latvian</_description>
++ <shortDescription>lv</shortDescription>
++ <description>Latvian</description>
+ <languageList>
+ <iso639Id>lav</iso639Id>
+ </languageList>
+@@ -174,55 +174,55 @@
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Latvian (US Dvorak)</_description>
++ <description>Latvian (US Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ykeydvorak</name>
+- <_description>Latvian (US Dvorak, Y variant)</_description>
++ <description>Latvian (US Dvorak, Y variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>minuskeydvorak</name>
+- <_description>Latvian (US Dvorak, minus variant)</_description>
++ <description>Latvian (US Dvorak, minus variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorakprogr</name>
+- <_description>Latvian (programmer US Dvorak)</_description>
++ <description>Latvian (programmer US Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ykeydvorakprogr</name>
+- <_description>Latvian (programmer US Dvorak, Y variant)</_description>
++ <description>Latvian (programmer US Dvorak, Y variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>minuskeydvorakprogr</name>
+- <_description>Latvian (programmer US Dvorak, minus variant)</_description>
++ <description>Latvian (programmer US Dvorak, minus variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>Latvian (US Colemak)</_description>
++ <description>Latvian (US Colemak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>apostrophecolemak</name>
+- <_description>Latvian (US Colemak, apostrophe variant)</_description>
++ <description>Latvian (US Colemak, apostrophe variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Latvian (Sun Type 6/7)</_description>
++ <description>Latvian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -230,34 +230,34 @@
+ <layout>
+ <configItem>
+ <name>us</name>
+- <_shortDescription>en</_shortDescription>
+- <_description>English (US)</_description>
++ <shortDescription>en</shortDescription>
++ <description>English (US)</description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>intl-unicode</name>
+- <_description>English (US, international AltGr Unicode combining)</_description>
++ <description>English (US, international AltGr Unicode combining)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt-intl-unicode</name>
+- <_description>English (US, international AltGr Unicode combining, alternative)</_description>
++ <description>English (US, international AltGr Unicode combining, alternative)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ats</name>
+- <_description>Atsina</_description>
+- <!-- No ISO code in ISO639-2, only draft ISO693-3 -->
++ <description>Atsina</description>
++
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>crd</name>
+- <_description>Coeur d'Alene Salish</_description>
++ <description>Coeur d'Alene Salish</description>
+ <languageList><iso639Id>crd</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -274,13 +274,13 @@
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>English (US, Sun Type 6/7)</_description>
++ <description>English (US, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>norman</name>
+- <_description>English (Norman)</_description>
++ <description>English (Norman)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -288,27 +288,27 @@
+ <layout>
+ <configItem>
+ <name>pl</name>
+- <_shortDescription>pl</_shortDescription>
+- <_description>Polish</_description>
++ <shortDescription>pl</shortDescription>
++ <description>Polish</description>
+ <languageList><iso639Id>pol</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>intl</name>
+- <_description>Polish (international with dead keys)</_description>
++ <description>Polish (international with dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>Polish (Colemak)</_description>
++ <description>Polish (Colemak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Polish (Sun Type 6/7)</_description>
++ <description>Polish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -316,16 +316,16 @@
+ <layout>
+ <configItem>
+ <name>ro</name>
+- <_shortDescription>ro</_shortDescription>
+- <_description>Romanian</_description>
++ <shortDescription>ro</shortDescription>
++ <description>Romanian</description>
+ <languageList><iso639Id>rum</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>crh_dobruja</name>
+- <_shortDescription>crh</_shortDescription>
+- <_description>Crimean Tatar (Dobruja Q)</_description>
++ <shortDescription>crh</shortDescription>
++ <description>Crimean Tatar (Dobruja Q)</description>
+ <languageList>
+ <iso639Id>crh</iso639Id>
+ </languageList>
+@@ -334,13 +334,13 @@
+ <variant>
+ <configItem>
+ <name>ergonomic</name>
+- <_description>Romanian (ergonomic Touchtype)</_description>
++ <description>Romanian (ergonomic Touchtype)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Romanian (Sun Type 6/7)</_description>
++ <description>Romanian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -348,15 +348,15 @@
+ <layout>
+ <configItem>
+ <name>rs</name>
+- <_shortDescription>sr</_shortDescription>
+- <_description>Serbian</_description>
++ <shortDescription>sr</shortDescription>
++ <description>Serbian</description>
+ <languageList><iso639Id>srp</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>combiningkeys</name>
+- <_description>Serbian (combining accents instead of dead keys)</_description>
++ <description>Serbian (combining accents instead of dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -364,8 +364,8 @@
+ <layout>
+ <configItem>
+ <name>ru</name>
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian</_description>
++ <shortDescription>ru</shortDescription>
++ <description>Russian</description>
+ </configItem>
+ <variantList>
+ <variant>
+@@ -378,8 +378,8 @@
+ <variant>
+ <configItem>
+ <name>ruu</name>
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (with Ukrainian-Belorussian layout)</_description>
++ <shortDescription>ru</shortDescription>
++ <description>Russian (with Ukrainian-Belorussian layout)</description>
+ <languageList><iso639Id>rus</iso639Id>
+ <iso639Id>ukr</iso639Id>
+ <iso639Id>bel</iso639Id></languageList>
+@@ -388,7 +388,7 @@
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Russian (Sun Type 6/7)</_description>
++ <description>Russian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -396,8 +396,8 @@
+ <layout>
+ <configItem>
+ <name>am</name>
+- <_shortDescription>hy</_shortDescription>
+- <_description>Armenian</_description>
++ <shortDescription>hy</shortDescription>
++ <description>Armenian</description>
+ <languageList>
+ <iso639Id>hye</iso639Id>
+ </languageList>
+@@ -406,7 +406,7 @@
+ <variant>
+ <configItem>
+ <name>olpc-phonetic</name>
+- <_description>Armenian (OLPC phonetic)</_description>
++ <description>Armenian (OLPC phonetic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -414,15 +414,15 @@
+ <layout>
+ <configItem>
+ <name>il</name>
+- <_shortDescription>he</_shortDescription>
+- <_description>Hebrew</_description>
++ <shortDescription>he</shortDescription>
++ <description>Hebrew</description>
+ <languageList><iso639Id>heb</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>biblicalSIL</name>
+- <_description>Hebrew (Biblical, SIL phonetic)</_description>
++ <description>Hebrew (Biblical, SIL phonetic)</description>
+ <languageList><iso639Id>heb</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -431,14 +431,14 @@
+ <layout>
+ <configItem>
+ <name>ara</name>
+- <_shortDescription>ar</_shortDescription>
+- <_description>Arabic</_description>
++ <shortDescription>ar</shortDescription>
++ <description>Arabic</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Arabic (Sun Type 6/7)</_description>
++ <description>Arabic (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -446,14 +446,14 @@
+ <layout>
+ <configItem>
+ <name>be</name>
+- <_shortDescription>be</_shortDescription>
+- <_description>Belgian</_description>
++ <shortDescription>be</shortDescription>
++ <description>Belgian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Belgian (Sun Type 6/7)</_description>
++ <description>Belgian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -461,14 +461,14 @@
+ <layout>
+ <configItem>
+ <name>br</name>
+- <_shortDescription>pt</_shortDescription>
+- <_description>Portuguese (Brazil)</_description>
++ <shortDescription>pt</shortDescription>
++ <description>Portuguese (Brazil)</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Portuguese (Brazil, Sun Type 6/7)</_description>
++ <description>Portuguese (Brazil, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -476,14 +476,14 @@
+ <layout>
+ <configItem>
+ <name>cz</name>
+- <_shortDescription>cs</_shortDescription>
+- <_description>Czech</_description>
++ <shortDescription>cs</shortDescription>
++ <description>Czech</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Czech (Sun Type 6/7)</_description>
++ <description>Czech (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -491,14 +491,14 @@
+ <layout>
+ <configItem>
+ <name>dk</name>
+- <_shortDescription>da</_shortDescription>
+- <_description>Danish</_description>
++ <shortDescription>da</shortDescription>
++ <description>Danish</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Danish (Sun Type 6/7)</_description>
++ <description>Danish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -506,14 +506,14 @@
+ <layout>
+ <configItem>
+ <name>nl</name>
+- <_shortDescription>nl</_shortDescription>
+- <_description>Dutch</_description>
++ <shortDescription>nl</shortDescription>
++ <description>Dutch</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Dutch (Sun Type 6/7)</_description>
++ <description>Dutch (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -521,14 +521,14 @@
+ <layout>
+ <configItem>
+ <name>ee</name>
+- <_shortDescription>et</_shortDescription>
+- <_description>Estonian</_description>
++ <shortDescription>et</shortDescription>
++ <description>Estonian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Estonian (Sun Type 6/7)</_description>
++ <description>Estonian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -536,14 +536,14 @@
+ <layout>
+ <configItem>
+ <name>fi</name>
+- <_shortDescription>fi</_shortDescription>
+- <_description>Finnish</_description>
++ <shortDescription>fi</shortDescription>
++ <description>Finnish</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Finnish (Sun Type 6/7)</_description>
++ <description>Finnish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -551,14 +551,14 @@
+ <layout>
+ <configItem>
+ <name>fr</name>
+- <_shortDescription>fr</_shortDescription>
+- <_description>French</_description>
++ <shortDescription>fr</shortDescription>
++ <description>French</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>French (Sun Type 6/7)</_description>
++ <description>French (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -566,14 +566,14 @@
+ <layout>
+ <configItem>
+ <name>gr</name>
+- <_shortDescription>gr</_shortDescription>
+- <_description>Greek</_description>
++ <shortDescription>gr</shortDescription>
++ <description>Greek</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Greek (Sun Type 6/7)</_description>
++ <description>Greek (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -581,14 +581,14 @@
+ <layout>
+ <configItem>
+ <name>it</name>
+- <_shortDescription>it</_shortDescription>
+- <_description>Italian</_description>
++ <shortDescription>it</shortDescription>
++ <description>Italian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Italian (Sun Type 6/7)</_description>
++ <description>Italian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -596,26 +596,26 @@
+ <layout>
+ <configItem>
+ <name>jp</name>
+- <_shortDescription>ja</_shortDescription>
+- <_description>Japanese</_description>
++ <shortDescription>ja</shortDescription>
++ <description>Japanese</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Japanese (Sun Type 6)</_description>
++ <description>Japanese (Sun Type 6)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type7</name>
+- <_description>Japanese (Sun Type 7 - pc compatible)</_description>
++ <description>Japanese (Sun Type 7 - pc compatible)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type7_suncompat</name>
+- <_description>Japanese (Sun Type 7 - sun compatible)</_description>
++ <description>Japanese (Sun Type 7 - sun compatible)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -623,14 +623,14 @@
+ <layout>
+ <configItem>
+ <name>no</name>
+- <_shortDescription>no</_shortDescription>
+- <_description>Norwegian</_description>
++ <shortDescription>no</shortDescription>
++ <description>Norwegian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Norwegian (Sun Type 6/7)</_description>
++ <description>Norwegian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -638,14 +638,14 @@
+ <layout>
+ <configItem>
+ <name>pt</name>
+- <_shortDescription>pt</_shortDescription>
+- <_description>Portuguese</_description>
++ <shortDescription>pt</shortDescription>
++ <description>Portuguese</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Portuguese (Sun Type 6/7)</_description>
++ <description>Portuguese (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -653,14 +653,14 @@
+ <layout>
+ <configItem>
+ <name>sk</name>
+- <_shortDescription>sk</_shortDescription>
+- <_description>Slovak</_description>
++ <shortDescription>sk</shortDescription>
++ <description>Slovak</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Slovak (Sun Type 6/7)</_description>
++ <description>Slovak (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -668,14 +668,14 @@
+ <layout>
+ <configItem>
+ <name>es</name>
+- <_shortDescription>es</_shortDescription>
+- <_description>Spanish</_description>
++ <shortDescription>es</shortDescription>
++ <description>Spanish</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Spanish (Sun Type 6/7)</_description>
++ <description>Spanish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -683,14 +683,14 @@
+ <layout>
+ <configItem>
+ <name>se</name>
+- <_shortDescription>sv</_shortDescription>
+- <_description>Swedish</_description>
++ <shortDescription>sv</shortDescription>
++ <description>Swedish</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Swedish (Sun Type 6/7)</_description>
++ <description>Swedish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -698,20 +698,20 @@
+ <layout>
+ <configItem>
+ <name>ch</name>
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Switzerland)</_description>
++ <shortDescription>de</shortDescription>
++ <description>German (Switzerland)</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6_de</name>
+- <_description>German (Switzerland, Sun Type 6/7)</_description>
++ <description>German (Switzerland, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6_fr</name>
+- <_description>French (Switzerland, Sun Type 6/7)</_description>
++ <description>French (Switzerland, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -719,14 +719,14 @@
+ <layout>
+ <configItem>
+ <name>tr</name>
+- <_shortDescription>tr</_shortDescription>
+- <_description>Turkish</_description>
++ <shortDescription>tr</shortDescription>
++ <description>Turkish</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Turkish (Sun Type 6/7)</_description>
++ <description>Turkish (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -734,14 +734,14 @@
+ <layout>
+ <configItem>
+ <name>ua</name>
+- <_shortDescription>uk</_shortDescription>
+- <_description>Ukrainian</_description>
++ <shortDescription>uk</shortDescription>
++ <description>Ukrainian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Ukrainian (Sun Type 6/7)</_description>
++ <description>Ukrainian (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -749,14 +749,14 @@
+ <layout>
+ <configItem>
+ <name>gb</name>
+- <_shortDescription>en</_shortDescription>
+- <_description>English (UK)</_description>
++ <shortDescription>en</shortDescription>
++ <description>English (UK)</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>English (UK, Sun Type 6/7)</_description>
++ <description>English (UK, Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -764,18 +764,18 @@
+ <layout>
+ <configItem>
+ <name>kr</name>
+- <_shortDescription>ko</_shortDescription>
+- <_description>Korean</_description>
++ <shortDescription>ko</shortDescription>
++ <description>Korean</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+- <_description>Korean (Sun Type 6/7)</_description>
++ <description>Korean (Sun Type 6/7)</description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ </layoutList>
+ <optionList/>
+-</xkbConfigRegistry>
++</xkbConfigRegistry>
+\ No newline at end of file
diff --git a/package/xkeyboard-config/patches/patch-rules_evdev_xml_in b/package/xkeyboard-config/patches/patch-rules_evdev_xml_in
new file mode 100644
index 000000000..57eb6df34
--- /dev/null
+++ b/package/xkeyboard-config/patches/patch-rules_evdev_xml_in
@@ -0,0 +1,7654 @@
+--- xkeyboard-config-2.11.orig/rules/evdev.xml.in 2014-01-15 02:05:04.000000000 +0100
++++ xkeyboard-config-2.11/rules/evdev.xml.in 2014-03-04 14:30:54.000000000 +0100
+@@ -5,627 +5,627 @@
+ <model>
+ <configItem>
+ <name>pc101</name>
+- <_description>Generic 101-key PC</_description>
++ <description>Generic 101-key PC</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>pc102</name>
+- <_description>Generic 102-key (Intl) PC</_description>
++ <description>Generic 102-key (Intl) PC</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>pc104</name>
+- <_description>Generic 104-key PC</_description>
++ <description>Generic 104-key PC</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>pc105</name>
+- <_description>Generic 105-key (Intl) PC</_description>
++ <description>Generic 105-key (Intl) PC</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dell101</name>
+- <_description>Dell 101-key PC</_description>
++ <description>Dell 101-key PC</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>latitude</name>
+- <_description>Dell Latitude series laptop</_description>
++ <description>Dell Latitude series laptop</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dellm65</name>
+- <_description>Dell Precision M65</_description>
++ <description>Dell Precision M65</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>everex</name>
+- <_description>Everex STEPnote</_description>
++ <description>Everex STEPnote</description>
+ <vendor>Everex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>flexpro</name>
+- <_description>Keytronic FlexPro</_description>
++ <description>Keytronic FlexPro</description>
+ <vendor>Keytronic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoft</name>
+- <_description>Microsoft Natural</_description>
++ <description>Microsoft Natural</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>omnikey101</name>
+- <_description>Northgate OmniKey 101</_description>
++ <description>Northgate OmniKey 101</description>
+ <vendor>Northgate</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>winbook</name>
+- <_description>Winbook Model XP5</_description>
++ <description>Winbook Model XP5</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>pc98</name>
+- <_description>PC-98xx Series</_description>
++ <description>PC-98xx Series</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>a4techKB21</name>
+- <_description>A4Tech KB-21</_description>
++ <description>A4Tech KB-21</description>
+ <vendor>A4Tech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>a4techKBS8</name>
+- <_description>A4Tech KBS-8</_description>
++ <description>A4Tech KBS-8</description>
+ <vendor>A4Tech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>a4_rfkb23</name>
+- <_description>A4Tech Wireless Desktop RFKB-23</_description>
++ <description>A4Tech Wireless Desktop RFKB-23</description>
+ <vendor>A4Tech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>airkey</name>
+- <_description>Acer AirKey V</_description>
++ <description>Acer AirKey V</description>
+ <vendor>Acer</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>azonaRF2300</name>
+- <_description>Azona RF2300 wireless Internet Keyboard</_description>
++ <description>Azona RF2300 wireless Internet Keyboard</description>
+ <vendor>Azona</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>scorpius</name>
+- <_description>Advance Scorpius KI</_description>
++ <description>Advance Scorpius KI</description>
+ <vendor>Scorpius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>brother</name>
+- <_description>Brother Internet Keyboard</_description>
++ <description>Brother Internet Keyboard</description>
+ <vendor>Brother</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc5113rf</name>
+- <_description>BTC 5113RF Multimedia</_description>
++ <description>BTC 5113RF Multimedia</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc5126t</name>
+- <_description>BTC 5126T</_description>
++ <description>BTC 5126T</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc6301urf</name>
+- <_description>BTC 6301URF</_description>
++ <description>BTC 6301URF</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc9000</name>
+- <_description>BTC 9000</_description>
++ <description>BTC 9000</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc9000a</name>
+- <_description>BTC 9000A</_description>
++ <description>BTC 9000A</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc9001ah</name>
+- <_description>BTC 9001AH</_description>
++ <description>BTC 9001AH</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc5090</name>
+- <_description>BTC 5090</_description>
++ <description>BTC 5090</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc9019u</name>
+- <_description>BTC 9019U</_description>
++ <description>BTC 9019U</description>
+ <vendor>BTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>btc9116u</name>
+- <_description>BTC 9116U Mini Wireless Internet and Gaming</_description>
++ <description>BTC 9116U Mini Wireless Internet and Gaming</description>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherryblue</name>
+- <_description>Cherry Blue Line CyBo@rd</_description>
++ <description>Cherry Blue Line CyBo@rd</description>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherryblueb</name>
+- <_description>Cherry CyMotion Master XPress</_description>
++ <description>Cherry CyMotion Master XPress</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherrybluea</name>
+- <_description>Cherry Blue Line CyBo@rd (alternate option)</_description>
++ <description>Cherry Blue Line CyBo@rd (alternate option)</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherrycyboard</name>
+- <_description>Cherry CyBo@rd USB-Hub</_description>
++ <description>Cherry CyBo@rd USB-Hub</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherrycmexpert</name>
+- <_description>Cherry CyMotion Expert</_description>
++ <description>Cherry CyMotion Expert</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cherrybunlim</name>
+- <_description>Cherry B.UNLIMITED</_description>
++ <description>Cherry B.UNLIMITED</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chicony</name>
+- <_description>Chicony Internet Keyboard</_description>
++ <description>Chicony Internet Keyboard</description>
+ <vendor>Chicony</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chicony0108</name>
+- <_description>Chicony KU-0108</_description>
++ <description>Chicony KU-0108</description>
+ <vendor>Chicony</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chicony0420</name>
+- <_description>Chicony KU-0420</_description>
++ <description>Chicony KU-0420</description>
+ <vendor>Chicony</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chicony9885</name>
+- <_description>Chicony KB-9885</_description>
++ <description>Chicony KB-9885</description>
+ <vendor>Chicony</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqeak8</name>
+- <_description>Compaq Easy Access Keyboard</_description>
++ <description>Compaq Easy Access Keyboard</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik7</name>
+- <_description>Compaq Internet Keyboard (7 keys)</_description>
++ <description>Compaq Internet Keyboard (7 keys)</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik13</name>
+- <_description>Compaq Internet Keyboard (13 keys)</_description>
++ <description>Compaq Internet Keyboard (13 keys)</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik18</name>
+- <_description>Compaq Internet Keyboard (18 keys)</_description>
++ <description>Compaq Internet Keyboard (18 keys)</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>cymotionlinux</name>
+- <_description>Cherry CyMotion Master Linux</_description>
++ <description>Cherry CyMotion Master Linux</description>
+ <vendor>Cherry</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>armada</name>
+- <_description>Laptop/notebook Compaq (eg. Armada) Laptop Keyboard</_description>
++ <description>Laptop/notebook Compaq (eg. Armada) Laptop Keyboard</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>presario</name>
+- <_description>Laptop/notebook Compaq (eg. Presario) Internet Keyboard</_description>
++ <description>Laptop/notebook Compaq (eg. Presario) Internet Keyboard</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>ipaq</name>
+- <_description>Compaq iPaq Keyboard</_description>
++ <description>Compaq iPaq Keyboard</description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dell</name>
+- <_description>Dell</_description>
++ <description>Dell</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dellsk8125</name>
+- <_description>Dell SK-8125</_description>
++ <description>Dell SK-8125</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dellsk8135</name>
+- <_description>Dell SK-8135</_description>
++ <description>Dell SK-8135</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dellusbmm</name>
+- <_description>Dell USB Multimedia Keyboard</_description>
++ <description>Dell USB Multimedia Keyboard</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>inspiron</name>
+- <_description>Dell Laptop/notebook Inspiron 6xxx/8xxx</_description>
++ <description>Dell Laptop/notebook Inspiron 6xxx/8xxx</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>precision_m</name>
+- <_description>Dell Laptop/notebook Precision M series</_description>
++ <description>Dell Laptop/notebook Precision M series</description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dexxa</name>
+- <_description>Dexxa Wireless Desktop Keyboard</_description>
++ <description>Dexxa Wireless Desktop Keyboard</description>
+ <vendor>Dexxa</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>diamond</name>
+- <_description>Diamond 9801 / 9802 series</_description>
++ <description>Diamond 9801 / 9802 series</description>
+ <vendor>Diamond</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dtk2000</name>
+- <_description>DTK2000</_description>
++ <description>DTK2000</description>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>ennyah_dkb1008</name>
+- <_description>Ennyah DKB-1008</_description>
++ <description>Ennyah DKB-1008</description>
+ <vendor>Ennyah</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>fscaa1667g</name>
+- <_description>Fujitsu-Siemens Computers AMILO laptop</_description>
++ <description>Fujitsu-Siemens Computers AMILO laptop</description>
+ <vendor>Fujitsu-Siemens</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>genius</name>
+- <_description>Genius Comfy KB-16M / Genius MM Keyboard KWD-910</_description>
++ <description>Genius Comfy KB-16M / Genius MM Keyboard KWD-910</description>
+ <vendor>Genius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>geniuscomfy</name>
+- <_description>Genius Comfy KB-12e</_description>
++ <description>Genius Comfy KB-12e</description>
+ <vendor>Genius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>geniuscomfy2</name>
+- <_description>Genius Comfy KB-21e-Scroll</_description>
++ <description>Genius Comfy KB-21e-Scroll</description>
+ <vendor>Genius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>geniuskb19e</name>
+- <_description>Genius KB-19e NB</_description>
++ <description>Genius KB-19e NB</description>
+ <vendor>Genius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>geniuskkb2050hs</name>
+- <_description>Genius KKB-2050HS</_description>
++ <description>Genius KKB-2050HS</description>
+ <vendor>Genius</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>gyration</name>
+- <_description>Gyration</_description>
++ <description>Gyration</description>
+ <vendor>Gyration</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>htcdream</name>
+- <_description>HTC Dream</_description>
++ <description>HTC Dream</description>
+ <vendor>HTC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>kinesis</name>
+- <_description>Kinesis</_description>
++ <description>Kinesis</description>
+ <vendor>Kinesis</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logitech_base</name>
+- <_description>Logitech Generic Keyboard</_description>
++ <description>Logitech Generic Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logitech_g15</name>
+- <_description>Logitech G15 extra keys via G15daemon</_description>
++ <description>Logitech G15 extra keys via G15daemon</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpi6</name>
+- <_description>Hewlett-Packard Internet Keyboard</_description>
++ <description>Hewlett-Packard Internet Keyboard</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp250x</name>
+- <_description>Hewlett-Packard SK-250x Multimedia Keyboard</_description>
++ <description>Hewlett-Packard SK-250x Multimedia Keyboard</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpxe3gc</name>
+- <_description>Hewlett-Packard Omnibook XE3 GC</_description>
++ <description>Hewlett-Packard Omnibook XE3 GC</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpxe3gf</name>
+- <_description>Hewlett-Packard Omnibook XE3 GF</_description>
++ <description>Hewlett-Packard Omnibook XE3 GF</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpxt1000</name>
+- <_description>Hewlett-Packard Omnibook XT1000</_description>
++ <description>Hewlett-Packard Omnibook XT1000</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpdv5</name>
+- <_description>Hewlett-Packard Pavilion dv5</_description>
++ <description>Hewlett-Packard Pavilion dv5</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpzt11xx</name>
+- <_description>Hewlett-Packard Pavilion ZT11xx</_description>
++ <description>Hewlett-Packard Pavilion ZT11xx</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp500fa</name>
+- <_description>Hewlett-Packard Omnibook 500 FA</_description>
++ <description>Hewlett-Packard Omnibook 500 FA</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp5xx</name>
+- <_description>Hewlett-Packard Omnibook 5xx</_description>
++ <description>Hewlett-Packard Omnibook 5xx</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpnx9020</name>
+- <_description>Hewlett-Packard nx9020</_description>
++ <description>Hewlett-Packard nx9020</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp6000</name>
+- <_description>Hewlett-Packard Omnibook 6000/6100</_description>
++ <description>Hewlett-Packard Omnibook 6000/6100</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>honeywell_euroboard</name>
+- <_description>Honeywell Euroboard</_description>
++ <description>Honeywell Euroboard</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hpmini110</name>
+- <_description>Hewlett-Packard Mini 110 Notebook</_description>
++ <description>Hewlett-Packard Mini 110 Notebook</description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>rapidaccess</name>
+- <_description>IBM Rapid Access</_description>
++ <description>IBM Rapid Access</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>rapidaccess2</name>
+- <_description>IBM Rapid Access II</_description>
++ <description>IBM Rapid Access II</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpad</name>
+- <_description>IBM ThinkPad 560Z/600/600E/A22E</_description>
++ <description>IBM ThinkPad 560Z/600/600E/A22E</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpad60</name>
+- <_description>IBM ThinkPad R60/T60/R61/T61</_description>
++ <description>IBM ThinkPad R60/T60/R61/T61</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpadz60</name>
+- <_description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</_description>
++ <description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>ibm_spacesaver</name>
+- <_description>IBM Space Saver</_description>
++ <description>IBM Space Saver</description>
+ <vendor>Lenovo (previously IBM)</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiaccess</name>
+- <_description>Logitech Access Keyboard</_description>
++ <description>Logitech Access Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiclx300</name>
+- <_description>Logitech Cordless Desktop LX-300</_description>
++ <description>Logitech Cordless Desktop LX-300</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logii350</name>
+- <_description>Logitech Internet 350 Keyboard</_description>
++ <description>Logitech Internet 350 Keyboard</description>
+ <vendor>Logitech</vendor>
+ <hwList> <hwId>046d:c313</hwId></hwList>
+ </configItem>
+@@ -633,665 +633,665 @@
+ <model>
+ <configItem>
+ <name>logimel</name>
+- <_description>Logitech Media Elite Keyboard</_description>
++ <description>Logitech Media Elite Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicd</name>
+- <_description>Logitech Cordless Desktop</_description>
++ <description>Logitech Cordless Desktop</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicd_it</name>
+- <_description>Logitech Cordless Desktop iTouch</_description>
++ <description>Logitech Cordless Desktop iTouch</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicd_nav</name>
+- <_description>Logitech Cordless Desktop Navigator</_description>
++ <description>Logitech Cordless Desktop Navigator</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicd_opt</name>
+- <_description>Logitech Cordless Desktop Optical</_description>
++ <description>Logitech Cordless Desktop Optical</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicda</name>
+- <_description>Logitech Cordless Desktop (alternate option)</_description>
++ <description>Logitech Cordless Desktop (alternate option)</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicdpa2</name>
+- <_description>Logitech Cordless Desktop Pro (alternate option 2)</_description>
++ <description>Logitech Cordless Desktop Pro (alternate option 2)</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicfn</name>
+- <_description>Logitech Cordless Freedom/Desktop Navigator</_description>
++ <description>Logitech Cordless Freedom/Desktop Navigator</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicdn</name>
+- <_description>Logitech Cordless Desktop Navigator</_description>
++ <description>Logitech Cordless Desktop Navigator</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiitc</name>
+- <_description>Logitech iTouch Cordless Keyboard (model Y-RB6)</_description>
++ <description>Logitech iTouch Cordless Keyboard (model Y-RB6)</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiik</name>
+- <_description>Logitech Internet Keyboard</_description>
++ <description>Logitech Internet Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>itouch</name>
+- <_description>Logitech iTouch</_description>
++ <description>Logitech iTouch</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicink</name>
+- <_description>Logitech Internet Navigator Keyboard</_description>
++ <description>Logitech Internet Navigator Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiex110</name>
+- <_description>Logitech Cordless Desktop EX110</_description>
++ <description>Logitech Cordless Desktop EX110</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiinkse</name>
+- <_description>Logitech iTouch Internet Navigator Keyboard SE</_description>
++ <description>Logitech iTouch Internet Navigator Keyboard SE</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiinkseusb</name>
+- <_description>Logitech iTouch Internet Navigator Keyboard SE (USB)</_description>
++ <description>Logitech iTouch Internet Navigator Keyboard SE (USB)</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiultrax</name>
+- <_description>Logitech Ultra-X Keyboard</_description>
++ <description>Logitech Ultra-X Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiultraxc</name>
+- <_description>Logitech Ultra-X Cordless Media Desktop Keyboard</_description>
++ <description>Logitech Ultra-X Cordless Media Desktop Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logidinovo</name>
+- <_description>Logitech diNovo Keyboard</_description>
++ <description>Logitech diNovo Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logidinovoedge</name>
+- <_description>Logitech diNovo Edge Keyboard</_description>
++ <description>Logitech diNovo Edge Keyboard</description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>mx1998</name>
+- <_description>Memorex MX1998</_description>
++ <description>Memorex MX1998</description>
+ <vendor>Memorex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>mx2500</name>
+- <_description>Memorex MX2500 EZ-Access Keyboard</_description>
++ <description>Memorex MX2500 EZ-Access Keyboard</description>
+ <vendor>Memorex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>mx2750</name>
+- <_description>Memorex MX2750</_description>
++ <description>Memorex MX2750</description>
+ <vendor>Memorex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoft4000</name>
+- <_description>Microsoft Natural Wireless Ergonomic Keyboard 4000</_description>
++ <description>Microsoft Natural Wireless Ergonomic Keyboard 4000</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoft7000</name>
+- <_description>Microsoft Natural Wireless Ergonomic Keyboard 7000</_description>
++ <description>Microsoft Natural Wireless Ergonomic Keyboard 7000</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftinet</name>
+- <_description>Microsoft Internet Keyboard</_description>
++ <description>Microsoft Internet Keyboard</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftpro</name>
+- <_description>Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro</_description>
++ <description>Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprousb</name>
+- <_description>Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro</_description>
++ <description>Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprooem</name>
+- <_description>Microsoft Natural Keyboard Pro OEM</_description>
++ <description>Microsoft Natural Keyboard Pro OEM</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>vsonku306</name>
+- <_description>ViewSonic KU-306 Internet Keyboard</_description>
++ <description>ViewSonic KU-306 Internet Keyboard</description>
+ <vendor>ViewSonic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprose</name>
+- <_description>Microsoft Internet Keyboard Pro, Swedish</_description>
++ <description>Microsoft Internet Keyboard Pro, Swedish</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftoffice</name>
+- <_description>Microsoft Office Keyboard</_description>
++ <description>Microsoft Office Keyboard</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftmult</name>
+- <_description>Microsoft Wireless Multimedia Keyboard 1.0A</_description>
++ <description>Microsoft Wireless Multimedia Keyboard 1.0A</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftelite</name>
+- <_description>Microsoft Natural Keyboard Elite</_description>
++ <description>Microsoft Natural Keyboard Elite</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftccurve2k</name>
+- <_description>Microsoft Comfort Curve Keyboard 2000</_description>
++ <description>Microsoft Comfort Curve Keyboard 2000</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>oretec</name>
+- <_description>Ortek MCK-800 MM/Internet keyboard</_description>
++ <description>Ortek MCK-800 MM/Internet keyboard</description>
+ <vendor>Ortek</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>propeller</name>
+- <_description>Propeller Voyager (KTEZ-1000)</_description>
++ <description>Propeller Voyager (KTEZ-1000)</description>
+ <vendor>KeyTronic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>qtronix</name>
+- <_description>QTronix Scorpius 98N+</_description>
++ <description>QTronix Scorpius 98N+</description>
+ <vendor>QTronix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>samsung4500</name>
+- <_description>Samsung SDM 4500P</_description>
++ <description>Samsung SDM 4500P</description>
+ <vendor>Samsung</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>samsung4510</name>
+- <_description>Samsung SDM 4510P</_description>
++ <description>Samsung SDM 4510P</description>
+ <vendor>Samsung</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sanwaskbkg3</name>
+- <_description>Sanwa Supply SKB-KG3</_description>
++ <description>Sanwa Supply SKB-KG3</description>
+ <vendor>Sanwa Supply Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk1300</name>
+- <_description>SK-1300</_description>
++ <description>SK-1300</description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk2500</name>
+- <_description>SK-2500</_description>
++ <description>SK-2500</description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk6200</name>
+- <_description>SK-6200</_description>
++ <description>SK-6200</description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk7100</name>
+- <_description>SK-7100</_description>
++ <description>SK-7100</description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sp_inet</name>
+- <_description>Super Power Multimedia Keyboard</_description>
++ <description>Super Power Multimedia Keyboard</description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sven</name>
+- <_description>SVEN Ergonomic 2500</_description>
++ <description>SVEN Ergonomic 2500</description>
+ <vendor>SVEN</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sven303</name>
+- <_description>SVEN Slim 303</_description>
++ <description>SVEN Slim 303</description>
+ <vendor>SVEN</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>symplon</name>
+- <_description>Symplon PaceBook (tablet PC)</_description>
++ <description>Symplon PaceBook (tablet PC)</description>
+ <vendor>Symplon</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>toshiba_s3000</name>
+- <_description>Toshiba Satellite S3000</_description>
++ <description>Toshiba Satellite S3000</description>
+ <vendor>Toshiba</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>trust</name>
+- <_description>Trust Wireless Keyboard Classic</_description>
++ <description>Trust Wireless Keyboard Classic</description>
+ <vendor>Trust</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>trustda</name>
+- <_description>Trust Direct Access Keyboard</_description>
++ <description>Trust Direct Access Keyboard</description>
+ <vendor>Trust</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>trust_slimline</name>
+- <_description>Trust Slimline</_description>
++ <description>Trust Slimline</description>
+ <vendor>Trust</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>tm2020</name>
+- <_description>TypeMatrix EZ-Reach 2020</_description>
++ <description>TypeMatrix EZ-Reach 2020</description>
+ <vendor>TypeMatrix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>tm2030PS2</name>
+- <_description>TypeMatrix EZ-Reach 2030 PS2</_description>
++ <description>TypeMatrix EZ-Reach 2030 PS2</description>
+ <vendor>TypeMatrix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>tm2030USB</name>
+- <_description>TypeMatrix EZ-Reach 2030 USB</_description>
++ <description>TypeMatrix EZ-Reach 2030 USB</description>
+ <vendor>TypeMatrix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>tm2030USB-102</name>
+- <_description>TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)</_description>
++ <description>TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)</description>
+ <vendor>TypeMatrix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>tm2030USB-106</name>
+- <_description>TypeMatrix EZ-Reach 2030 USB (106:JP mode)</_description>
++ <description>TypeMatrix EZ-Reach 2030 USB (106:JP mode)</description>
+ <vendor>TypeMatrix</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>yahoo</name>
+- <_description>Yahoo! Internet Keyboard</_description>
++ <description>Yahoo! Internet Keyboard</description>
+ <vendor>Yahoo!</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>macbook78</name>
+- <_description>MacBook/MacBook Pro</_description>
++ <description>MacBook/MacBook Pro</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>macbook79</name>
+- <_description>MacBook/MacBook Pro (Intl)</_description>
++ <description>MacBook/MacBook Pro (Intl)</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>macintosh</name>
+- <_description>Macintosh</_description>
++ <description>Macintosh</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>macintosh_old</name>
+- <_description>Macintosh Old</_description>
++ <description>Macintosh Old</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>macintosh_hhk</name>
+- <_description>Happy Hacking Keyboard for Mac</_description>
++ <description>Happy Hacking Keyboard for Mac</description>
+ <vendor>Fujitsu</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>acer_c300</name>
+- <_description>Acer C300</_description>
++ <description>Acer C300</description>
+ <vendor>Acer</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>acer_ferrari4k</name>
+- <_description>Acer Ferrari 4000</_description>
++ <description>Acer Ferrari 4000</description>
+ <vendor>Acer</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>acer_laptop</name>
+- <_description>Acer Laptop</_description>
++ <description>Acer Laptop</description>
+ <vendor>Acer</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>asus_laptop</name>
+- <_description>Asus Laptop</_description>
++ <description>Asus Laptop</description>
+ <vendor>Asus</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>apple</name>
+- <_description>Apple</_description>
++ <description>Apple</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>apple_laptop</name>
+- <_description>Apple Laptop</_description>
++ <description>Apple Laptop</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>applealu_ansi</name>
+- <_description>Apple Aluminium Keyboard (ANSI)</_description>
++ <description>Apple Aluminium Keyboard (ANSI)</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>applealu_iso</name>
+- <_description>Apple Aluminium Keyboard (ISO)</_description>
++ <description>Apple Aluminium Keyboard (ISO)</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>applealu_jis</name>
+- <_description>Apple Aluminium Keyboard (JIS)</_description>
++ <description>Apple Aluminium Keyboard (JIS)</description>
+ <vendor>Apple</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>silvercrest</name>
+- <_description>SILVERCREST Multimedia Wireless Keyboard</_description>
++ <description>SILVERCREST Multimedia Wireless Keyboard</description>
+ <vendor>Silvercrest</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>emachines</name>
+- <_description>Laptop/notebook eMachines m68xx</_description>
++ <description>Laptop/notebook eMachines m68xx</description>
+ <vendor>eMachines</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>benqx</name>
+- <_description>BenQ X-Touch</_description>
++ <description>BenQ X-Touch</description>
+ <vendor>BenQ</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>benqx730</name>
+- <_description>BenQ X-Touch 730</_description>
++ <description>BenQ X-Touch 730</description>
+ <vendor>BenQ</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>benqx800</name>
+- <_description>BenQ X-Touch 800</_description>
++ <description>BenQ X-Touch 800</description>
+ <vendor>BenQ</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hhk</name>
+- <_description>Happy Hacking Keyboard</_description>
++ <description>Happy Hacking Keyboard</description>
+ <vendor>Fujitsu</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>classmate</name>
+- <_description>Classmate PC</_description>
++ <description>Classmate PC</description>
+ <vendor>Intel</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>olpc</name>
+- <_description>OLPC</_description>
++ <description>OLPC</description>
+ <vendor>OLPC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type7_usb</name>
+- <_description>Sun Type 7 USB</_description>
++ <description>Sun Type 7 USB</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type7_euro_usb</name>
+- <_description>Sun Type 7 USB (European layout)</_description>
++ <description>Sun Type 7 USB (European layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type7_unix_usb</name>
+- <_description>Sun Type 7 USB (Unix layout)</_description>
++ <description>Sun Type 7 USB (Unix layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type7_jp_usb</name>
+- <_description>Sun Type 7 USB (Japanese layout) / Japanese 106-key</_description>
++ <description>Sun Type 7 USB (Japanese layout) / Japanese 106-key</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_usb</name>
+- <_description>Sun Type 6/7 USB</_description>
++ <description>Sun Type 6/7 USB</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_euro_usb</name>
+- <_description>Sun Type 6/7 USB (European layout)</_description>
++ <description>Sun Type 6/7 USB (European layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_unix_usb</name>
+- <_description>Sun Type 6 USB (Unix layout)</_description>
++ <description>Sun Type 6 USB (Unix layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_jp_usb</name>
+- <_description>Sun Type 6 USB (Japanese layout)</_description>
++ <description>Sun Type 6 USB (Japanese layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_jp</name>
+- <_description>Sun Type 6 (Japanese layout)</_description>
++ <description>Sun Type 6 (Japanese layout)</description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>targa_v811</name>
+- <_description>Targa Visionary 811</_description>
++ <description>Targa Visionary 811</description>
+ <vendor>Targa</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>unitekkb1925</name>
+- <_description>Unitek KB-1925</_description>
++ <description>Unitek KB-1925</description>
+ <vendor>Unitek Group</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compalfl90</name>
+- <_description>FL90</_description>
++ <description>FL90</description>
+ <vendor>Compal Electronics Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>creativedw7000</name>
+- <_description>Creative Desktop Wireless 7000</_description>
++ <description>Creative Desktop Wireless 7000</description>
+ <vendor>Creative</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>htcdream</name>
+- <_description>Htc Dream phone</_description>
++ <description>Htc Dream phone</description>
+ <vendor>htc</vendor>
+ </configItem>
+ </model>
+@@ -1300,9 +1300,9 @@
+ <layout>
+ <configItem>
+ <name>us</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (US)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (US)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -1311,9 +1311,9 @@
+ <variant>
+ <configItem>
+ <name>chr</name>
+- <!-- Keyboard indicator for Cherokee layouts -->
+- <_shortDescription>chr</_shortDescription>
+- <_description>Cherokee</_description>
++
++ <shortDescription>chr</shortDescription>
++ <description>Cherokee</description>
+ <languageList>
+ <iso639Id>chr</iso639Id>
+ </languageList>
+@@ -1322,75 +1322,75 @@
+ <variant>
+ <configItem>
+ <name>euro</name>
+- <_description>English (US, with euro on 5)</_description>
++ <description>English (US, with euro on 5)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>intl</name>
+- <_description>English (US, international with dead keys)</_description>
++ <description>English (US, international with dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt-intl</name>
+- <_description>English (US, alternative international)</_description>
++ <description>English (US, alternative international)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>English (Colemak)</_description>
++ <description>English (Colemak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>English (Dvorak)</_description>
++ <description>English (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-intl</name>
+- <_description>English (Dvorak, international with dead keys)</_description>
++ <description>English (Dvorak, international with dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-alt-intl</name>
+- <_description>English (Dvorak alternative international no dead keys)</_description>
++ <description>English (Dvorak alternative international no dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-l</name>
+- <_description>English (left handed Dvorak)</_description>
++ <description>English (left handed Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-r</name>
+- <_description>English (right handed Dvorak)</_description>
++ <description>English (right handed Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-classic</name>
+- <_description>English (classic Dvorak)</_description>
++ <description>English (classic Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvp</name>
+- <_description>English (programmer Dvorak)</_description>
++ <description>English (programmer Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rus</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (US, phonetic)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (US, phonetic)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -1399,13 +1399,13 @@
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>English (Macintosh)</_description>
++ <description>English (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>altgr-intl</name>
+- <_description>English (international AltGr dead keys)</_description>
++ <description>English (international AltGr dead keys)</description>
+ <languageList><iso639Id>eng</iso639Id>
+ <iso639Id>fra</iso639Id>
+ <iso639Id>ger</iso639Id></languageList>
+@@ -1414,13 +1414,13 @@
+ <variant>
+ <configItem>
+ <name>olpc2</name>
+- <_description>English (the divide/multiply keys toggle the layout)</_description>
++ <description>English (the divide/multiply keys toggle the layout)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>hbs</name>
+- <_description>Serbo-Croatian (US)</_description>
++ <description>Serbo-Croatian (US)</description>
+ <languageList><iso639Id>eng</iso639Id>
+ <iso639Id>bos</iso639Id>
+ <iso639Id>hbs</iso639Id>
+@@ -1431,13 +1431,13 @@
+ <variant>
+ <configItem>
+ <name>workman</name>
+- <_description>English (Workman)</_description>
++ <description>English (Workman)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>workman-intl</name>
+- <_description>English (Workman, international with dead keys)</_description>
++ <description>English (Workman, international with dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1445,17 +1445,17 @@
+ <layout>
+ <configItem>
+ <name>af</name>
+- <!-- Keyboard indicator for Afghani layouts -->
+- <_shortDescription>fa</_shortDescription>
+- <_description>Afghani</_description>
++
++ <shortDescription>fa</shortDescription>
++ <description>Afghani</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ps</name>
+- <!-- Keyboard indicator for Pashto layouts -->
+- <_shortDescription>ps</_shortDescription>
+- <_description>Pashto</_description>
++
++ <shortDescription>ps</shortDescription>
++ <description>Pashto</description>
+ <languageList>
+ <iso639Id>pus</iso639Id>
+ </languageList>
+@@ -1464,9 +1464,9 @@
+ <variant>
+ <configItem>
+ <name>uz</name>
+- <!-- Keyboard indicator for Uzbek layouts -->
+- <_shortDescription>uz</_shortDescription>
+- <_description>Uzbek (Afghanistan)</_description>
++
++ <shortDescription>uz</shortDescription>
++ <description>Uzbek (Afghanistan)</description>
+ <languageList>
+ <iso639Id>uzb</iso639Id>
+ </languageList>
+@@ -1475,9 +1475,9 @@
+ <variant>
+ <configItem>
+ <name>olpc-ps</name>
+- <!-- Keyboard indicator for Pashto layouts -->
+- <_shortDescription>ps</_shortDescription>
+- <_description>Pashto (Afghanistan, OLPC)</_description>
++
++ <shortDescription>ps</shortDescription>
++ <description>Pashto (Afghanistan, OLPC)</description>
+ <languageList>
+ <iso639Id>pus</iso639Id>
+ </languageList>
+@@ -1486,17 +1486,17 @@
+ <variant>
+ <configItem>
+ <name>fa-olpc</name>
+- <!-- Keyboard indicator for Persian layouts -->
+- <_shortDescription>fa</_shortDescription>
+- <_description>Persian (Afghanistan, Dari OLPC)</_description>
++
++ <shortDescription>fa</shortDescription>
++ <description>Persian (Afghanistan, Dari OLPC)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>uz-olpc</name>
+- <!-- Keyboard indicator for Uzbek layouts -->
+- <_shortDescription>uz</_shortDescription>
+- <_description>Uzbek (Afghanistan, OLPC)</_description>
++
++ <shortDescription>uz</shortDescription>
++ <description>Uzbek (Afghanistan, OLPC)</description>
+ <languageList>
+ <iso639Id>uzb</iso639Id>
+ </languageList>
+@@ -1507,9 +1507,9 @@
+ <layout>
+ <configItem>
+ <name>ara</name>
+- <!-- Keyboard indicator for Arabic layouts -->
+- <_shortDescription>ar</_shortDescription>
+- <_description>Arabic</_description>
++
++ <shortDescription>ar</shortDescription>
++ <description>Arabic</description>
+ <countryList>
+ <iso3166Id>AE</iso3166Id>
+ <iso3166Id>BH</iso3166Id>
+@@ -1539,37 +1539,37 @@
+ <variant>
+ <configItem>
+ <name>azerty</name>
+- <_description>Arabic (azerty)</_description>
++ <description>Arabic (azerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>azerty_digits</name>
+- <_description>Arabic (azerty/digits)</_description>
++ <description>Arabic (azerty/digits)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>digits</name>
+- <_description>Arabic (digits)</_description>
++ <description>Arabic (digits)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>Arabic (qwerty)</_description>
++ <description>Arabic (qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_digits</name>
+- <_description>Arabic (qwerty/digits)</_description>
++ <description>Arabic (qwerty/digits)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>buckwalter</name>
+- <_description>Arabic (Buckwalter)</_description>
++ <description>Arabic (Buckwalter)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1577,9 +1577,9 @@
+ <layout>
+ <configItem>
+ <name>al</name>
+- <!-- Keyboard indicator for Albanian layouts -->
+- <_shortDescription>sq</_shortDescription>
+- <_description>Albanian</_description>
++
++ <shortDescription>sq</shortDescription>
++ <description>Albanian</description>
+ <languageList>
+ <iso639Id>alb</iso639Id>
+ </languageList>
+@@ -1589,9 +1589,9 @@
+ <layout>
+ <configItem>
+ <name>am</name>
+- <!-- Keyboard indicator for Armenian layouts -->
+- <_shortDescription>hy</_shortDescription>
+- <_description>Armenian</_description>
++
++ <shortDescription>hy</shortDescription>
++ <description>Armenian</description>
+ <languageList>
+ <iso639Id>hye</iso639Id>
+ </languageList>
+@@ -1600,31 +1600,31 @@
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Armenian (phonetic)</_description>
++ <description>Armenian (phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>phonetic-alt</name>
+- <_description>Armenian (alternative phonetic)</_description>
++ <description>Armenian (alternative phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>eastern</name>
+- <_description>Armenian (eastern)</_description>
++ <description>Armenian (eastern)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>western</name>
+- <_description>Armenian (western)</_description>
++ <description>Armenian (western)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>eastern-alt</name>
+- <_description>Armenian (alternative eastern)</_description>
++ <description>Armenian (alternative eastern)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1632,9 +1632,9 @@
+ <layout>
+ <configItem>
+ <name>at</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Austria)</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German (Austria)</description>
+ <languageList>
+ <iso639Id>ger</iso639Id>
+ </languageList>
+@@ -1643,19 +1643,19 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>German (Austria, eliminate dead keys)</_description>
++ <description>German (Austria, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>German (Austria, Sun dead keys)</_description>
++ <description>German (Austria, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>German (Austria, Macintosh)</_description>
++ <description>German (Austria, Macintosh)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1663,9 +1663,9 @@
+ <layout>
+ <configItem>
+ <name>az</name>
+- <!-- Keyboard indicator for Azerbaijani layouts -->
+- <_shortDescription>az</_shortDescription>
+- <_description>Azerbaijani</_description>
++
++ <shortDescription>az</shortDescription>
++ <description>Azerbaijani</description>
+ <languageList>
+ <iso639Id>aze</iso639Id>
+ </languageList>
+@@ -1674,7 +1674,7 @@
+ <variant>
+ <configItem>
+ <name>cyrillic</name>
+- <_description>Azerbaijani (Cyrillic)</_description>
++ <description>Azerbaijani (Cyrillic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1682,9 +1682,9 @@
+ <layout>
+ <configItem>
+ <name>by</name>
+- <!-- Keyboard indicator for Belarusian layouts -->
+- <_shortDescription>by</_shortDescription>
+- <_description>Belarusian</_description>
++
++ <shortDescription>by</shortDescription>
++ <description>Belarusian</description>
+ <languageList>
+ <iso639Id>bel</iso639Id>
+ </languageList>
+@@ -1693,13 +1693,13 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Belarusian (legacy)</_description>
++ <description>Belarusian (legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin</name>
+- <_description>Belarusian (Latin)</_description>
++ <description>Belarusian (Latin)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1707,9 +1707,9 @@
+ <layout>
+ <configItem>
+ <name>be</name>
+- <!-- Keyboard indicator for Belgian layouts -->
+- <_shortDescription>be</_shortDescription>
+- <_description>Belgian</_description>
++
++ <shortDescription>be</shortDescription>
++ <description>Belgian</description>
+ <languageList><iso639Id>ger</iso639Id>
+ <iso639Id>nld</iso639Id>
+ <iso639Id>fra</iso639Id></languageList>
+@@ -1718,43 +1718,43 @@
+ <variant>
+ <configItem>
+ <name>oss</name>
+- <_description>Belgian (alternative)</_description>
++ <description>Belgian (alternative)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_latin9</name>
+- <_description>Belgian (alternative, Latin-9 only)</_description>
++ <description>Belgian (alternative, Latin-9 only)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_sundeadkeys</name>
+- <_description>Belgian (alternative, Sun dead keys)</_description>
++ <description>Belgian (alternative, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>iso-alternate</name>
+- <_description>Belgian (ISO alternate)</_description>
++ <description>Belgian (ISO alternate)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Belgian (eliminate dead keys)</_description>
++ <description>Belgian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Belgian (Sun dead keys)</_description>
++ <description>Belgian (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>wang</name>
+- <_description>Belgian (Wang model 724 azerty)</_description>
++ <description>Belgian (Wang model 724 azerty)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1762,9 +1762,9 @@
+ <layout>
+ <configItem>
+ <name>bd</name>
+- <!-- Keyboard indicator for Bangla layouts -->
+- <_shortDescription>bn</_shortDescription>
+- <_description>Bangla</_description>
++
++ <shortDescription>bn</shortDescription>
++ <description>Bangla</description>
+ <languageList>
+ <iso639Id>ben</iso639Id>
+ </languageList>
+@@ -1773,7 +1773,7 @@
+ <variant>
+ <configItem>
+ <name>probhat</name>
+- <_description>Bangla (Probhat)</_description>
++ <description>Bangla (Probhat)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -1781,17 +1781,17 @@
+ <layout>
+ <configItem>
+ <name>in</name>
+- <!-- Keyboard indicator for Indian layouts -->
+- <_shortDescription>in</_shortDescription>
+- <_description>Indian</_description>
++
++ <shortDescription>in</shortDescription>
++ <description>Indian</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ben</name>
+- <!-- Keyboard indicator for Bangla layouts -->
+- <_shortDescription>bn</_shortDescription>
+- <_description>Bangla (India)</_description>
++
++ <shortDescription>bn</shortDescription>
++ <description>Bangla (India)</description>
+ <languageList>
+ <iso639Id>ben</iso639Id>
+ </languageList>
+@@ -1800,9 +1800,9 @@
+ <variant>
+ <configItem>
+ <name>ben_probhat</name>
+- <!-- Keyboard indicator for Bangla layouts -->
+- <_shortDescription>bn</_shortDescription>
+- <_description>Bangla (India, Probhat)</_description>
++
++ <shortDescription>bn</shortDescription>
++ <description>Bangla (India, Probhat)</description>
+ <languageList>
+ <iso639Id>ben</iso639Id>
+ </languageList>
+@@ -1811,28 +1811,28 @@
+ <variant>
+ <configItem>
+ <name>ben_baishakhi</name>
+- <_description>Bangla (India, Baishakhi)</_description>
++ <description>Bangla (India, Baishakhi)</description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ben_bornona</name>
+- <_description>Bangla (India, Bornona)</_description>
++ <description>Bangla (India, Bornona)</description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ben_gitanjali</name>
+- <_description>Bangla (India, Uni Gitanjali)</_description>
++ <description>Bangla (India, Uni Gitanjali)</description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ben_inscript</name>
+- <_description>Bangla (India, Baishakhi Inscript)</_description>
++ <description>Bangla (India, Baishakhi Inscript)</description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -1846,9 +1846,9 @@
+ <variant>
+ <configItem>
+ <name>guj</name>
+- <!-- Keyboard indicator for Gujarati layouts -->
+- <_shortDescription>gu</_shortDescription>
+- <_description>Gujarati</_description>
++
++ <shortDescription>gu</shortDescription>
++ <description>Gujarati</description>
+ <languageList>
+ <iso639Id>guj</iso639Id>
+ </languageList>
+@@ -1857,9 +1857,9 @@
+ <variant>
+ <configItem>
+ <name>guru</name>
+- <!-- Keyboard indicator for Punjabi layouts -->
+- <_shortDescription>pa</_shortDescription>
+- <_description>Punjabi (Gurmukhi)</_description>
++
++ <shortDescription>pa</shortDescription>
++ <description>Punjabi (Gurmukhi)</description>
+ <languageList>
+ <iso639Id>pan</iso639Id>
+ </languageList>
+@@ -1868,9 +1868,9 @@
+ <variant>
+ <configItem>
+ <name>jhelum</name>
+- <!-- Keyboard indicator for Punjabi layouts -->
+- <_shortDescription>pa</_shortDescription>
+- <_description>Punjabi (Gurmukhi Jhelum)</_description>
++
++ <shortDescription>pa</shortDescription>
++ <description>Punjabi (Gurmukhi Jhelum)</description>
+ <languageList>
+ <iso639Id>pan</iso639Id>
+ </languageList>
+@@ -1879,9 +1879,9 @@
+ <variant>
+ <configItem>
+ <name>kan</name>
+- <!-- Keyboard indicator for Kannada layouts -->
+- <_shortDescription>kn</_shortDescription>
+- <_description>Kannada</_description>
++
++ <shortDescription>kn</shortDescription>
++ <description>Kannada</description>
+ <languageList>
+ <iso639Id>kan</iso639Id>
+ </languageList>
+@@ -1890,9 +1890,9 @@
+ <variant>
+ <configItem>
+ <name>kan-kagapa</name>
+- <!-- Keyboard indicator for Kannada layouts -->
+- <_shortDescription>kn</_shortDescription>
+- <_description>Kannada (KaGaPa phonetic)</_description>
++
++ <shortDescription>kn</shortDescription>
++ <description>Kannada (KaGaPa phonetic)</description>
+ <languageList>
+ <iso639Id>kan</iso639Id>
+ </languageList>
+@@ -1901,9 +1901,9 @@
+ <variant>
+ <configItem>
+ <name>mal</name>
+- <!-- Keyboard indicator for Malayalam layouts -->
+- <_shortDescription>ml</_shortDescription>
+- <_description>Malayalam</_description>
++
++ <shortDescription>ml</shortDescription>
++ <description>Malayalam</description>
+ <languageList>
+ <iso639Id>mal</iso639Id>
+ </languageList>
+@@ -1912,9 +1912,9 @@
+ <variant>
+ <configItem>
+ <name>mal_lalitha</name>
+- <!-- Keyboard indicator for Malayalam layouts -->
+- <_shortDescription>ml</_shortDescription>
+- <_description>Malayalam (Lalitha)</_description>
++
++ <shortDescription>ml</shortDescription>
++ <description>Malayalam (Lalitha)</description>
+ <languageList>
+ <iso639Id>mal</iso639Id>
+ </languageList>
+@@ -1923,18 +1923,18 @@
+ <variant>
+ <configItem>
+ <name>mal_enhanced</name>
+- <!-- Keyboard indicator for Malayalam layouts -->
+- <_shortDescription>ml</_shortDescription>
+- <_description>Malayalam (enhanced Inscript with Rupee Sign)</_description>
++
++ <shortDescription>ml</shortDescription>
++ <description>Malayalam (enhanced Inscript with Rupee Sign)</description>
+ <languageList><iso639Id>mal</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ori</name>
+- <!-- Keyboard indicator for Oriya layouts -->
+- <_shortDescription>or</_shortDescription>
+- <_description>Oriya</_description>
++
++ <shortDescription>or</shortDescription>
++ <description>Oriya</description>
+ <languageList>
+ <iso639Id>ori</iso639Id>
+ </languageList>
+@@ -1943,9 +1943,9 @@
+ <variant>
+ <configItem>
+ <name>tam_unicode</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil (Unicode)</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil (Unicode)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -1954,9 +1954,9 @@
+ <variant>
+ <configItem>
+ <name>tam_keyboard_with_numerals</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil (keyboard with numerals)</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil (keyboard with numerals)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -1965,9 +1965,9 @@
+ <variant>
+ <configItem>
+ <name>tam_TAB</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil (TAB typewriter)</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil (TAB typewriter)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -1976,9 +1976,9 @@
+ <variant>
+ <configItem>
+ <name>tam_TSCII</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil (TSCII typewriter)</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil (TSCII typewriter)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -1987,9 +1987,9 @@
+ <variant>
+ <configItem>
+ <name>tam</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -1998,9 +1998,9 @@
+ <variant>
+ <configItem>
+ <name>tel</name>
+- <!-- Keyboard indicator for Telugu layouts -->
+- <_shortDescription>te</_shortDescription>
+- <_description>Telugu</_description>
++
++ <shortDescription>te</shortDescription>
++ <description>Telugu</description>
+ <languageList>
+ <iso639Id>tel</iso639Id>
+ </languageList>
+@@ -2009,9 +2009,9 @@
+ <variant>
+ <configItem>
+ <name>tel-kagapa</name>
+- <!-- Keyboard indicator for Telugu layouts -->
+- <_shortDescription>te</_shortDescription>
+- <_description>Telugu (KaGaPa phonetic)</_description>
++
++ <shortDescription>te</shortDescription>
++ <description>Telugu (KaGaPa phonetic)</description>
+ <languageList>
+ <iso639Id>tel</iso639Id>
+ </languageList>
+@@ -2020,9 +2020,9 @@
+ <variant>
+ <configItem>
+ <name>urd-phonetic</name>
+- <!-- Keyboard indicator for Urdu layouts -->
+- <_shortDescription>ur</_shortDescription>
+- <_description>Urdu (phonetic)</_description>
++
++ <shortDescription>ur</shortDescription>
++ <description>Urdu (phonetic)</description>
+ <languageList>
+ <iso639Id>urd</iso639Id>
+ </languageList>
+@@ -2031,9 +2031,9 @@
+ <variant>
+ <configItem>
+ <name>urd-phonetic3</name>
+- <!-- Keyboard indicator for Urdu layouts -->
+- <_shortDescription>ur</_shortDescription>
+- <_description>Urdu (alternative phonetic)</_description>
++
++ <shortDescription>ur</shortDescription>
++ <description>Urdu (alternative phonetic)</description>
+ <languageList>
+ <iso639Id>urd</iso639Id>
+ </languageList>
+@@ -2042,9 +2042,9 @@
+ <variant>
+ <configItem>
+ <name>urd-winkeys</name>
+- <!-- Keyboard indicator for Urdu layouts -->
+- <_shortDescription>ur</_shortDescription>
+- <_description>Urdu (WinKeys)</_description>
++
++ <shortDescription>ur</shortDescription>
++ <description>Urdu (WinKeys)</description>
+ <languageList>
+ <iso639Id>urd</iso639Id>
+ </languageList>
+@@ -2053,9 +2053,9 @@
+ <variant>
+ <configItem>
+ <name>bolnagri</name>
+- <!-- Keyboard indicator for Hindi layouts -->
+- <_shortDescription>hi</_shortDescription>
+- <_description>Hindi (Bolnagri)</_description>
++
++ <shortDescription>hi</shortDescription>
++ <description>Hindi (Bolnagri)</description>
+ <languageList>
+ <iso639Id>hin</iso639Id>
+ </languageList>
+@@ -2064,9 +2064,9 @@
+ <variant>
+ <configItem>
+ <name>hin-wx</name>
+- <!-- Keyboard indicator for Hindi layouts -->
+- <_shortDescription>hi</_shortDescription>
+- <_description>Hindi (Wx)</_description>
++
++ <shortDescription>hi</shortDescription>
++ <description>Hindi (Wx)</description>
+ <languageList>
+ <iso639Id>hin</iso639Id>
+ </languageList>
+@@ -2075,9 +2075,9 @@
+ <variant>
+ <configItem>
+ <name>hin-kagapa</name>
+- <!-- Keyboard indicator for Hindi layouts -->
+- <_shortDescription>hi</_shortDescription>
+- <_description>Hindi (KaGaPa phonetic)</_description>
++
++ <shortDescription>hi</shortDescription>
++ <description>Hindi (KaGaPa phonetic)</description>
+ <languageList>
+ <iso639Id>hin</iso639Id>
+ </languageList>
+@@ -2086,9 +2086,9 @@
+ <variant>
+ <configItem>
+ <name>san-kagapa</name>
+- <!-- Keyboard indicator for Sanskrit layouts -->
+- <_shortDescription>sa</_shortDescription>
+- <_description>Sanskrit (KaGaPa phonetic)</_description>
++
++ <shortDescription>sa</shortDescription>
++ <description>Sanskrit (KaGaPa phonetic)</description>
+ <languageList>
+ <iso639Id>san</iso639Id>
+ </languageList>
+@@ -2097,9 +2097,9 @@
+ <variant>
+ <configItem>
+ <name>mar-kagapa</name>
+- <!-- Keyboard indicator for Marathi layouts -->
+- <_shortDescription>mr</_shortDescription>
+- <_description>Marathi (KaGaPa phonetic)</_description>
++
++ <shortDescription>mr</shortDescription>
++ <description>Marathi (KaGaPa phonetic)</description>
+ <languageList>
+ <iso639Id>mar</iso639Id>
+ </languageList>
+@@ -2108,9 +2108,9 @@
+ <variant>
+ <configItem>
+ <name>eng</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (India, with RupeeSign)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (India, with RupeeSign)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -2121,9 +2121,9 @@
+ <layout>
+ <configItem>
+ <name>ba</name>
+- <!-- Keyboard indicator for Bosnian layouts -->
+- <_shortDescription>bs</_shortDescription>
+- <_description>Bosnian</_description>
++
++ <shortDescription>bs</shortDescription>
++ <description>Bosnian</description>
+ <languageList>
+ <iso639Id>bos</iso639Id>
+ </languageList>
+@@ -2132,25 +2132,25 @@
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+- <_description>Bosnian (use guillemets for quotes)</_description>
++ <description>Bosnian (use guillemets for quotes)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+- <_description>Bosnian (use Bosnian digraphs)</_description>
++ <description>Bosnian (use Bosnian digraphs)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicodeus</name>
+- <_description>Bosnian (US keyboard with Bosnian digraphs)</_description>
++ <description>Bosnian (US keyboard with Bosnian digraphs)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Bosnian (US keyboard with Bosnian letters)</_description>
++ <description>Bosnian (US keyboard with Bosnian letters)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2158,9 +2158,9 @@
+ <layout>
+ <configItem>
+ <name>br</name>
+- <!-- Keyboard indicator for Portuguese layouts -->
+- <_shortDescription>pt</_shortDescription>
+- <_description>Portuguese (Brazil)</_description>
++
++ <shortDescription>pt</shortDescription>
++ <description>Portuguese (Brazil)</description>
+ <languageList>
+ <iso639Id>por</iso639Id>
+ </languageList>
+@@ -2169,31 +2169,31 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Portuguese (Brazil, eliminate dead keys)</_description>
++ <description>Portuguese (Brazil, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Portuguese (Brazil, Dvorak)</_description>
++ <description>Portuguese (Brazil, Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo</name>
+- <_description>Portuguese (Brazil, Nativo)</_description>
++ <description>Portuguese (Brazil, Nativo)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-us</name>
+- <_description>Portuguese (Brazil, Nativo for US keyboards)</_description>
++ <description>Portuguese (Brazil, Nativo for US keyboards)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-epo</name>
+- <_description>Esperanto (Brazil, Nativo)</_description>
++ <description>Esperanto (Brazil, Nativo)</description>
+ <languageList>
+ <iso639Id>epo</iso639Id>
+ </languageList>
+@@ -2204,9 +2204,9 @@
+ <layout>
+ <configItem>
+ <name>bg</name>
+- <!-- Keyboard indicator for Bulgarian layouts -->
+- <_shortDescription>bg</_shortDescription>
+- <_description>Bulgarian</_description>
++
++ <shortDescription>bg</shortDescription>
++ <description>Bulgarian</description>
+ <languageList>
+ <iso639Id>bul</iso639Id>
+ </languageList>
+@@ -2215,13 +2215,13 @@
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Bulgarian (traditional phonetic)</_description>
++ <description>Bulgarian (traditional phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bas_phonetic</name>
+- <_description>Bulgarian (new phonetic)</_description>
++ <description>Bulgarian (new phonetic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2229,17 +2229,17 @@
+ <layout>
+ <configItem>
+ <name>ma</name>
+- <!-- Keyboard indicator for Arabic layouts -->
+- <_shortDescription>ar</_shortDescription>
+- <_description>Arabic (Morocco)</_description>
++
++ <shortDescription>ar</shortDescription>
++ <description>Arabic (Morocco)</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>french</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Morocco)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Morocco)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -2248,9 +2248,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2259,9 +2259,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh-alt</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh alternative)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh alternative)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2270,9 +2270,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh-alt-phonetic</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh alternative phonetic)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh alternative phonetic)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2281,9 +2281,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh-extended</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh extended)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh extended)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2292,9 +2292,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh-phonetic</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh phonetic)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh phonetic)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2303,9 +2303,9 @@
+ <variant>
+ <configItem>
+ <name>tifinagh-extended-phonetic</name>
+- <!-- Keyboard indicator for Berber layouts -->
+- <_shortDescription>ber</_shortDescription>
+- <_description>Berber (Morocco, Tifinagh extended phonetic)</_description>
++
++ <shortDescription>ber</shortDescription>
++ <description>Berber (Morocco, Tifinagh extended phonetic)</description>
+ <languageList>
+ <iso639Id>ber</iso639Id>
+ </languageList>
+@@ -2316,23 +2316,23 @@
+ <layout>
+ <configItem>
+ <name>cm</name>
+- <!-- Keyboard indicator for Cameroon layouts -->
+- <_shortDescription>cm</_shortDescription>
+- <_description>English (Cameroon)</_description>
++
++ <shortDescription>cm</shortDescription>
++ <description>English (Cameroon)</description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>french</name>
+- <_description>French (Cameroon)</_description>
++ <description>French (Cameroon)</description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>Cameroon Multilingual (qwerty)</_description>
++ <description>Cameroon Multilingual (qwerty)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ <iso639Id>bas</iso639Id>
+@@ -2369,7 +2369,7 @@
+ <variant>
+ <configItem>
+ <name>azerty</name>
+- <_description>Cameroon Multilingual (azerty)</_description>
++ <description>Cameroon Multilingual (azerty)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ <iso639Id>bas</iso639Id>
+@@ -2406,7 +2406,7 @@
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Cameroon Multilingual (Dvorak)</_description>
++ <description>Cameroon Multilingual (Dvorak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2414,9 +2414,9 @@
+ <layout>
+ <configItem>
+ <name>mm</name>
+- <!-- Keyboard indicator for Burmese layouts -->
+- <_shortDescription>my</_shortDescription>
+- <_description>Burmese</_description>
++
++ <shortDescription>my</shortDescription>
++ <description>Burmese</description>
+ <languageList>
+ <iso639Id>mya</iso639Id>
+ </languageList>
+@@ -2426,9 +2426,9 @@
+ <layout>
+ <configItem>
+ <name>ca</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Canada)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Canada)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -2437,43 +2437,43 @@
+ <variant>
+ <configItem>
+ <name>fr-dvorak</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Canada, Dvorak)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Canada, Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr-legacy</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Canada, legacy)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Canada, legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multix</name>
+- <_description>Canadian Multilingual</_description>
++ <description>Canadian Multilingual</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multi</name>
+- <_description>Canadian Multilingual (first part)</_description>
++ <description>Canadian Multilingual (first part)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multi-2gr</name>
+- <_description>Canadian Multilingual (second part)</_description>
++ <description>Canadian Multilingual (second part)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ike</name>
+- <!-- Keyboard indicator for Inuktikut layouts -->
+- <_shortDescription>ike</_shortDescription>
+- <_description>Inuktitut</_description>
++
++ <shortDescription>ike</shortDescription>
++ <description>Inuktitut</description>
+ <languageList>
+ <iso639Id>iku</iso639Id>
+ </languageList>
+@@ -2482,9 +2482,9 @@
+ <variant>
+ <configItem>
+ <name>eng</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (Canada)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (Canada)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -2495,9 +2495,9 @@
+ <layout>
+ <configItem>
+ <name>cd</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Democratic Republic of the Congo)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Democratic Republic of the Congo)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -2507,9 +2507,9 @@
+ <layout>
+ <configItem>
+ <name>cn</name>
+- <!-- Keyboard indicator for Chinese layouts -->
+- <_shortDescription>zh</_shortDescription>
+- <_description>Chinese</_description>
++
++ <shortDescription>zh</shortDescription>
++ <description>Chinese</description>
+ <languageList>
+ <iso639Id>chi</iso639Id>
+ </languageList>
+@@ -2518,7 +2518,7 @@
+ <variant>
+ <configItem>
+ <name>tib</name>
+- <_description>Tibetan</_description>
++ <description>Tibetan</description>
+ <languageList>
+ <iso639Id>tib</iso639Id>
+ </languageList>
+@@ -2527,7 +2527,7 @@
+ <variant>
+ <configItem>
+ <name>tib_asciinum</name>
+- <_description>Tibetan (with ASCII numerals)</_description>
++ <description>Tibetan (with ASCII numerals)</description>
+ <languageList>
+ <iso639Id>tib</iso639Id>
+ </languageList>
+@@ -2536,8 +2536,8 @@
+ <variant>
+ <configItem>
+ <name>ug</name>
+- <_shortDescription>ug</_shortDescription>
+- <_description>Uyghur</_description>
++ <shortDescription>ug</shortDescription>
++ <description>Uyghur</description>
+ <languageList>
+ <iso639Id>ug</iso639Id>
+ </languageList>
+@@ -2548,9 +2548,9 @@
+ <layout>
+ <configItem>
+ <name>hr</name>
+- <!-- Keyboard indicator for Croatian layouts -->
+- <_shortDescription>hr</_shortDescription>
+- <_description>Croatian</_description>
++
++ <shortDescription>hr</shortDescription>
++ <description>Croatian</description>
+ <languageList>
+ <iso639Id>hrv</iso639Id>
+ </languageList>
+@@ -2559,25 +2559,25 @@
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+- <_description>Croatian (use guillemets for quotes)</_description>
++ <description>Croatian (use guillemets for quotes)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+- <_description>Croatian (use Croatian digraphs)</_description>
++ <description>Croatian (use Croatian digraphs)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicodeus</name>
+- <_description>Croatian (US keyboard with Croatian digraphs)</_description>
++ <description>Croatian (US keyboard with Croatian digraphs)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Croatian (US keyboard with Croatian letters)</_description>
++ <description>Croatian (US keyboard with Croatian letters)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2585,9 +2585,9 @@
+ <layout>
+ <configItem>
+ <name>cz</name>
+- <!-- Keyboard indicator for Chech layouts -->
+- <_shortDescription>cs</_shortDescription>
+- <_description>Czech</_description>
++
++ <shortDescription>cs</shortDescription>
++ <description>Czech</description>
+ <languageList>
+ <iso639Id>cze</iso639Id>
+ </languageList>
+@@ -2596,31 +2596,31 @@
+ <variant>
+ <configItem>
+ <name>bksl</name>
+- <_description>Czech (with &lt;\|&gt; key)</_description>
++ <description>Czech (with &lt;\|&gt; key)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>Czech (qwerty)</_description>
++ <description>Czech (qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_bksl</name>
+- <_description>Czech (qwerty, extended Backslash)</_description>
++ <description>Czech (qwerty, extended Backslash)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ucw</name>
+- <_description>Czech (UCW layout, accented letters only)</_description>
++ <description>Czech (UCW layout, accented letters only)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-ucw</name>
+- <_description>Czech (US Dvorak with CZ UCW support)</_description>
++ <description>Czech (US Dvorak with CZ UCW support)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2628,9 +2628,9 @@
+ <layout>
+ <configItem>
+ <name>dk</name>
+- <!-- Keyboard indicator for Danish layouts -->
+- <_shortDescription>da</_shortDescription>
+- <_description>Danish</_description>
++
++ <shortDescription>da</shortDescription>
++ <description>Danish</description>
+ <languageList>
+ <iso639Id>dan</iso639Id>
+ </languageList>
+@@ -2639,25 +2639,25 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Danish (eliminate dead keys)</_description>
++ <description>Danish (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Danish (Macintosh)</_description>
++ <description>Danish (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+- <_description>Danish (Macintosh, eliminate dead keys)</_description>
++ <description>Danish (Macintosh, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Danish (Dvorak)</_description>
++ <description>Danish (Dvorak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2665,9 +2665,9 @@
+ <layout>
+ <configItem>
+ <name>nl</name>
+- <!-- Keyboard indicator for Dutch layouts -->
+- <_shortDescription>nl</_shortDescription>
+- <_description>Dutch</_description>
++
++ <shortDescription>nl</shortDescription>
++ <description>Dutch</description>
+ <languageList>
+ <iso639Id>nld</iso639Id>
+ </languageList>
+@@ -2676,19 +2676,19 @@
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Dutch (Sun dead keys)</_description>
++ <description>Dutch (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Dutch (Macintosh)</_description>
++ <description>Dutch (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std</name>
+- <_description>Dutch (standard)</_description>
++ <description>Dutch (standard)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2696,9 +2696,9 @@
+ <layout>
+ <configItem>
+ <name>bt</name>
+- <!-- Keyboard indicator for Dzongkha layouts -->
+- <_shortDescription>dz</_shortDescription>
+- <_description>Dzongkha</_description>
++
++ <shortDescription>dz</shortDescription>
++ <description>Dzongkha</description>
+ <languageList>
+ <iso639Id>dzo</iso639Id>
+ </languageList>
+@@ -2707,9 +2707,9 @@
+ <layout>
+ <configItem>
+ <name>ee</name>
+- <!-- Keyboard indicator for Estonian layouts -->
+- <_shortDescription>et</_shortDescription>
+- <_description>Estonian</_description>
++
++ <shortDescription>et</shortDescription>
++ <description>Estonian</description>
+ <languageList>
+ <iso639Id>est</iso639Id>
+ </languageList>
+@@ -2718,19 +2718,19 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Estonian (eliminate dead keys)</_description>
++ <description>Estonian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Estonian (Dvorak)</_description>
++ <description>Estonian (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Estonian (US keyboard with Estonian letters)</_description>
++ <description>Estonian (US keyboard with Estonian letters)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2738,9 +2738,9 @@
+ <layout>
+ <configItem>
+ <name>ir</name>
+- <!-- Keyboard indicator for Persian layouts -->
+- <_shortDescription>fa</_shortDescription>
+- <_description>Persian</_description>
++
++ <shortDescription>fa</shortDescription>
++ <description>Persian</description>
+ <languageList>
+ <iso639Id>per</iso639Id>
+ </languageList>
+@@ -2749,15 +2749,15 @@
+ <variant>
+ <configItem>
+ <name>pes_keypad</name>
+- <_description>Persian (with Persian Keypad)</_description>
++ <description>Persian (with Persian Keypad)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iran, Latin Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iran, Latin Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2766,9 +2766,9 @@
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iran, F)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iran, F)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2777,9 +2777,9 @@
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iran, Latin Alt-Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iran, Latin Alt-Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2788,9 +2788,9 @@
+ <variant>
+ <configItem>
+ <name>ku_ara</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iran, Arabic-Latin)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iran, Arabic-Latin)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2801,9 +2801,9 @@
+ <layout>
+ <configItem>
+ <name>iq</name>
+- <!-- Keyboard indicator for Iraqi layouts -->
+- <_shortDescription>ar</_shortDescription>
+- <_description>Iraqi</_description>
++
++ <shortDescription>ar</shortDescription>
++ <description>Iraqi</description>
+ <languageList><iso639Id>ara</iso639Id>
+ <iso639Id>kur</iso639Id></languageList>
+ </configItem>
+@@ -2811,9 +2811,9 @@
+ <variant>
+ <configItem>
+ <name>ku</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iraq, Latin Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iraq, Latin Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2822,9 +2822,9 @@
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iraq, F)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iraq, F)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2833,9 +2833,9 @@
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iraq, Latin Alt-Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iraq, Latin Alt-Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2844,9 +2844,9 @@
+ <variant>
+ <configItem>
+ <name>ku_ara</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Iraq, Arabic-Latin)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Iraq, Arabic-Latin)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -2857,9 +2857,9 @@
+ <layout>
+ <configItem>
+ <name>fo</name>
+- <!-- Keyboard indicator for Faroese layouts -->
+- <_shortDescription>fo</_shortDescription>
+- <_description>Faroese</_description>
++
++ <shortDescription>fo</shortDescription>
++ <description>Faroese</description>
+ <languageList>
+ <iso639Id>fao</iso639Id>
+ </languageList>
+@@ -2868,7 +2868,7 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Faroese (eliminate dead keys)</_description>
++ <description>Faroese (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2876,9 +2876,9 @@
+ <layout>
+ <configItem>
+ <name>fi</name>
+- <!-- Keyboard indicator for Finnish layouts -->
+- <_shortDescription>fi</_shortDescription>
+- <_description>Finnish</_description>
++
++ <shortDescription>fi</shortDescription>
++ <description>Finnish</description>
+ <languageList>
+ <iso639Id>fin</iso639Id>
+ </languageList>
+@@ -2887,26 +2887,26 @@
+ <variant>
+ <configItem>
+ <name>classic</name>
+- <_description>Finnish (classic)</_description>
++ <description>Finnish (classic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Finnish (classic, eliminate dead keys)</_description>
++ <description>Finnish (classic, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi</name>
+- <_description>Northern Saami (Finland)</_description>
++ <description>Northern Saami (Finland)</description>
+ <languageList><iso639Id>sme</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Finnish (Macintosh)</_description>
++ <description>Finnish (Macintosh)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -2914,9 +2914,9 @@
+ <layout>
+ <configItem>
+ <name>fr</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -2925,91 +2925,91 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>French (eliminate dead keys)</_description>
++ <description>French (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>French (Sun dead keys)</_description>
++ <description>French (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss</name>
+- <_description>French (alternative)</_description>
++ <description>French (alternative)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_latin9</name>
+- <_description>French (alternative, Latin-9 only)</_description>
++ <description>French (alternative, Latin-9 only)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_nodeadkeys</name>
+- <_description>French (alternative, eliminate dead keys)</_description>
++ <description>French (alternative, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_sundeadkeys</name>
+- <_description>French (alternative, Sun dead keys)</_description>
++ <description>French (alternative, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9</name>
+- <_description>French (legacy, alternative)</_description>
++ <description>French (legacy, alternative)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9_nodeadkeys</name>
+- <_description>French (legacy, alternative, eliminate dead keys)</_description>
++ <description>French (legacy, alternative, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9_sundeadkeys</name>
+- <_description>French (legacy, alternative, Sun dead keys)</_description>
++ <description>French (legacy, alternative, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bepo</name>
+- <_description>French (Bepo, ergonomic, Dvorak way)</_description>
++ <description>French (Bepo, ergonomic, Dvorak way)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bepo_latin9</name>
+- <_description>French (Bepo, ergonomic, Dvorak way, Latin-9 only)</_description>
++ <description>French (Bepo, ergonomic, Dvorak way, Latin-9 only)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>French (Dvorak)</_description>
++ <description>French (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>French (Macintosh)</_description>
++ <description>French (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bre</name>
+- <_description>French (Breton)</_description>
++ <description>French (Breton)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oci</name>
+- <_description>Occitan</_description>
++ <description>Occitan</description>
+ <languageList>
+ <iso639Id>oci</iso639Id>
+ </languageList>
+@@ -3018,7 +3018,7 @@
+ <variant>
+ <configItem>
+ <name>geo</name>
+- <_description>Georgian (France, AZERTY Tskapo)</_description>
++ <description>Georgian (France, AZERTY Tskapo)</description>
+ <languageList>
+ <iso639Id>geo</iso639Id>
+ </languageList>
+@@ -3029,9 +3029,9 @@
+ <layout>
+ <configItem>
+ <name>gh</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (Ghana)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (Ghana)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -3040,15 +3040,15 @@
+ <variant>
+ <configItem>
+ <name>generic</name>
+- <_description>English (Ghana, multilingual)</_description>
++ <description>English (Ghana, multilingual)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>akan</name>
+- <!-- Keyboard indicator for Akan layouts -->
+- <_shortDescription>ak</_shortDescription>
+- <_description>Akan</_description>
++
++ <shortDescription>ak</shortDescription>
++ <description>Akan</description>
+ <languageList>
+ <iso639Id>aka</iso639Id>
+ </languageList>
+@@ -3057,9 +3057,9 @@
+ <variant>
+ <configItem>
+ <name>ewe</name>
+- <!-- Keyboard indicator for Ewe layouts -->
+- <_shortDescription>ee</_shortDescription>
+- <_description>Ewe</_description>
++
++ <shortDescription>ee</shortDescription>
++ <description>Ewe</description>
+ <languageList>
+ <iso639Id>ewe</iso639Id>
+ </languageList>
+@@ -3068,9 +3068,9 @@
+ <variant>
+ <configItem>
+ <name>fula</name>
+- <!-- Keyboard indicator for Fula layouts -->
+- <_shortDescription>ff</_shortDescription>
+- <_description>Fula</_description>
++
++ <shortDescription>ff</shortDescription>
++ <description>Fula</description>
+ <languageList>
+ <iso639Id>ful</iso639Id>
+ </languageList>
+@@ -3079,9 +3079,9 @@
+ <variant>
+ <configItem>
+ <name>ga</name>
+- <!-- Keyboard indicator for Ga layouts -->
+- <_shortDescription>gaa</_shortDescription>
+- <_description>Ga</_description>
++
++ <shortDescription>gaa</shortDescription>
++ <description>Ga</description>
+ <languageList>
+ <iso639Id>gaa</iso639Id>
+ </languageList>
+@@ -3090,9 +3090,9 @@
+ <variant>
+ <configItem>
+ <name>hausa</name>
+- <!-- Keyboard indicator for Hausa layouts -->
+- <_shortDescription>ha</_shortDescription>
+- <_description>Hausa</_description>
++
++ <shortDescription>ha</shortDescription>
++ <description>Hausa</description>
+ <languageList>
+ <iso639Id>hau</iso639Id>
+ </languageList>
+@@ -3101,9 +3101,9 @@
+ <variant>
+ <configItem>
+ <name>avn</name>
+- <!-- Keyboard indicator for Avatime layouts -->
+- <_shortDescription>avn</_shortDescription>
+- <_description>Avatime</_description>
++
++ <shortDescription>avn</shortDescription>
++ <description>Avatime</description>
+ <languageList>
+ <iso639Id>avn</iso639Id>
+ </languageList>
+@@ -3112,7 +3112,7 @@
+ <variant>
+ <configItem>
+ <name>gillbt</name>
+- <_description>English (Ghana, GILLBT)</_description>
++ <description>English (Ghana, GILLBT)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3120,9 +3120,9 @@
+ <layout>
+ <configItem>
+ <name>gn</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Guinea)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Guinea)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -3132,9 +3132,9 @@
+ <layout>
+ <configItem>
+ <name>ge</name>
+- <!-- Keyboard indicator for Georgian layouts -->
+- <_shortDescription>ka</_shortDescription>
+- <_description>Georgian</_description>
++
++ <shortDescription>ka</shortDescription>
++ <description>Georgian</description>
+ <languageList>
+ <iso639Id>geo</iso639Id>
+ </languageList>
+@@ -3143,21 +3143,21 @@
+ <variant>
+ <configItem>
+ <name>ergonomic</name>
+- <_description>Georgian (ergonomic)</_description>
++ <description>Georgian (ergonomic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mess</name>
+- <_description>Georgian (MESS)</_description>
++ <description>Georgian (MESS)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ru</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Georgia)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Georgia)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -3166,7 +3166,7 @@
+ <variant>
+ <configItem>
+ <name>os</name>
+- <_description>Ossetian (Georgia)</_description>
++ <description>Ossetian (Georgia)</description>
+ <languageList>
+ <iso639Id>oss</iso639Id>
+ </languageList>
+@@ -3177,9 +3177,9 @@
+ <layout>
+ <configItem>
+ <name>de</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German</description>
+ <languageList>
+ <iso639Id>ger</iso639Id>
+ </languageList>
+@@ -3188,75 +3188,75 @@
+ <variant>
+ <configItem>
+ <name>deadacute</name>
+- <_description>German (dead acute)</_description>
++ <description>German (dead acute)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>deadgraveacute</name>
+- <_description>German (dead grave acute)</_description>
++ <description>German (dead grave acute)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>German (eliminate dead keys)</_description>
++ <description>German (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>T3</name>
+- <_description>German (T3)</_description>
++ <description>German (T3)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ro</name>
+- <_description>Romanian (Germany)</_description>
++ <description>Romanian (Germany)</description>
+ <languageList><iso639Id>rum</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ro_nodeadkeys</name>
+- <_description>Romanian (Germany, eliminate dead keys)</_description>
++ <description>Romanian (Germany, eliminate dead keys)</description>
+ <languageList><iso639Id>rum</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>German (Dvorak)</_description>
++ <description>German (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>German (Sun dead keys)</_description>
++ <description>German (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>neo</name>
+- <_description>German (Neo 2)</_description>
++ <description>German (Neo 2)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>German (Macintosh)</_description>
++ <description>German (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+- <_description>German (Macintosh, eliminate dead keys)</_description>
++ <description>German (Macintosh, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dsb</name>
+- <_description>Lower Sorbian</_description>
++ <description>Lower Sorbian</description>
+ <languageList>
+ <iso639Id>dsb</iso639Id>
+ </languageList>
+@@ -3265,7 +3265,7 @@
+ <variant>
+ <configItem>
+ <name>dsb_qwertz</name>
+- <_description>Lower Sorbian (qwertz)</_description>
++ <description>Lower Sorbian (qwertz)</description>
+ <languageList>
+ <iso639Id>dsb</iso639Id>
+ </languageList>
+@@ -3274,15 +3274,15 @@
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>German (qwerty)</_description>
++ <description>German (qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ru</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Germany, phonetic)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Germany, phonetic)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -3291,7 +3291,7 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>German (legacy)</_description>
++ <description>German (legacy)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3299,9 +3299,9 @@
+ <layout>
+ <configItem>
+ <name>gr</name>
+- <!-- Keyboard indicator for Greek layouts -->
+- <_shortDescription>gr</_shortDescription>
+- <_description>Greek</_description>
++
++ <shortDescription>gr</shortDescription>
++ <description>Greek</description>
+ <languageList>
+ <iso639Id>gre</iso639Id>
+ </languageList>
+@@ -3310,25 +3310,25 @@
+ <variant>
+ <configItem>
+ <name>simple</name>
+- <_description>Greek (simple)</_description>
++ <description>Greek (simple)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>extended</name>
+- <_description>Greek (extended)</_description>
++ <description>Greek (extended)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Greek (eliminate dead keys)</_description>
++ <description>Greek (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>polytonic</name>
+- <_description>Greek (polytonic)</_description>
++ <description>Greek (polytonic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3336,9 +3336,9 @@
+ <layout>
+ <configItem>
+ <name>hu</name>
+- <!-- Keyboard indicator for Hungarian layouts -->
+- <_shortDescription>hu</_shortDescription>
+- <_description>Hungarian</_description>
++
++ <shortDescription>hu</shortDescription>
++ <description>Hungarian</description>
+ <languageList>
+ <iso639Id>hun</iso639Id>
+ </languageList>
+@@ -3347,115 +3347,115 @@
+ <variant>
+ <configItem>
+ <name>standard</name>
+- <_description>Hungarian (standard)</_description>
++ <description>Hungarian (standard)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Hungarian (eliminate dead keys)</_description>
++ <description>Hungarian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>Hungarian (qwerty)</_description>
++ <description>Hungarian (qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_comma_dead</name>
+- <_description>Hungarian (101/qwertz/comma/dead keys)</_description>
++ <description>Hungarian (101/qwertz/comma/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_comma_nodead</name>
+- <_description>Hungarian (101/qwertz/comma/eliminate dead keys)</_description>
++ <description>Hungarian (101/qwertz/comma/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_dot_dead</name>
+- <_description>Hungarian (101/qwertz/dot/dead keys)</_description>
++ <description>Hungarian (101/qwertz/dot/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_dot_nodead</name>
+- <_description>Hungarian (101/qwertz/dot/eliminate dead keys)</_description>
++ <description>Hungarian (101/qwertz/dot/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_comma_dead</name>
+- <_description>Hungarian (101/qwerty/comma/dead keys)</_description>
++ <description>Hungarian (101/qwerty/comma/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_comma_nodead</name>
+- <_description>Hungarian (101/qwerty/comma/eliminate dead keys)</_description>
++ <description>Hungarian (101/qwerty/comma/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_dot_dead</name>
+- <_description>Hungarian (101/qwerty/dot/dead keys)</_description>
++ <description>Hungarian (101/qwerty/dot/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_dot_nodead</name>
+- <_description>Hungarian (101/qwerty/dot/eliminate dead keys)</_description>
++ <description>Hungarian (101/qwerty/dot/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_comma_dead</name>
+- <_description>Hungarian (102/qwertz/comma/dead keys)</_description>
++ <description>Hungarian (102/qwertz/comma/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_comma_nodead</name>
+- <_description>Hungarian (102/qwertz/comma/eliminate dead keys)</_description>
++ <description>Hungarian (102/qwertz/comma/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_dot_dead</name>
+- <_description>Hungarian (102/qwertz/dot/dead keys)</_description>
++ <description>Hungarian (102/qwertz/dot/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_dot_nodead</name>
+- <_description>Hungarian (102/qwertz/dot/eliminate dead keys)</_description>
++ <description>Hungarian (102/qwertz/dot/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_comma_dead</name>
+- <_description>Hungarian (102/qwerty/comma/dead keys)</_description>
++ <description>Hungarian (102/qwerty/comma/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_comma_nodead</name>
+- <_description>Hungarian (102/qwerty/comma/eliminate dead keys)</_description>
++ <description>Hungarian (102/qwerty/comma/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_dot_dead</name>
+- <_description>Hungarian (102/qwerty/dot/dead keys)</_description>
++ <description>Hungarian (102/qwerty/dot/dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_dot_nodead</name>
+- <_description>Hungarian (102/qwerty/dot/eliminate dead keys)</_description>
++ <description>Hungarian (102/qwerty/dot/eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3463,9 +3463,9 @@
+ <layout>
+ <configItem>
+ <name>is</name>
+- <!-- Keyboard indicator for Icelandic layouts -->
+- <_shortDescription>is</_shortDescription>
+- <_description>Icelandic</_description>
++
++ <shortDescription>is</shortDescription>
++ <description>Icelandic</description>
+ <languageList>
+ <iso639Id>ice</iso639Id>
+ </languageList>
+@@ -3474,25 +3474,25 @@
+ <variant>
+ <configItem>
+ <name>Sundeadkeys</name>
+- <_description>Icelandic (Sun dead keys)</_description>
++ <description>Icelandic (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Icelandic (eliminate dead keys)</_description>
++ <description>Icelandic (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Icelandic (Macintosh)</_description>
++ <description>Icelandic (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Icelandic (Dvorak)</_description>
++ <description>Icelandic (Dvorak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3500,9 +3500,9 @@
+ <layout>
+ <configItem>
+ <name>il</name>
+- <!-- Keyboard indicator for Hebrew layouts -->
+- <_shortDescription>he</_shortDescription>
+- <_description>Hebrew</_description>
++
++ <shortDescription>he</shortDescription>
++ <description>Hebrew</description>
+ <languageList>
+ <iso639Id>heb</iso639Id>
+ </languageList>
+@@ -3511,19 +3511,19 @@
+ <variant>
+ <configItem>
+ <name>lyx</name>
+- <_description>Hebrew (lyx)</_description>
++ <description>Hebrew (lyx)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Hebrew (phonetic)</_description>
++ <description>Hebrew (phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>biblical</name>
+- <_description>Hebrew (Biblical, Tiro)</_description>
++ <description>Hebrew (Biblical, Tiro)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3531,9 +3531,9 @@
+ <layout>
+ <configItem>
+ <name>it</name>
+- <!-- Keyboard indicator for Italian layouts -->
+- <_shortDescription>it</_shortDescription>
+- <_description>Italian</_description>
++
++ <shortDescription>it</shortDescription>
++ <description>Italian</description>
+ <languageList>
+ <iso639Id>ita</iso639Id>
+ </languageList>
+@@ -3542,25 +3542,25 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Italian (eliminate dead keys)</_description>
++ <description>Italian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Italian (Macintosh)</_description>
++ <description>Italian (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Italian (US keyboard with Italian letters)</_description>
++ <description>Italian (US keyboard with Italian letters)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>geo</name>
+- <_description>Georgian (Italy)</_description>
++ <description>Georgian (Italy)</description>
+ <languageList>
+ <iso639Id>geo</iso639Id>
+ </languageList>
+@@ -3569,7 +3569,7 @@
+ <variant>
+ <configItem>
+ <name>ibm</name>
+- <_description>Italian (IBM 142)</_description>
++ <description>Italian (IBM 142)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3577,9 +3577,9 @@
+ <layout>
+ <configItem>
+ <name>jp</name>
+- <!-- Keyboard indicator for Japanese layouts -->
+- <_shortDescription>ja</_shortDescription>
+- <_description>Japanese</_description>
++
++ <shortDescription>ja</shortDescription>
++ <description>Japanese</description>
+ <languageList>
+ <iso639Id>jpn</iso639Id>
+ </languageList>
+@@ -3588,31 +3588,31 @@
+ <variant>
+ <configItem>
+ <name>kana</name>
+- <_description>Japanese (Kana)</_description>
++ <description>Japanese (Kana)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>kana86</name>
+- <_description>Japanese (Kana 86)</_description>
++ <description>Japanese (Kana 86)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>OADG109A</name>
+- <_description>Japanese (OADG 109A)</_description>
++ <description>Japanese (OADG 109A)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Japanese (Macintosh)</_description>
++ <description>Japanese (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Japanese (Dvorak)</_description>
++ <description>Japanese (Dvorak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3620,9 +3620,9 @@
+ <layout>
+ <configItem>
+ <name>kg</name>
+- <!-- Keyboard indicator for Kyrgyz layouts -->
+- <_shortDescription>ki</_shortDescription>
+- <_description>Kyrgyz</_description>
++
++ <shortDescription>ki</shortDescription>
++ <description>Kyrgyz</description>
+ <languageList>
+ <iso639Id>kir</iso639Id>
+ </languageList>
+@@ -3631,7 +3631,7 @@
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Kyrgyz (phonetic)</_description>
++ <description>Kyrgyz (phonetic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3639,9 +3639,9 @@
+ <layout>
+ <configItem>
+ <name>kh</name>
+- <!-- Keyboard indicator for Khmer layouts -->
+- <_shortDescription>km</_shortDescription>
+- <_description>Khmer (Cambodia)</_description>
++
++ <shortDescription>km</shortDescription>
++ <description>Khmer (Cambodia)</description>
+ <languageList>
+ <iso639Id>khm</iso639Id>
+ </languageList>
+@@ -3651,9 +3651,9 @@
+ <layout>
+ <configItem>
+ <name>kz</name>
+- <!-- Keyboard indicator for Kazakh layouts -->
+- <_shortDescription>kk</_shortDescription>
+- <_description>Kazakh</_description>
++
++ <shortDescription>kk</shortDescription>
++ <description>Kazakh</description>
+ <languageList>
+ <iso639Id>kaz</iso639Id>
+ </languageList>
+@@ -3662,9 +3662,9 @@
+ <variant>
+ <configItem>
+ <name>ruskaz</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Kazakhstan, with Kazakh)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Kazakhstan, with Kazakh)</description>
+ <languageList><iso639Id>kaz</iso639Id>
+ <iso639Id>rus</iso639Id></languageList>
+ </configItem>
+@@ -3672,7 +3672,7 @@
+ <variant>
+ <configItem>
+ <name>kazrus</name>
+- <_description>Kazakh (with Russian)</_description>
++ <description>Kazakh (with Russian)</description>
+ <languageList><iso639Id>kaz</iso639Id>
+ <iso639Id>rus</iso639Id></languageList>
+ </configItem>
+@@ -3682,9 +3682,9 @@
+ <layout>
+ <configItem>
+ <name>la</name>
+- <!-- Keyboard indicator for Lao layouts -->
+- <_shortDescription>lo</_shortDescription>
+- <_description>Lao</_description>
++
++ <shortDescription>lo</shortDescription>
++ <description>Lao</description>
+ <languageList>
+ <iso639Id>lao</iso639Id>
+ </languageList>
+@@ -3693,7 +3693,7 @@
+ <variant>
+ <configItem>
+ <name>stea</name>
+- <_description>Lao (STEA proposed standard layout)</_description>
++ <description>Lao (STEA proposed standard layout)</description>
+ <languageList><iso639Id>lao</iso639Id>
+ </languageList>
+ </configItem>
+@@ -3703,9 +3703,9 @@
+ <layout>
+ <configItem>
+ <name>latam</name>
+- <!-- Keyboard indicator for Spanish layouts -->
+- <_shortDescription>es</_shortDescription>
+- <_description>Spanish (Latin American)</_description>
++
++ <shortDescription>es</shortDescription>
++ <description>Spanish (Latin American)</description>
+ <countryList>
+ <iso3166Id>AR</iso3166Id>
+ <iso3166Id>BO</iso3166Id>
+@@ -3737,19 +3737,19 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Spanish (Latin American, eliminate dead keys)</_description>
++ <description>Spanish (Latin American, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>deadtilde</name>
+- <_description>Spanish (Latin American, include dead tilde)</_description>
++ <description>Spanish (Latin American, include dead tilde)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Spanish (Latin American, Sun dead keys)</_description>
++ <description>Spanish (Latin American, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3757,9 +3757,9 @@
+ <layout>
+ <configItem>
+ <name>lt</name>
+- <!-- Keyboard indicator for Lithuanian layouts -->
+- <_shortDescription>lt</_shortDescription>
+- <_description>Lithuanian</_description>
++
++ <shortDescription>lt</shortDescription>
++ <description>Lithuanian</description>
+ <languageList>
+ <iso639Id>lit</iso639Id>
+ </languageList>
+@@ -3768,31 +3768,31 @@
+ <variant>
+ <configItem>
+ <name>std</name>
+- <_description>Lithuanian (standard)</_description>
++ <description>Lithuanian (standard)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Lithuanian (US keyboard with Lithuanian letters)</_description>
++ <description>Lithuanian (US keyboard with Lithuanian letters)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ibm</name>
+- <_description>Lithuanian (IBM LST 1205-92)</_description>
++ <description>Lithuanian (IBM LST 1205-92)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>lekp</name>
+- <_description>Lithuanian (LEKP)</_description>
++ <description>Lithuanian (LEKP)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>lekpa</name>
+- <_description>Lithuanian (LEKPa)</_description>
++ <description>Lithuanian (LEKPa)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3800,9 +3800,9 @@
+ <layout>
+ <configItem>
+ <name>lv</name>
+- <!-- Keyboard indicator for Latvian layouts -->
+- <_shortDescription>lv</_shortDescription>
+- <_description>Latvian</_description>
++
++ <shortDescription>lv</shortDescription>
++ <description>Latvian</description>
+ <languageList>
+ <iso639Id>lav</iso639Id>
+ </languageList>
+@@ -3811,37 +3811,37 @@
+ <variant>
+ <configItem>
+ <name>apostrophe</name>
+- <_description>Latvian (apostrophe variant)</_description>
++ <description>Latvian (apostrophe variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tilde</name>
+- <_description>Latvian (tilde variant)</_description>
++ <description>Latvian (tilde variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fkey</name>
+- <_description>Latvian (F variant)</_description>
++ <description>Latvian (F variant)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>modern</name>
+- <_description>Latvian (modern)</_description>
++ <description>Latvian (modern)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ergonomic</name>
+- <_description>Latvian (ergonomic, ŪGJRMV)</_description>
++ <description>Latvian (ergonomic, ŪGJRMV)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>adapted</name>
+- <_description>Latvian (adapted)</_description>
++ <description>Latvian (adapted)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3849,9 +3849,9 @@
+ <layout>
+ <configItem>
+ <name>mao</name>
+- <!-- Keyboard indicator for Maori layouts -->
+- <_shortDescription>mi</_shortDescription>
+- <_description>Maori</_description>
++
++ <shortDescription>mi</shortDescription>
++ <description>Maori</description>
+ <languageList>
+ <iso639Id>mao</iso639Id>
+ </languageList>
+@@ -3861,9 +3861,9 @@
+ <layout>
+ <configItem>
+ <name>me</name>
+- <!-- Keyboard indicator for Montenegrin layouts -->
+- <_shortDescription>sr</_shortDescription>
+- <_description>Montenegrin</_description>
++
++ <shortDescription>sr</shortDescription>
++ <description>Montenegrin</description>
+ <languageList>
+ <iso639Id>srp</iso639Id>
+ </languageList>
+@@ -3872,43 +3872,43 @@
+ <variant>
+ <configItem>
+ <name>cyrillic</name>
+- <_description>Montenegrin (Cyrillic)</_description>
++ <description>Montenegrin (Cyrillic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>cyrillicyz</name>
+- <_description>Montenegrin (Cyrillic, Z and ZHE swapped)</_description>
++ <description>Montenegrin (Cyrillic, Z and ZHE swapped)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicode</name>
+- <_description>Montenegrin (Latin Unicode)</_description>
++ <description>Montenegrin (Latin Unicode)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinyz</name>
+- <_description>Montenegrin (Latin qwerty)</_description>
++ <description>Montenegrin (Latin qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicodeyz</name>
+- <_description>Montenegrin (Latin Unicode qwerty)</_description>
++ <description>Montenegrin (Latin Unicode qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>cyrillicalternatequotes</name>
+- <_description>Montenegrin (Cyrillic with guillemets)</_description>
++ <description>Montenegrin (Cyrillic with guillemets)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinalternatequotes</name>
+- <_description>Montenegrin (Latin with guillemets)</_description>
++ <description>Montenegrin (Latin with guillemets)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3916,9 +3916,9 @@
+ <layout>
+ <configItem>
+ <name>mk</name>
+- <!-- Keyboard indicator for Macedonian layouts -->
+- <_shortDescription>mk</_shortDescription>
+- <_description>Macedonian</_description>
++
++ <shortDescription>mk</shortDescription>
++ <description>Macedonian</description>
+ <languageList>
+ <iso639Id>mkd</iso639Id>
+ </languageList>
+@@ -3927,7 +3927,7 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Macedonian (eliminate dead keys)</_description>
++ <description>Macedonian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3935,9 +3935,9 @@
+ <layout>
+ <configItem>
+ <name>mt</name>
+- <!-- Keyboard indicator for Maltese layouts -->
+- <_shortDescription>mt</_shortDescription>
+- <_description>Maltese</_description>
++
++ <shortDescription>mt</shortDescription>
++ <description>Maltese</description>
+ <languageList>
+ <iso639Id>mlt</iso639Id>
+ </languageList>
+@@ -3946,7 +3946,7 @@
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Maltese (with US layout)</_description>
++ <description>Maltese (with US layout)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -3954,9 +3954,9 @@
+ <layout>
+ <configItem>
+ <name>mn</name>
+- <!-- Keyboard indicator for Mongolian layouts -->
+- <_shortDescription>mn</_shortDescription>
+- <_description>Mongolian</_description>
++
++ <shortDescription>mn</shortDescription>
++ <description>Mongolian</description>
+ <languageList>
+ <iso639Id>mon</iso639Id>
+ </languageList>
+@@ -3966,9 +3966,9 @@
+ <layout>
+ <configItem>
+ <name>no</name>
+- <!-- Keyboard indicator for Norwegian layouts -->
+- <_shortDescription>no</_shortDescription>
+- <_description>Norwegian</_description>
++
++ <shortDescription>no</shortDescription>
++ <description>Norwegian</description>
+ <languageList>
+ <iso639Id>nor</iso639Id>
+ <iso639Id>nob</iso639Id>
+@@ -3979,19 +3979,19 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Norwegian (eliminate dead keys)</_description>
++ <description>Norwegian (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Norwegian (Dvorak)</_description>
++ <description>Norwegian (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi</name>
+- <_description>Northern Saami (Norway)</_description>
++ <description>Northern Saami (Norway)</description>
+ <languageList>
+ <iso639Id>sme</iso639Id>
+ </languageList>
+@@ -4000,7 +4000,7 @@
+ <variant>
+ <configItem>
+ <name>smi_nodeadkeys</name>
+- <_description>Northern Saami (Norway, eliminate dead keys)</_description>
++ <description>Northern Saami (Norway, eliminate dead keys)</description>
+ <languageList>
+ <iso639Id>sme</iso639Id>
+ </languageList>
+@@ -4009,19 +4009,19 @@
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Norwegian (Macintosh)</_description>
++ <description>Norwegian (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+- <_description>Norwegian (Macintosh, eliminate dead keys)</_description>
++ <description>Norwegian (Macintosh, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>Norwegian (Colemak)</_description>
++ <description>Norwegian (Colemak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4029,9 +4029,9 @@
+ <layout>
+ <configItem>
+ <name>pl</name>
+- <!-- Keyboard indicator for Polish layouts -->
+- <_shortDescription>pl</_shortDescription>
+- <_description>Polish</_description>
++
++ <shortDescription>pl</shortDescription>
++ <description>Polish</description>
+ <languageList>
+ <iso639Id>pol</iso639Id>
+ </languageList>
+@@ -4040,37 +4040,37 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Polish (legacy)</_description>
++ <description>Polish (legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwertz</name>
+- <_description>Polish (qwertz)</_description>
++ <description>Polish (qwertz)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Polish (Dvorak)</_description>
++ <description>Polish (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak_quotes</name>
+- <_description>Polish (Dvorak, Polish quotes on quotemark key)</_description>
++ <description>Polish (Dvorak, Polish quotes on quotemark key)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak_altquotes</name>
+- <_description>Polish (Dvorak, Polish quotes on key 1)</_description>
++ <description>Polish (Dvorak, Polish quotes on key 1)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>csb</name>
+- <_description>Kashubian</_description>
++ <description>Kashubian</description>
+ <languageList>
+ <iso639Id>csb</iso639Id>
+ </languageList>
+@@ -4086,9 +4086,9 @@
+ <variant>
+ <configItem>
+ <name>ru_phonetic_dvorak</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Poland, phonetic Dvorak)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Poland, phonetic Dvorak)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -4097,7 +4097,7 @@
+ <variant>
+ <configItem>
+ <name>dvp</name>
+- <_description>Polish (programmer Dvorak)</_description>
++ <description>Polish (programmer Dvorak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4105,9 +4105,9 @@
+ <layout>
+ <configItem>
+ <name>pt</name>
+- <!-- Keyboard indicator for Portuguese layouts -->
+- <_shortDescription>pt</_shortDescription>
+- <_description>Portuguese</_description>
++
++ <shortDescription>pt</shortDescription>
++ <description>Portuguese</description>
+ <languageList>
+ <iso639Id>por</iso639Id>
+ </languageList>
+@@ -4116,49 +4116,49 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Portuguese (eliminate dead keys)</_description>
++ <description>Portuguese (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Portuguese (Sun dead keys)</_description>
++ <description>Portuguese (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Portuguese (Macintosh)</_description>
++ <description>Portuguese (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+- <_description>Portuguese (Macintosh, eliminate dead keys)</_description>
++ <description>Portuguese (Macintosh, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_sundeadkeys</name>
+- <_description>Portuguese (Macintosh, Sun dead keys)</_description>
++ <description>Portuguese (Macintosh, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo</name>
+- <_description>Portuguese (Nativo)</_description>
++ <description>Portuguese (Nativo)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-us</name>
+- <_description>Portuguese (Nativo for US keyboards)</_description>
++ <description>Portuguese (Nativo for US keyboards)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-epo</name>
+- <_description>Esperanto (Portugal, Nativo)</_description>
++ <description>Esperanto (Portugal, Nativo)</description>
+ <languageList>
+ <iso639Id>epo</iso639Id>
+ </languageList>
+@@ -4169,9 +4169,9 @@
+ <layout>
+ <configItem>
+ <name>ro</name>
+- <!-- Keyboard indicator for Romanian layouts -->
+- <_shortDescription>ro</_shortDescription>
+- <_description>Romanian</_description>
++
++ <shortDescription>ro</shortDescription>
++ <description>Romanian</description>
+ <languageList>
+ <iso639Id>rum</iso639Id>
+ </languageList>
+@@ -4180,25 +4180,25 @@
+ <variant>
+ <configItem>
+ <name>cedilla</name>
+- <_description>Romanian (cedilla)</_description>
++ <description>Romanian (cedilla)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std</name>
+- <_description>Romanian (standard)</_description>
++ <description>Romanian (standard)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std_cedilla</name>
+- <_description>Romanian (standard cedilla)</_description>
++ <description>Romanian (standard cedilla)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>winkeys</name>
+- <_description>Romanian (WinKeys)</_description>
++ <description>Romanian (WinKeys)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4206,9 +4206,9 @@
+ <layout>
+ <configItem>
+ <name>ru</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -4217,37 +4217,37 @@
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Russian (phonetic)</_description>
++ <description>Russian (phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>phonetic_winkeys</name>
+- <_description>Russian (phonetic WinKeys)</_description>
++ <description>Russian (phonetic WinKeys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>typewriter</name>
+- <_description>Russian (typewriter)</_description>
++ <description>Russian (typewriter)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Russian (legacy)</_description>
++ <description>Russian (legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>typewriter-legacy</name>
+- <_description>Russian (typewriter, legacy)</_description>
++ <description>Russian (typewriter, legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tt</name>
+- <_description>Tatar</_description>
++ <description>Tatar</description>
+ <languageList>
+ <iso639Id>tat</iso639Id>
+ </languageList>
+@@ -4256,7 +4256,7 @@
+ <variant>
+ <configItem>
+ <name>os_legacy</name>
+- <_description>Ossetian (legacy)</_description>
++ <description>Ossetian (legacy)</description>
+ <languageList>
+ <iso639Id>oss</iso639Id>
+ </languageList>
+@@ -4265,7 +4265,7 @@
+ <variant>
+ <configItem>
+ <name>os_winkeys</name>
+- <_description>Ossetian (WinKeys)</_description>
++ <description>Ossetian (WinKeys)</description>
+ <languageList>
+ <iso639Id>oss</iso639Id>
+ </languageList>
+@@ -4274,7 +4274,7 @@
+ <variant>
+ <configItem>
+ <name>cv</name>
+- <_description>Chuvash</_description>
++ <description>Chuvash</description>
+ <languageList>
+ <iso639Id>chv</iso639Id>
+ </languageList>
+@@ -4283,7 +4283,7 @@
+ <variant>
+ <configItem>
+ <name>cv_latin</name>
+- <_description>Chuvash (Latin)</_description>
++ <description>Chuvash (Latin)</description>
+ <languageList>
+ <iso639Id>chv</iso639Id>
+ </languageList>
+@@ -4292,7 +4292,7 @@
+ <variant>
+ <configItem>
+ <name>udm</name>
+- <_description>Udmurt</_description>
++ <description>Udmurt</description>
+ <languageList>
+ <iso639Id>udm</iso639Id>
+ </languageList>
+@@ -4301,7 +4301,7 @@
+ <variant>
+ <configItem>
+ <name>kom</name>
+- <_description>Komi</_description>
++ <description>Komi</description>
+ <languageList>
+ <iso639Id>kom</iso639Id>
+ </languageList>
+@@ -4310,7 +4310,7 @@
+ <variant>
+ <configItem>
+ <name>sah</name>
+- <_description>Yakut</_description>
++ <description>Yakut</description>
+ <languageList>
+ <iso639Id>sah</iso639Id>
+ </languageList>
+@@ -4319,7 +4319,7 @@
+ <variant>
+ <configItem>
+ <name>xal</name>
+- <_description>Kalmyk</_description>
++ <description>Kalmyk</description>
+ <languageList>
+ <iso639Id>xal</iso639Id>
+ </languageList>
+@@ -4328,19 +4328,19 @@
+ <variant>
+ <configItem>
+ <name>dos</name>
+- <_description>Russian (DOS)</_description>
++ <description>Russian (DOS)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Russian (Macintosh)</_description>
++ <description>Russian (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>srp</name>
+- <_description>Serbian (Russia)</_description>
++ <description>Serbian (Russia)</description>
+ <languageList><iso639Id>rus</iso639Id>
+ <iso639Id>srp</iso639Id></languageList>
+ </configItem>
+@@ -4348,7 +4348,7 @@
+ <variant>
+ <configItem>
+ <name>bak</name>
+- <_description>Bashkirian</_description>
++ <description>Bashkirian</description>
+ <languageList>
+ <iso639Id>bak</iso639Id>
+ </languageList>
+@@ -4357,7 +4357,7 @@
+ <variant>
+ <configItem>
+ <name>chm</name>
+- <_description>Mari</_description>
++ <description>Mari</description>
+ <languageList>
+ <iso639Id>chm</iso639Id>
+ </languageList>
+@@ -4368,9 +4368,9 @@
+ <layout>
+ <configItem>
+ <name>rs</name>
+- <!-- Keyboard indicator for Serbian layouts -->
+- <_shortDescription>sr</_shortDescription>
+- <_description>Serbian</_description>
++
++ <shortDescription>sr</shortDescription>
++ <description>Serbian</description>
+ <languageList>
+ <iso639Id>srp</iso639Id>
+ </languageList>
+@@ -4379,49 +4379,49 @@
+ <variant>
+ <configItem>
+ <name>yz</name>
+- <_description>Serbian (Cyrillic, Z and ZHE swapped)</_description>
++ <description>Serbian (Cyrillic, Z and ZHE swapped)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin</name>
+- <_description>Serbian (Latin)</_description>
++ <description>Serbian (Latin)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicode</name>
+- <_description>Serbian (Latin Unicode)</_description>
++ <description>Serbian (Latin Unicode)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinyz</name>
+- <_description>Serbian (Latin qwerty)</_description>
++ <description>Serbian (Latin qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicodeyz</name>
+- <_description>Serbian (Latin Unicode qwerty)</_description>
++ <description>Serbian (Latin Unicode qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+- <_description>Serbian (Cyrillic with guillemets)</_description>
++ <description>Serbian (Cyrillic with guillemets)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinalternatequotes</name>
+- <_description>Serbian (Latin with guillemets)</_description>
++ <description>Serbian (Latin with guillemets)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rue</name>
+- <_description>Pannonian Rusyn</_description>
++ <description>Pannonian Rusyn</description>
+ <languageList>
+ <iso639Id>rue</iso639Id>
+ </languageList>
+@@ -4432,9 +4432,9 @@
+ <layout>
+ <configItem>
+ <name>si</name>
+- <!-- Keyboard indicator for Slovenian layouts -->
+- <_shortDescription>sl</_shortDescription>
+- <_description>Slovenian</_description>
++
++ <shortDescription>sl</shortDescription>
++ <description>Slovenian</description>
+ <languageList>
+ <iso639Id>slv</iso639Id>
+ </languageList>
+@@ -4443,13 +4443,13 @@
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+- <_description>Slovenian (use guillemets for quotes)</_description>
++ <description>Slovenian (use guillemets for quotes)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+- <_description>Slovenian (US keyboard with Slovenian letters)</_description>
++ <description>Slovenian (US keyboard with Slovenian letters)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4457,9 +4457,9 @@
+ <layout>
+ <configItem>
+ <name>sk</name>
+- <!-- Keyboard indicator for Slovak layouts -->
+- <_shortDescription>sk</_shortDescription>
+- <_description>Slovak</_description>
++
++ <shortDescription>sk</shortDescription>
++ <description>Slovak</description>
+ <languageList>
+ <iso639Id>slo</iso639Id>
+ </languageList>
+@@ -4468,19 +4468,19 @@
+ <variant>
+ <configItem>
+ <name>bksl</name>
+- <_description>Slovak (extended Backslash)</_description>
++ <description>Slovak (extended Backslash)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+- <_description>Slovak (qwerty)</_description>
++ <description>Slovak (qwerty)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_bksl</name>
+- <_description>Slovak (qwerty, extended Backslash)</_description>
++ <description>Slovak (qwerty, extended Backslash)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4488,9 +4488,9 @@
+ <layout>
+ <configItem>
+ <name>es</name>
+- <!-- Keyboard indicator for Spanish layouts -->
+- <_shortDescription>es</_shortDescription>
+- <_description>Spanish</_description>
++
++ <shortDescription>es</shortDescription>
++ <description>Spanish</description>
+ <languageList>
+ <iso639Id>spa</iso639Id>
+ </languageList>
+@@ -4499,31 +4499,31 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Spanish (eliminate dead keys)</_description>
++ <description>Spanish (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>deadtilde</name>
+- <_description>Spanish (include dead tilde)</_description>
++ <description>Spanish (include dead tilde)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Spanish (Sun dead keys)</_description>
++ <description>Spanish (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Spanish (Dvorak)</_description>
++ <description>Spanish (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ast</name>
+- <_description>Asturian (Spain, with bottom-dot H and bottom-dot L)</_description>
++ <description>Asturian (Spain, with bottom-dot H and bottom-dot L)</description>
+ <languageList>
+ <iso639Id>ast</iso639Id>
+ </languageList>
+@@ -4532,7 +4532,7 @@
+ <variant>
+ <configItem>
+ <name>cat</name>
+- <_description>Catalan (Spain, with middle-dot L)</_description>
++ <description>Catalan (Spain, with middle-dot L)</description>
+ <languageList>
+ <iso639Id>cat</iso639Id>
+ </languageList>
+@@ -4541,7 +4541,7 @@
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Spanish (Macintosh)</_description>
++ <description>Spanish (Macintosh)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4549,9 +4549,9 @@
+ <layout>
+ <configItem>
+ <name>se</name>
+- <!-- Keyboard indicator for Swedish layouts -->
+- <_shortDescription>sv</_shortDescription>
+- <_description>Swedish</_description>
++
++ <shortDescription>sv</shortDescription>
++ <description>Swedish</description>
+ <languageList>
+ <iso639Id>swe</iso639Id>
+ </languageList>
+@@ -4560,21 +4560,21 @@
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+- <_description>Swedish (eliminate dead keys)</_description>
++ <description>Swedish (eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Swedish (Dvorak)</_description>
++ <description>Swedish (Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rus</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Sweden, phonetic)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Sweden, phonetic)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -4583,9 +4583,9 @@
+ <variant>
+ <configItem>
+ <name>rus_nodeadkeys</name>
+- <!-- Keyboard indicator for Russian layouts -->
+- <_shortDescription>ru</_shortDescription>
+- <_description>Russian (Sweden, phonetic, eliminate dead keys)</_description>
++
++ <shortDescription>ru</shortDescription>
++ <description>Russian (Sweden, phonetic, eliminate dead keys)</description>
+ <languageList>
+ <iso639Id>rus</iso639Id>
+ </languageList>
+@@ -4594,7 +4594,7 @@
+ <variant>
+ <configItem>
+ <name>smi</name>
+- <_description>Northern Saami (Sweden)</_description>
++ <description>Northern Saami (Sweden)</description>
+ <languageList>
+ <iso639Id>sme</iso639Id>
+ </languageList>
+@@ -4603,19 +4603,19 @@
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>Swedish (Macintosh)</_description>
++ <description>Swedish (Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>svdvorak</name>
+- <_description>Swedish (Svdvorak)</_description>
++ <description>Swedish (Svdvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>swl</name>
+- <_description>Swedish Sign Language</_description>
++ <description>Swedish Sign Language</description>
+ <languageList><iso639Id>swl</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -4624,9 +4624,9 @@
+ <layout>
+ <configItem>
+ <name>ch</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Switzerland)</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German (Switzerland)</description>
+ <languageList><iso639Id>ger</iso639Id>
+ <iso639Id>gsw</iso639Id></languageList>
+ </configItem>
+@@ -4634,31 +4634,31 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>German (Switzerland, legacy)</_description>
++ <description>German (Switzerland, legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>de_nodeadkeys</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Switzerland, eliminate dead keys)</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German (Switzerland, eliminate dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>de_sundeadkeys</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Switzerland, Sun dead keys)</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German (Switzerland, Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Switzerland)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Switzerland)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -4667,9 +4667,9 @@
+ <variant>
+ <configItem>
+ <name>fr_nodeadkeys</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Switzerland, eliminate dead keys)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Switzerland, eliminate dead keys)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -4678,9 +4678,9 @@
+ <variant>
+ <configItem>
+ <name>fr_sundeadkeys</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Switzerland, Sun dead keys)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Switzerland, Sun dead keys)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -4689,9 +4689,9 @@
+ <variant>
+ <configItem>
+ <name>fr_mac</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Switzerland, Macintosh)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Switzerland, Macintosh)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -4700,9 +4700,9 @@
+ <variant>
+ <configItem>
+ <name>de_mac</name>
+- <!-- Keyboard indicator for German layouts -->
+- <_shortDescription>de</_shortDescription>
+- <_description>German (Switzerland, Macintosh)</_description>
++
++ <shortDescription>de</shortDescription>
++ <description>German (Switzerland, Macintosh)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4710,9 +4710,9 @@
+ <layout>
+ <configItem>
+ <name>sy</name>
+- <!-- Keyboard indicator for Arabic layouts -->
+- <_shortDescription>ar</_shortDescription>
+- <_description>Arabic (Syria)</_description>
++
++ <shortDescription>ar</shortDescription>
++ <description>Arabic (Syria)</description>
+ <languageList>
+ <iso639Id>syr</iso639Id>
+ </languageList>
+@@ -4721,25 +4721,25 @@
+ <variant>
+ <configItem>
+ <name>syc</name>
+- <!-- Keyboard indicator for Syriac layouts -->
+- <_shortDescription>syc</_shortDescription>
+- <_description>Syriac</_description>
++
++ <shortDescription>syc</shortDescription>
++ <description>Syriac</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>syc_phonetic</name>
+- <!-- Keyboard indicator for Syriac layouts -->
+- <_shortDescription>syc</_shortDescription>
+- <_description>Syriac (phonetic)</_description>
++
++ <shortDescription>syc</shortDescription>
++ <description>Syriac (phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Syria, Latin Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Syria, Latin Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4748,9 +4748,9 @@
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Syria, F)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Syria, F)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4759,9 +4759,9 @@
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Syria, Latin Alt-Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Syria, Latin Alt-Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4772,9 +4772,9 @@
+ <layout>
+ <configItem>
+ <name>tj</name>
+- <!-- Keyboard indicator for Tajik layouts -->
+- <_shortDescription>tg</_shortDescription>
+- <_description>Tajik</_description>
++
++ <shortDescription>tg</shortDescription>
++ <description>Tajik</description>
+ <languageList>
+ <iso639Id>tgk</iso639Id>
+ </languageList>
+@@ -4783,7 +4783,7 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Tajik (legacy)</_description>
++ <description>Tajik (legacy)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4791,9 +4791,9 @@
+ <layout>
+ <configItem>
+ <name>lk</name>
+- <!-- Keyboard indicator for Sinhala layouts -->
+- <_shortDescription>si</_shortDescription>
+- <_description>Sinhala (phonetic)</_description>
++
++ <shortDescription>si</shortDescription>
++ <description>Sinhala (phonetic)</description>
+ <languageList>
+ <iso639Id>sin</iso639Id>
+ </languageList>
+@@ -4802,9 +4802,9 @@
+ <variant>
+ <configItem>
+ <name>tam_unicode</name>
+- <!-- Keyboard indicator for Tamil layouts -->
+- <_shortDescription>ta</_shortDescription>
+- <_description>Tamil (Sri Lanka, Unicode)</_description>
++
++ <shortDescription>ta</shortDescription>
++ <description>Tamil (Sri Lanka, Unicode)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -4813,7 +4813,7 @@
+ <variant>
+ <configItem>
+ <name>tam_TAB</name>
+- <_description>Tamil (Sri Lanka, TAB Typewriter)</_description>
++ <description>Tamil (Sri Lanka, TAB Typewriter)</description>
+ <languageList>
+ <iso639Id>tam</iso639Id>
+ </languageList>
+@@ -4824,9 +4824,9 @@
+ <layout>
+ <configItem>
+ <name>th</name>
+- <!-- Keyboard indicator for Thai layouts -->
+- <_shortDescription>th</_shortDescription>
+- <_description>Thai</_description>
++
++ <shortDescription>th</shortDescription>
++ <description>Thai</description>
+ <languageList>
+ <iso639Id>tha</iso639Id>
+ </languageList>
+@@ -4835,13 +4835,13 @@
+ <variant>
+ <configItem>
+ <name>tis</name>
+- <_description>Thai (TIS-820.2538)</_description>
++ <description>Thai (TIS-820.2538)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>pat</name>
+- <_description>Thai (Pattachote)</_description>
++ <description>Thai (Pattachote)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -4849,9 +4849,9 @@
+ <layout>
+ <configItem>
+ <name>tr</name>
+- <!-- Keyboard indicator for Turkish layouts -->
+- <_shortDescription>tr</_shortDescription>
+- <_description>Turkish</_description>
++
++ <shortDescription>tr</shortDescription>
++ <description>Turkish</description>
+ <languageList>
+ <iso639Id>tur</iso639Id>
+ </languageList>
+@@ -4860,27 +4860,27 @@
+ <variant>
+ <configItem>
+ <name>f</name>
+- <_description>Turkish (F)</_description>
++ <description>Turkish (F)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt</name>
+- <_description>Turkish (Alt-Q)</_description>
++ <description>Turkish (Alt-Q)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+- <_description>Turkish (Sun dead keys)</_description>
++ <description>Turkish (Sun dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Turkey, Latin Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Turkey, Latin Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4889,9 +4889,9 @@
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Turkey, F)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Turkey, F)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4900,9 +4900,9 @@
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+- <!-- Keyboard indicator for Kurdish layouts -->
+- <_shortDescription>ku</_shortDescription>
+- <_description>Kurdish (Turkey, Latin Alt-Q)</_description>
++
++ <shortDescription>ku</shortDescription>
++ <description>Kurdish (Turkey, Latin Alt-Q)</description>
+ <languageList>
+ <iso639Id>kur</iso639Id>
+ </languageList>
+@@ -4911,15 +4911,15 @@
+ <variant>
+ <configItem>
+ <name>intl</name>
+- <_description>Turkish (international with dead keys)</_description>
++ <description>Turkish (international with dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>crh</name>
+- <!-- Keyboard indicator for Crimean Tatar layouts -->
+- <_shortDescription>crh</_shortDescription>
+- <_description>Crimean Tatar (Turkish Q)</_description>
++
++ <shortDescription>crh</shortDescription>
++ <description>Crimean Tatar (Turkish Q)</description>
+ <languageList>
+ <iso639Id>crh</iso639Id>
+ </languageList>
+@@ -4928,9 +4928,9 @@
+ <variant>
+ <configItem>
+ <name>crh_f</name>
+- <!-- Keyboard indicator for Crimean Tatar layouts -->
+- <_shortDescription>crh</_shortDescription>
+- <_description>Crimean Tatar (Turkish F)</_description>
++
++ <shortDescription>crh</shortDescription>
++ <description>Crimean Tatar (Turkish F)</description>
+ <languageList>
+ <iso639Id>crh</iso639Id>
+ </languageList>
+@@ -4939,9 +4939,9 @@
+ <variant>
+ <configItem>
+ <name>crh_alt</name>
+- <!-- Keyboard indicator for Crimean Tatar layouts -->
+- <_shortDescription>crh</_shortDescription>
+- <_description>Crimean Tatar (Turkish Alt-Q)</_description>
++
++ <shortDescription>crh</shortDescription>
++ <description>Crimean Tatar (Turkish Alt-Q)</description>
+ <languageList>
+ <iso639Id>crh</iso639Id>
+ </languageList>
+@@ -4952,9 +4952,9 @@
+ <layout>
+ <configItem>
+ <name>tw</name>
+- <!-- Keyboard indicator for Taiwanese layouts -->
+- <_shortDescription>zh</_shortDescription>
+- <_description>Taiwanese</_description>
++
++ <shortDescription>zh</shortDescription>
++ <description>Taiwanese</description>
+ <languageList>
+ <iso639Id>fox</iso639Id>
+ </languageList>
+@@ -4963,7 +4963,7 @@
+ <variant>
+ <configItem>
+ <name>indigenous</name>
+- <_description>Taiwanese (indigenous)</_description>
++ <description>Taiwanese (indigenous)</description>
+ <languageList>
+ <iso639Id>ami</iso639Id>
+ <iso639Id>tay</iso639Id>
+@@ -4987,9 +4987,9 @@
+ <variant>
+ <configItem>
+ <name>saisiyat</name>
+- <!-- Keyboard indicator for Saisiyat layouts -->
+- <_shortDescription>xsy</_shortDescription>
+- <_description>Saisiyat (Taiwan)</_description>
++
++ <shortDescription>xsy</shortDescription>
++ <description>Saisiyat (Taiwan)</description>
+ <languageList>
+ <iso639Id>xsy</iso639Id>
+ </languageList>
+@@ -5000,9 +5000,9 @@
+ <layout>
+ <configItem>
+ <name>ua</name>
+- <!-- Keyboard indicator for Ukranian layouts -->
+- <_shortDescription>uk</_shortDescription>
+- <_description>Ukrainian</_description>
++
++ <shortDescription>uk</shortDescription>
++ <description>Ukrainian</description>
+ <languageList>
+ <iso639Id>ukr</iso639Id>
+ </languageList>
+@@ -5011,43 +5011,43 @@
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+- <_description>Ukrainian (phonetic)</_description>
++ <description>Ukrainian (phonetic)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>typewriter</name>
+- <_description>Ukrainian (typewriter)</_description>
++ <description>Ukrainian (typewriter)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>winkeys</name>
+- <_description>Ukrainian (WinKeys)</_description>
++ <description>Ukrainian (WinKeys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Ukrainian (legacy)</_description>
++ <description>Ukrainian (legacy)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rstu</name>
+- <_description>Ukrainian (standard RSTU)</_description>
++ <description>Ukrainian (standard RSTU)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rstu_ru</name>
+- <_description>Russian (Ukraine, standard RSTU)</_description>
++ <description>Russian (Ukraine, standard RSTU)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>homophonic</name>
+- <_description>Ukrainian (homophonic)</_description>
++ <description>Ukrainian (homophonic)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5055,9 +5055,9 @@
+ <layout>
+ <configItem>
+ <name>gb</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (UK)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (UK)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5066,43 +5066,43 @@
+ <variant>
+ <configItem>
+ <name>extd</name>
+- <_description>English (UK, extended WinKeys)</_description>
++ <description>English (UK, extended WinKeys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>intl</name>
+- <_description>English (UK, international with dead keys)</_description>
++ <description>English (UK, international with dead keys)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>English (UK, Dvorak)</_description>
++ <description>English (UK, Dvorak)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorakukp</name>
+- <_description>English (UK, Dvorak with UK punctuation)</_description>
++ <description>English (UK, Dvorak with UK punctuation)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+- <_description>English (UK, Macintosh)</_description>
++ <description>English (UK, Macintosh)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_intl</name>
+- <_description>English (UK, Macintosh international)</_description>
++ <description>English (UK, Macintosh international)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>English (UK, Colemak)</_description>
++ <description>English (UK, Colemak)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5110,9 +5110,9 @@
+ <layout>
+ <configItem>
+ <name>uz</name>
+- <!-- Keyboard indicator for Uzbek layouts -->
+- <_shortDescription>uz</_shortDescription>
+- <_description>Uzbek</_description>
++
++ <shortDescription>uz</shortDescription>
++ <description>Uzbek</description>
+ <languageList>
+ <iso639Id>uzb</iso639Id>
+ </languageList>
+@@ -5121,7 +5121,7 @@
+ <variant>
+ <configItem>
+ <name>latin</name>
+- <_description>Uzbek (Latin)</_description>
++ <description>Uzbek (Latin)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5129,9 +5129,9 @@
+ <layout>
+ <configItem>
+ <name>vn</name>
+- <!-- Keyboard indicator for Vietnamese layouts -->
+- <_shortDescription>vi</_shortDescription>
+- <_description>Vietnamese</_description>
++
++ <shortDescription>vi</shortDescription>
++ <description>Vietnamese</description>
+ <languageList>
+ <iso639Id>vie</iso639Id>
+ </languageList>
+@@ -5141,9 +5141,9 @@
+ <layout>
+ <configItem>
+ <name>kr</name>
+- <!-- Keyboard indicator for Korean layouts -->
+- <_shortDescription>ko</_shortDescription>
+- <_description>Korean</_description>
++
++ <shortDescription>ko</shortDescription>
++ <description>Korean</description>
+ <languageList>
+ <iso639Id>kor</iso639Id>
+ </languageList>
+@@ -5152,7 +5152,7 @@
+ <variant>
+ <configItem>
+ <name>kr104</name>
+- <_description>Korean (101/104 key compatible)</_description>
++ <description>Korean (101/104 key compatible)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5160,9 +5160,9 @@
+ <layout>
+ <configItem>
+ <name>nec_vndr/jp</name>
+- <!-- Keyboard indicator for Japanese layouts -->
+- <_shortDescription>ja</_shortDescription>
+- <_description>Japanese (PC-98xx Series)</_description>
++
++ <shortDescription>ja</shortDescription>
++ <description>Japanese (PC-98xx Series)</description>
+ <countryList>
+ <iso3166Id>JP</iso3166Id>
+ </countryList>
+@@ -5175,9 +5175,9 @@
+ <layout>
+ <configItem>
+ <name>ie</name>
+- <!-- Keyboard indicator for Irish layouts -->
+- <_shortDescription>ie</_shortDescription>
+- <_description>Irish</_description>
++
++ <shortDescription>ie</shortDescription>
++ <description>Irish</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5186,7 +5186,7 @@
+ <variant>
+ <configItem>
+ <name>CloGaelach</name>
+- <_description>CloGaelach</_description>
++ <description>CloGaelach</description>
+ <languageList>
+ <iso639Id>gle</iso639Id>
+ </languageList>
+@@ -5195,13 +5195,13 @@
+ <variant>
+ <configItem>
+ <name>UnicodeExpert</name>
+- <_description>Irish (UnicodeExpert)</_description>
++ <description>Irish (UnicodeExpert)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ogam</name>
+- <_description>Ogham</_description>
++ <description>Ogham</description>
+ <languageList>
+ <iso639Id>sga</iso639Id>
+ </languageList>
+@@ -5210,7 +5210,7 @@
+ <variant>
+ <configItem>
+ <name>ogam_is434</name>
+- <_description>Ogham (IS434)</_description>
++ <description>Ogham (IS434)</description>
+ <languageList>
+ <iso639Id>sga</iso639Id>
+ </languageList>
+@@ -5221,9 +5221,9 @@
+ <layout>
+ <configItem>
+ <name>pk</name>
+- <!-- Keyboard indicator for Urdu layouts -->
+- <_shortDescription>ur</_shortDescription>
+- <_description>Urdu (Pakistan)</_description>
++
++ <shortDescription>ur</shortDescription>
++ <description>Urdu (Pakistan)</description>
+ <languageList>
+ <iso639Id>urd</iso639Id>
+ </languageList>
+@@ -5232,20 +5232,20 @@
+ <variant>
+ <configItem>
+ <name>urd-crulp</name>
+- <_description>Urdu (Pakistan, CRULP)</_description>
++ <description>Urdu (Pakistan, CRULP)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>urd-nla</name>
+- <_description>Urdu (Pakistan, NLA)</_description>
++ <description>Urdu (Pakistan, NLA)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ara</name>
+- <_shortDescription>ar</_shortDescription>
+- <_description>Arabic (Pakistan)</_description>
++ <shortDescription>ar</shortDescription>
++ <description>Arabic (Pakistan)</description>
+ <languageList>
+ <iso639Id>ara</iso639Id>
+ </languageList>
+@@ -5254,9 +5254,9 @@
+ <variant>
+ <configItem>
+ <name>snd</name>
+- <!-- Keyboard indicator for Sindhi layouts -->
+- <_shortDescription>sd</_shortDescription>
+- <_description>Sindhi</_description>
++
++ <shortDescription>sd</shortDescription>
++ <description>Sindhi</description>
+ <languageList>
+ <iso639Id>snd</iso639Id>
+ </languageList>
+@@ -5267,9 +5267,9 @@
+ <layout>
+ <configItem>
+ <name>mv</name>
+- <!-- Keyboard indicator for Dhivehi layouts -->
+- <_shortDescription>dv</_shortDescription>
+- <_description>Dhivehi</_description>
++
++ <shortDescription>dv</shortDescription>
++ <description>Dhivehi</description>
+ <languageList>
+ <iso639Id>div</iso639Id>
+ </languageList>
+@@ -5279,9 +5279,9 @@
+ <layout>
+ <configItem>
+ <name>za</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (South Africa)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (South Africa)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5290,9 +5290,9 @@
+ <layout>
+ <configItem>
+ <name>epo</name>
+- <!-- Keyboard indicator for Esperanto layouts -->
+- <_shortDescription>eo</_shortDescription>
+- <_description>Esperanto</_description>
++
++ <shortDescription>eo</shortDescription>
++ <description>Esperanto</description>
+ <languageList>
+ <iso639Id>epo</iso639Id>
+ </languageList>
+@@ -5301,7 +5301,7 @@
+ <variant>
+ <configItem>
+ <name>legacy</name>
+- <_description>Esperanto (displaced semicolon and quote, obsolete)</_description>
++ <description>Esperanto (displaced semicolon and quote, obsolete)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5309,9 +5309,9 @@
+ <layout>
+ <configItem>
+ <name>np</name>
+- <!-- Keyboard indicator for Nepali layouts -->
+- <_shortDescription>ne</_shortDescription>
+- <_description>Nepali</_description>
++
++ <shortDescription>ne</shortDescription>
++ <description>Nepali</description>
+ <languageList>
+ <iso639Id>nep</iso639Id>
+ </languageList>
+@@ -5320,9 +5320,9 @@
+ <layout>
+ <configItem>
+ <name>ng</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (Nigeria)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (Nigeria)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5331,9 +5331,9 @@
+ <variant>
+ <configItem>
+ <name>igbo</name>
+- <!-- Keyboard indicator for Igbo layouts -->
+- <_shortDescription>ig</_shortDescription>
+- <_description>Igbo</_description>
++
++ <shortDescription>ig</shortDescription>
++ <description>Igbo</description>
+ <languageList>
+ <iso639Id>ibo</iso639Id>
+ </languageList>
+@@ -5342,9 +5342,9 @@
+ <variant>
+ <configItem>
+ <name>yoruba</name>
+- <!-- Keyboard indicator for Yoruba layouts -->
+- <_shortDescription>yo</_shortDescription>
+- <_description>Yoruba</_description>
++
++ <shortDescription>yo</shortDescription>
++ <description>Yoruba</description>
+ <languageList>
+ <iso639Id>yor</iso639Id>
+ </languageList>
+@@ -5353,9 +5353,9 @@
+ <variant>
+ <configItem>
+ <name>hausa</name>
+- <!-- Keyboard indicator for Hausa layouts -->
+- <_shortDescription>ha</_shortDescription>
+- <_description>Hausa</_description>
++
++ <shortDescription>ha</shortDescription>
++ <description>Hausa</description>
+ <languageList>
+ <iso639Id>hau</iso639Id>
+ </languageList>
+@@ -5366,9 +5366,9 @@
+ <layout>
+ <configItem>
+ <name>et</name>
+- <!-- Keyboard indicator for Amharic layouts -->
+- <_shortDescription>am</_shortDescription>
+- <_description>Amharic</_description>
++
++ <shortDescription>am</shortDescription>
++ <description>Amharic</description>
+ <languageList>
+ <iso639Id>amh</iso639Id>
+ </languageList>
+@@ -5378,9 +5378,9 @@
+ <layout>
+ <configItem>
+ <name>sn</name>
+- <!-- Keyboard indicator for Wolof layouts -->
+- <_shortDescription>wo</_shortDescription>
+- <_description>Wolof</_description>
++
++ <shortDescription>wo</shortDescription>
++ <description>Wolof</description>
+ <languageList>
+ <iso639Id>wol</iso639Id>
+ </languageList>
+@@ -5390,21 +5390,21 @@
+ <layout>
+ <configItem>
+ <name>brai</name>
+- <!-- Keyboard indicator for Braille layouts -->
+- <_shortDescription>brl</_shortDescription>
+- <_description>Braille</_description>
++
++ <shortDescription>brl</shortDescription>
++ <description>Braille</description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>left_hand</name>
+- <_description>Braille (left hand)</_description>
++ <description>Braille (left hand)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>right_hand</name>
+- <_description>Braille (right hand)</_description>
++ <description>Braille (right hand)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5412,9 +5412,9 @@
+ <layout>
+ <configItem>
+ <name>tm</name>
+- <!-- Keyboard indicator for Turkmen layouts -->
+- <_shortDescription>tk</_shortDescription>
+- <_description>Turkmen</_description>
++
++ <shortDescription>tk</shortDescription>
++ <description>Turkmen</description>
+ <languageList>
+ <iso639Id>tuk</iso639Id>
+ </languageList>
+@@ -5423,7 +5423,7 @@
+ <variant>
+ <configItem>
+ <name>alt</name>
+- <_description>Turkmen (Alt-Q)</_description>
++ <description>Turkmen (Alt-Q)</description>
+ </configItem>
+ </variant>
+ </variantList>
+@@ -5431,9 +5431,9 @@
+ <layout>
+ <configItem>
+ <name>ml</name>
+- <!-- Keyboard indicator for Bambara layouts -->
+- <_shortDescription>bm</_shortDescription>
+- <_description>Bambara</_description>
++
++ <shortDescription>bm</shortDescription>
++ <description>Bambara</description>
+ <languageList>
+ <iso639Id>bam</iso639Id>
+ </languageList>
+@@ -5442,9 +5442,9 @@
+ <variant>
+ <configItem>
+ <name>fr-oss</name>
+- <!-- Keyboard indicator for French layouts -->
+- <_shortDescription>fr</_shortDescription>
+- <_description>French (Mali, alternative)</_description>
++
++ <shortDescription>fr</shortDescription>
++ <description>French (Mali, alternative)</description>
+ <languageList>
+ <iso639Id>fra</iso639Id>
+ </languageList>
+@@ -5453,9 +5453,9 @@
+ <variant>
+ <configItem>
+ <name>us-mac</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (Mali, US Macintosh)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (Mali, US Macintosh)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5464,9 +5464,9 @@
+ <variant>
+ <configItem>
+ <name>us-intl</name>
+- <!-- Keyboard indicator for English layouts -->
+- <_shortDescription>en</_shortDescription>
+- <_description>English (Mali, US international)</_description>
++
++ <shortDescription>en</shortDescription>
++ <description>English (Mali, US international)</description>
+ <languageList>
+ <iso639Id>eng</iso639Id>
+ </languageList>
+@@ -5477,9 +5477,9 @@
+ <layout>
+ <configItem>
+ <name>tz</name>
+- <!-- Keyboard indicator for Swahili layouts -->
+- <_shortDescription>sw</_shortDescription>
+- <_description>Swahili (Tanzania)</_description>
++
++ <shortDescription>sw</shortDescription>
++ <description>Swahili (Tanzania)</description>
+ <languageList>
+ <iso639Id>swa</iso639Id>
+ </languageList>
+@@ -5488,9 +5488,9 @@
+ <layout>
+ <configItem>
+ <name>ke</name>
+- <!-- Keyboard indicator for Swahili layouts -->
+- <_shortDescription>sw</_shortDescription>
+- <_description>Swahili (Kenya)</_description>
++
++ <shortDescription>sw</shortDescription>
++ <description>Swahili (Kenya)</description>
+ <languageList>
+ <iso639Id>swa</iso639Id>
+ </languageList>
+@@ -5499,9 +5499,9 @@
+ <variant>
+ <configItem>
+ <name>kik</name>
+- <!-- Keyboard indicator for Kikuyu layouts -->
+- <_shortDescription>ki</_shortDescription>
+- <_description>Kikuyu</_description>
++
++ <shortDescription>ki</shortDescription>
++ <description>Kikuyu</description>
+ <languageList>
+ <iso639Id>kik</iso639Id>
+ </languageList>
+@@ -5512,9 +5512,9 @@
+ <layout>
+ <configItem>
+ <name>bw</name>
+- <!-- Keyboard indicator for Tswana layouts -->
+- <_shortDescription>tn</_shortDescription>
+- <_description>Tswana</_description>
++
++ <shortDescription>tn</shortDescription>
++ <description>Tswana</description>
+ <languageList>
+ <iso639Id>tsn</iso639Id>
+ </languageList>
+@@ -5523,9 +5523,9 @@
+ <layout>
+ <configItem>
+ <name>ph</name>
+- <!-- Keyboard indicator for Filipino layouts -->
+- <_shortDescription>ph</_shortDescription>
+- <_description>Filipino</_description>
++
++ <shortDescription>ph</shortDescription>
++ <description>Filipino</description>
+ <languageList><iso639Id>eng</iso639Id>
+ <iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+@@ -5542,7 +5542,7 @@
+ <variant>
+ <configItem>
+ <name>qwerty-bay</name>
+- <_description>Filipino (QWERTY Baybayin)</_description>
++ <description>Filipino (QWERTY Baybayin)</description>
+ <languageList><iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+ <iso639Id>fil</iso639Id>
+@@ -5558,13 +5558,13 @@
+ <variant>
+ <configItem>
+ <name>capewell-dvorak</name>
+- <_description>Filipino (Capewell-Dvorak Latin)</_description>
++ <description>Filipino (Capewell-Dvorak Latin)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>capewell-dvorak-bay</name>
+- <_description>Filipino (Capewell-Dvorak Baybayin)</_description>
++ <description>Filipino (Capewell-Dvorak Baybayin)</description>
+ <languageList><iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+ <iso639Id>fil</iso639Id>
+@@ -5580,13 +5580,13 @@
+ <variant>
+ <configItem>
+ <name>capewell-qwerf2k6</name>
+- <_description>Filipino (Capewell-QWERF 2006 Latin)</_description>
++ <description>Filipino (Capewell-QWERF 2006 Latin)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>capewell-qwerf2k6-bay</name>
+- <_description>Filipino (Capewell-QWERF 2006 Baybayin)</_description>
++ <description>Filipino (Capewell-QWERF 2006 Baybayin)</description>
+ <languageList><iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+ <iso639Id>fil</iso639Id>
+@@ -5602,13 +5602,13 @@
+ <variant>
+ <configItem>
+ <name>colemak</name>
+- <_description>Filipino (Colemak Latin)</_description>
++ <description>Filipino (Colemak Latin)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak-bay</name>
+- <_description>Filipino (Colemak Baybayin)</_description>
++ <description>Filipino (Colemak Baybayin)</description>
+ <languageList><iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+ <iso639Id>fil</iso639Id>
+@@ -5624,13 +5624,13 @@
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+- <_description>Filipino (Dvorak Latin)</_description>
++ <description>Filipino (Dvorak Latin)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-bay</name>
+- <_description>Filipino (Dvorak Baybayin)</_description>
++ <description>Filipino (Dvorak Baybayin)</description>
+ <languageList><iso639Id>bik</iso639Id>
+ <iso639Id>ceb</iso639Id>
+ <iso639Id>fil</iso639Id>
+@@ -5648,16 +5648,16 @@
+ <layout>
+ <configItem>
+ <name>md</name>
+- <_shortDescription>md</_shortDescription>
+- <_description>Moldavian</_description>
++ <shortDescription>md</shortDescription>
++ <description>Moldavian</description>
+ <languageList><iso639Id>rum</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>gag</name>
+- <_shortDescription>gag</_shortDescription>
+- <_description>Moldavian (Gagauz)</_description>
++ <shortDescription>gag</shortDescription>
++ <description>Moldavian (Gagauz)</description>
+ <languageList><iso639Id>gag</iso639Id></languageList>
+ </configItem>
+ </variant>
+@@ -5666,1183 +5666,1142 @@
+ </layoutList>
+ <optionList>
+ <group allowMultipleSelection="true">
+- <!-- The key combination used to switch between groups -->
++
+ <configItem>
+ <name>grp</name>
+- <_description>Switching to another layout</_description>
++ <description>Switching to another layout</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>grp:switch</name>
+- <_description>Right Alt (while pressed)</_description>
++ <description>Right Alt (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lswitch</name>
+- <_description>Left Alt (while pressed)</_description>
++ <description>Left Alt (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lwin_switch</name>
+- <_description>Left Win (while pressed)</_description>
++ <description>Left Win (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rwin_switch</name>
+- <_description>Right Win (while pressed)</_description>
++ <description>Right Win (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:win_switch</name>
+- <_description>Any Win key (while pressed)</_description>
++ <description>Any Win key (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:caps_switch</name>
+- <_description>Caps Lock (while pressed), Alt+Caps Lock does the original capslock action</_description>
++ <description>Caps Lock (while pressed), Alt+Caps Lock does the original capslock action</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rctrl_switch</name>
+- <_description>Right Ctrl (while pressed)</_description>
++ <description>Right Ctrl (while pressed)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:toggle</name>
+- <_description>Right Alt</_description>
++ <description>Right Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lalt_toggle</name>
+- <_description>Left Alt</_description>
++ <description>Left Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:caps_toggle</name>
+- <_description>Caps Lock</_description>
++ <description>Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shift_caps_toggle</name>
+- <_description>Shift+Caps Lock</_description>
++ <description>Shift+Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shift_caps_switch</name>
+- <_description>Caps Lock (to first layout), Shift+Caps Lock (to last layout)</_description>
++ <description>Caps Lock (to first layout), Shift+Caps Lock (to last layout)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:win_menu_switch</name>
+- <_description>Left Win (to first layout), Right Win/Menu (to last layout)</_description>
++ <description>Left Win (to first layout), Right Win/Menu (to last layout)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_rctrl_switch</name>
+- <_description>Left Ctrl (to first layout), Right Ctrl (to last layout)</_description>
++ <description>Left Ctrl (to first layout), Right Ctrl (to last layout)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alt_caps_toggle</name>
+- <_description>Alt+Caps Lock</_description>
++ <description>Alt+Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shifts_toggle</name>
+- <_description>Both Shift keys together</_description>
++ <description>Both Shift keys together</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alts_toggle</name>
+- <_description>Both Alt keys together</_description>
++ <description>Both Alt keys together</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrls_toggle</name>
+- <_description>Both Ctrl keys together</_description>
++ <description>Both Ctrl keys together</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrl_shift_toggle</name>
+- <_description>Ctrl+Shift</_description>
++ <description>Ctrl+Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_lshift_toggle</name>
+- <_description>Left Ctrl+Left Shift</_description>
++ <description>Left Ctrl+Left Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rctrl_rshift_toggle</name>
+- <_description>Right Ctrl+Right Shift</_description>
++ <description>Right Ctrl+Right Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrl_alt_toggle</name>
+- <_description>Alt+Ctrl</_description>
++ <description>Alt+Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alt_shift_toggle</name>
+- <_description>Alt+Shift</_description>
++ <description>Alt+Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lalt_lshift_toggle</name>
+- <_description>Left Alt+Left Shift</_description>
++ <description>Left Alt+Left Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alt_space_toggle</name>
+- <_description>Alt+Space</_description>
++ <description>Alt+Space</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:menu_toggle</name>
+- <_description>Menu</_description>
++ <description>Menu</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lwin_toggle</name>
+- <_description>Left Win</_description>
++ <description>Left Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rwin_toggle</name>
+- <_description>Right Win</_description>
++ <description>Right Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lshift_toggle</name>
+- <_description>Left Shift</_description>
++ <description>Left Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rshift_toggle</name>
+- <_description>Right Shift</_description>
++ <description>Right Shift</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_toggle</name>
+- <_description>Left Ctrl</_description>
++ <description>Left Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rctrl_toggle</name>
+- <_description>Right Ctrl</_description>
++ <description>Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:sclk_toggle</name>
+- <_description>Scroll Lock</_description>
++ <description>Scroll Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_lwin_rctrl_menu</name>
+- <_description>LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)</_description>
++ <description>LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+- <!-- The key combination used to choose the 3rd (and 4th, together with Shift)
+- level of symbols -->
++
+ <configItem>
+ <name>lv3</name>
+- <_description>Key to choose 3rd level</_description>
++ <description>Key to choose 3rd level</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>lv3:switch</name>
+- <_description>Right Ctrl</_description>
++ <description>Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:menu_switch</name>
+- <_description>Menu</_description>
++ <description>Menu</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:win_switch</name>
+- <_description>Any Win key</_description>
++ <description>Any Win key</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lwin_switch</name>
+- <_description>Left Win</_description>
++ <description>Left Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:rwin_switch</name>
+- <_description>Right Win</_description>
++ <description>Right Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:alt_switch</name>
+- <_description>Any Alt key</_description>
++ <description>Any Alt key</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lalt_switch</name>
+- <_description>Left Alt</_description>
++ <description>Left Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_switch</name>
+- <_description>Right Alt</_description>
++ <description>Right Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_switch_multikey</name>
+- <_description>Right Alt, Shift+Right Alt key is Compose</_description>
++ <description>Right Alt, Shift+Right Alt key is Compose</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_alt</name>
+- <_description>Right Alt key never chooses 3rd level</_description>
++ <description>Right Alt key never chooses 3rd level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:enter_switch</name>
+- <_description>Enter on keypad</_description>
++ <description>Enter on keypad</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:caps_switch</name>
+- <_description>Caps Lock</_description>
++ <description>Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:bksl_switch</name>
+- <_description>Backslash</_description>
++ <description>Backslash</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lsgt_switch</name>
+- <_description>&lt;Less/Greater&gt;</_description>
++ <description>&lt;Less/Greater&gt;</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:caps_switch_latch</name>
+- <_description>Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
++ <description>Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:bksl_switch_latch</name>
+- <_description>Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
++ <description>Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lsgt_switch_latch</name>
+- <_description>&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
++ <description>&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+- <!-- Tweaking the position of the "Ctrl" key -->
++
+ <configItem>
+ <name>ctrl</name>
+- <_description>Ctrl key position</_description>
++ <description>Ctrl key position</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>ctrl:nocaps</name>
+- <_description>Caps Lock as Ctrl</_description>
++ <description>Caps Lock as Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:lctrl_meta</name>
+- <_description>Left Ctrl as Meta</_description>
++ <description>Left Ctrl as Meta</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:swapcaps</name>
+- <_description>Swap Ctrl and Caps Lock</_description>
++ <description>Swap Ctrl and Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:ac_ctrl</name>
+- <_description>At left of 'A'</_description>
++ <description>At left of 'A'</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:aa_ctrl</name>
+- <_description>At bottom left</_description>
++ <description>At bottom left</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:rctrl_ralt</name>
+- <_description>Right Ctrl as Right Alt</_description>
++ <description>Right Ctrl as Right Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:menu_rctrl</name>
+- <_description>Menu as Right Ctrl</_description>
++ <description>Menu as Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:ctrl_ralt</name>
+- <_description>Right Alt as Right Ctrl</_description>
++ <description>Right Alt as Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:swap_lalt_lctl</name>
+- <_description>Swap Left Alt key with Left Ctrl key</_description>
++ <description>Swap Left Alt key with Left Ctrl key</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:swap_lwin_lctl</name>
+- <_description>Swap Left Win key with Left Ctrl key</_description>
++ <description>Swap Left Win key with Left Ctrl key</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:swap_lalt_lctl_lwin</name>
+- <_description>Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt</_description>
++ <description>Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+- <!-- Using startard LEDs to indicate the alternative (not first) group(s) -->
++
+ <configItem>
+ <name>grp_led</name>
+- <_description>Use keyboard LED to show alternative layout</_description>
++ <description>Use keyboard LED to show alternative layout</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>grp_led:num</name>
+- <_description>Num Lock</_description>
++ <description>Num Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp_led:caps</name>
+- <_description>Caps Lock</_description>
++ <description>Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp_led:scroll</name>
+- <_description>Scroll Lock</_description>
++ <description>Scroll Lock</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+- <!-- Select a keypad type -->
++
+ <configItem>
+ <name>keypad</name>
+- <_description>Layout of numeric keypad</_description>
++ <description>Layout of numeric keypad</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>keypad:legacy</name>
+- <_description>Legacy</_description>
++ <description>Legacy</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:oss</name>
+- <_description>Unicode additions (arrows and math operators)</_description>
++ <description>Unicode additions (arrows and math operators)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:future</name>
+- <_description>Unicode additions (arrows and math operators; math operators on default level)</_description>
++ <description>Unicode additions (arrows and math operators; math operators on default level)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:legacy_wang</name>
+- <_description>Legacy Wang 724</_description>
++ <description>Legacy Wang 724</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:oss_wang</name>
+- <_description>Wang 724 keypad with Unicode additions (arrows and math operators)</_description>
++ <description>Wang 724 keypad with Unicode additions (arrows and math operators)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:future_wang</name>
+- <_description>Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)</_description>
++ <description>Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:hex</name>
+- <_description>Hexadecimal</_description>
++ <description>Hexadecimal</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:atm</name>
+- <_description>ATM/phone-style</_description>
++ <description>ATM/phone-style</description>
+ </configItem>
+ </option>
+ </group>
+- <!-- This option should override the KPDL key defined in keypad; I hope it's declared in the right place -->
++
+ <group allowMultipleSelection="false">
+- <!-- Select a keypad KPDL variant -->
++
+ <configItem>
+ <name>kpdl</name>
+- <_description>Numeric keypad delete key behaviour</_description>
++ <description>Numeric keypad delete key behaviour</description>
+ </configItem>
+ <option>
+ <configItem>
+- <!-- Actually, with KP_DECIMAL, as the old keypad(dot) -->
++
+ <name>kpdl:dot</name>
+- <_description>Legacy key with dot</_description>
++ <description>Legacy key with dot</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:comma</name>
+- <!-- Actually, with KP_SEPARATOR, as the old keypad(comma) -->
+- <_description>Legacy key with comma</_description>
++
++ <description>Legacy key with comma</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:dotoss</name>
+- <_description>Four-level key with dot</_description>
++ <description>Four-level key with dot</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:dotoss_latin9</name>
+- <_description>Four-level key with dot, Latin-9 only</_description>
++ <description>Four-level key with dot, Latin-9 only</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:commaoss</name>
+- <_description>Four-level key with comma</_description>
++ <description>Four-level key with comma</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:momayyezoss</name>
+- <_description>Four-level key with momayyez</_description>
++ <description>Four-level key with momayyez</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:kposs</name>
+- <!-- This assumes the KP_ abstract symbols are actually useful for some apps
+- The description needs to be rewritten -->
+- <_description>Four-level key with abstract separators</_description>
++
++ <description>Four-level key with abstract separators</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>kpdl:semi</name>
+- <_description>Semicolon on third level</_description>
++ <description>Semicolon on third level</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+- <!-- Caps Lock tweaks.
+- "Internal" capitalization means capitalization using some internal tables.
+- Otherwise "as Shift" - means using next group. -->
++
+ <configItem>
+ <name>caps</name>
+- <_description>Caps Lock key behavior</_description>
++ <description>Caps Lock key behavior</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>caps:internal</name>
+- <_description>Caps Lock uses internal capitalization; Shift "pauses" Caps Lock</_description>
++ <description>Caps Lock uses internal capitalization; Shift "pauses" Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:internal_nocancel</name>
+- <_description>Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock</_description>
++ <description>Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shift</name>
+- <_description>Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock</_description>
++ <description>Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shift_nocancel</name>
+- <_description>Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock</_description>
++ <description>Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:capslock</name>
+- <_description>Caps Lock toggles normal capitalization of alphabetic characters</_description>
++ <description>Caps Lock toggles normal capitalization of alphabetic characters</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:numlock</name>
+- <_description>Make Caps Lock an additional Num Lock</_description>
++ <description>Make Caps Lock an additional Num Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:swapescape</name>
+- <_description>Swap ESC and Caps Lock</_description>
++ <description>Swap ESC and Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:escape</name>
+- <_description>Make Caps Lock an additional ESC</_description>
++ <description>Make Caps Lock an additional ESC</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:backspace</name>
+- <_description>Make Caps Lock an additional Backspace</_description>
++ <description>Make Caps Lock an additional Backspace</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:super</name>
+- <_description>Make Caps Lock an additional Super</_description>
++ <description>Make Caps Lock an additional Super</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:hyper</name>
+- <_description>Make Caps Lock an additional Hyper</_description>
++ <description>Make Caps Lock an additional Hyper</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shiftlock</name>
+- <_description>Caps Lock toggles ShiftLock (affects all keys)</_description>
++ <description>Caps Lock toggles ShiftLock (affects all keys)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:none</name>
+- <_description>Caps Lock is disabled</_description>
++ <description>Caps Lock is disabled</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:ctrl_modifier</name>
+- <_description>Make Caps Lock an additional Ctrl</_description>
++ <description>Make Caps Lock an additional Ctrl</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+- <!-- Using special PC keys (Win, Menu) to work as standard X keys (Super, Hyper, etc.) -->
++
+ <configItem>
+ <name>altwin</name>
+- <_description>Alt/Win key behavior</_description>
++ <description>Alt/Win key behavior</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>altwin:menu</name>
+- <_description>Add the standard behavior to Menu key</_description>
++ <description>Add the standard behavior to Menu key</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:meta_alt</name>
+- <_description>Alt and Meta are on Alt keys</_description>
++ <description>Alt and Meta are on Alt keys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:alt_win</name>
+- <_description>Alt is mapped to Win keys (and the usual Alt keys)</_description>
++ <description>Alt is mapped to Win keys (and the usual Alt keys)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:ctrl_win</name>
+- <_description>Ctrl is mapped to Win keys (and the usual Ctrl keys)</_description>
++ <description>Ctrl is mapped to Win keys (and the usual Ctrl keys)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:ctrl_alt_win</name>
+- <_description>Ctrl is mapped to Alt keys, Alt is mapped to Win keys</_description>
++ <description>Ctrl is mapped to Alt keys, Alt is mapped to Win keys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:meta_win</name>
+- <_description>Meta is mapped to Win keys</_description>
++ <description>Meta is mapped to Win keys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:left_meta_win</name>
+- <_description>Meta is mapped to Left Win</_description>
++ <description>Meta is mapped to Left Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:hyper_win</name>
+- <_description>Hyper is mapped to Win-keys</_description>
++ <description>Hyper is mapped to Win-keys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:alt_super_win</name>
+- <_description>Alt is mapped to Right Win, Super to Menu</_description>
++ <description>Alt is mapped to Right Win, Super to Menu</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:swap_alt_win</name>
+- <_description>Alt is swapped with Win</_description>
++ <description>Alt is swapped with Win</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+- <!-- Tweaking the position of the "Compose" key: mapping to existing PC keys -->
++
+ <configItem>
+ <name>Compose key</name>
+- <_description>Position of Compose key</_description>
++ <description>Position of Compose key</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>compose:ralt</name>
+- <_description>Right Alt</_description>
++ <description>Right Alt</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:lwin</name>
+- <_description>Left Win</_description>
++ <description>Left Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:lwin-altgr</name>
+- <_description>3rd level of Left Win</_description>
++ <description>3rd level of Left Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rwin</name>
+- <_description>Right Win</_description>
++ <description>Right Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rwin-altgr</name>
+- <_description>3rd level of Right Win</_description>
++ <description>3rd level of Right Win</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:menu</name>
+- <_description>Menu</_description>
++ <description>Menu</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:menu-altgr</name>
+- <_description>3rd level of Menu</_description>
++ <description>3rd level of Menu</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:lctrl</name>
+- <_description>Left Ctrl</_description>
++ <description>Left Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:lctrl-altgr</name>
+- <_description>3rd level of Left Ctrl</_description>
++ <description>3rd level of Left Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rctrl</name>
+- <_description>Right Ctrl</_description>
++ <description>Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rctrl-altgr</name>
+- <_description>3rd level of Right Ctrl</_description>
++ <description>3rd level of Right Ctrl</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:caps</name>
+- <_description>Caps Lock</_description>
++ <description>Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:caps-altgr</name>
+- <_description>3rd level of Caps Lock</_description>
++ <description>3rd level of Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:102</name>
+- <_description>&lt;Less/Greater&gt;</_description>
++ <description>&lt;Less/Greater&gt;</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:102-altgr</name>
+- <_description>3rd level of &lt;Less/Greater&gt;</_description>
++ <description>3rd level of &lt;Less/Greater&gt;</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:paus</name>
+- <_description>Pause</_description>
++ <description>Pause</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:prsc</name>
+- <_description>PrtSc</_description>
++ <description>PrtSc</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:sclk</name>
+- <_description>Scroll Lock</_description>
++ <description>Scroll Lock</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <configItem>
+ <name>compat</name>
+- <_description>Miscellaneous compatibility options</_description>
++ <description>Miscellaneous compatibility options</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>numpad:pc</name>
+- <_description>Default numeric keypad keys</_description>
++ <description>Default numeric keypad keys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>numpad:mac</name>
+- <_description>Numeric keypad keys always enter digits (as in Mac OS)</_description>
++ <description>Numeric keypad keys always enter digits (as in Mac OS)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>numpad:microsoft</name>
+- <_description>Shift with numeric keypad keys works as in MS Windows</_description>
++ <description>Shift with numeric keypad keys works as in MS Windows</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>numpad:shift3</name>
+- <_description>Shift does not cancel Num Lock, chooses 3rd level instead</_description>
++ <description>Shift does not cancel Num Lock, chooses 3rd level instead</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>srvrkeys:none</name>
+- <_description>Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server</_description>
++ <description>Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>apple:alupckeys</name>
+- <_description>Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)</_description>
++ <description>Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>shift:breaks_caps</name>
+- <_description>Shift cancels Caps Lock</_description>
++ <description>Shift cancels Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>misc:typo</name>
+- <_description>Enable extra typographic characters</_description>
++ <description>Enable extra typographic characters</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>shift:both_capslock</name>
+- <_description>Both Shift keys together toggle Caps Lock</_description>
++ <description>Both Shift keys together toggle Caps Lock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>shift:both_capslock_cancel</name>
+- <_description>Both Shift keys together activate Caps Lock, one Shift key deactivates</_description>
++ <description>Both Shift keys together activate Caps Lock, one Shift key deactivates</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>shift:both_shiftlock</name>
+- <_description>Both Shift keys together toggle ShiftLock</_description>
++ <description>Both Shift keys together toggle ShiftLock</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:pointerkeys</name>
+- <_description>Shift + NumLock toggles PointerKeys</_description>
++ <description>Shift + NumLock toggles PointerKeys</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grab:break_actions</name>
+- <_description>Allow breaking grabs with keyboard actions (warning: security risk)</_description>
++ <description>Allow breaking grabs with keyboard actions (warning: security risk)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grab:debug_actions</name>
+- <_description>Allow grab and window tree logging</_description>
++ <description>Allow grab and window tree logging</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+- <!-- Special shortcuts for the Euro character -->
++
+ <configItem>
+ <name>currencysign</name>
+- <_description>Adding currency signs to certain keys</_description>
++ <description>Adding currency signs to certain keys</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>eurosign:e</name>
+- <_description>Euro on E</_description>
++ <description>Euro on E</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:2</name>
+- <_description>Euro on 2</_description>
++ <description>Euro on 2</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:4</name>
+- <_description>Euro on 4</_description>
++ <description>Euro on 4</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:5</name>
+- <_description>Euro on 5</_description>
++ <description>Euro on 5</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>rupeesign:4</name>
+- <_description>Rupee on 4</_description>
++ <description>Rupee on 4</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <configItem>
+ <name>lv5</name>
+- <_description>Key to choose 5th level</_description>
++ <description>Key to choose 5th level</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>lv5:lsgt_switch_lock</name>
+- <_description>&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
++ <description>&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv5:ralt_switch_lock</name>
+- <_description>Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
++ <description>Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv5:lwin_switch_lock</name>
+- <_description>Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
++ <description>Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv5:rwin_switch_lock</name>
+- <_description>Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+-<!--
+- <option>
+- <configItem>
+- <name>lv5:lsgt_switch_lock_cancel</name>
+- <_description>&lt;Less/Greater&gt; chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+- <option>
+- <configItem>
+- <name>lv5:ralt_switch_lock_cancel</name>
+- <_description>Right Alt chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+- <option>
+- <configItem>
+- <name>lv5:lwin_switch_lock_cancel</name>
+- <_description>Left Win chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+- <option>
+- <configItem>
+- <name>lv5:rwin_switch_lock_cancel</name>
+- <_description>Right Win chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+- <option>
+- <configItem>
+- <name>lv5:lsgt_switch_lock_cancel</name>
+- <_description>&lt;Less/Greater&gt; chooses 5th level, acts as onetime lock lock when pressed together with another 5th-level-chooser</_description>
+- </configItem>
+- </option>
+- <option>
+- <configItem>
+- <name>lv5:ralt_switch_lock_cancel</name>
+- <_description>Right Alt chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
++ <description>Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
+ </configItem>
+ </option>
+--->
++
+ </group>
+ <group allowMultipleSelection="false">
+- <!-- Let space output NBSP, NNBSP, ZWNJ, and ZWJ for the desired level -->
++
+ <configItem>
+ <name>nbsp</name>
+- <_description>Using space key to input non-breakable space character</_description>
++ <description>Using space key to input non-breakable space character</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>nbsp:none</name>
+- <_description>Usual space at any level</_description>
++ <description>Usual space at any level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level2</name>
+- <_description>Non-breakable space character at second level</_description>
++ <description>Non-breakable space character at second level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3</name>
+- <_description>Non-breakable space character at third level</_description>
++ <description>Non-breakable space character at third level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3s</name>
+- <_description>Non-breakable space character at third level, nothing at fourth level</_description>
++ <description>Non-breakable space character at third level, nothing at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3n</name>
+- <_description>Non-breakable space character at third level, thin non-breakable space character at fourth level</_description>
++ <description>Non-breakable space character at third level, thin non-breakable space character at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4</name>
+- <_description>Non-breakable space character at fourth level</_description>
++ <description>Non-breakable space character at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4n</name>
+- <_description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level</_description>
++ <description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4nl</name>
+- <_description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)</_description>
++ <description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2</name>
+- <_description>Zero-width non-joiner character at second level</_description>
++ <description>Zero-width non-joiner character at second level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2zwj3</name>
+- <_description>Zero-width non-joiner character at second level, zero-width joiner character at third level</_description>
++ <description>Zero-width non-joiner character at second level, zero-width joiner character at third level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2zwj3nb4</name>
+- <_description>Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level</_description>
++ <description>Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2nb3</name>
+- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level</_description>
++ <description>Zero-width non-joiner character at second level, non-breakable space character at third level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2nb3s</name>
+- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level</_description>
++ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2nb3zwj4</name>
+- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level</_description>
++ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj2nb3nnb4</name>
+- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level</_description>
++ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:zwnj3zwj4</name>
+- <_description>Zero-width non-joiner character at third level, zero-width joiner at fourth level</_description>
++ <description>Zero-width non-joiner character at third level, zero-width joiner at fourth level</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <configItem>
+ <name>japan</name>
+- <_description>Japanese keyboard options</_description>
++ <description>Japanese keyboard options</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>japan:kana_lock</name>
+- <_description>Kana Lock key is locking</_description>
++ <description>Kana Lock key is locking</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>japan:nicola_f_bs</name>
+- <_description>NICOLA-F style Backspace</_description>
++ <description>NICOLA-F style Backspace</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>japan:hztg_escape</name>
+- <_description>Make Zenkaku Hankaku an additional ESC</_description>
++ <description>Make Zenkaku Hankaku an additional ESC</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+ <configItem>
+ <name>esperanto</name>
+- <_description>Adding Esperanto supersigned letters</_description>
++ <description>Adding Esperanto supersigned letters</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>esperanto:qwerty</name>
+- <_description>To the corresponding key in a Qwerty layout</_description>
++ <description>To the corresponding key in a Qwerty layout</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>esperanto:dvorak</name>
+- <_description>To the corresponding key in a Dvorak layout</_description>
++ <description>To the corresponding key in a Dvorak layout</description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>esperanto:colemak</name>
+- <_description>To the corresponding key in a Colemak layout</_description>
++ <description>To the corresponding key in a Colemak layout</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <configItem>
+ <name>solaris</name>
+- <_description>Maintain key compatibility with old Solaris keycodes</_description>
++ <description>Maintain key compatibility with old Solaris keycodes</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>solaris:sun_compat</name>
+- <_description>Sun Key compatibility</_description>
++ <description>Sun Key compatibility</description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <configItem>
+ <name>terminate</name>
+- <_description>Key sequence to kill the X server</_description>
++ <description>Key sequence to kill the X server</description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>terminate:ctrl_alt_bksp</name>
+- <_description>Ctrl + Alt + Backspace</_description>
++ <description>Ctrl + Alt + Backspace</description>
+ </configItem>
+ </option>
+ </group>
+ </optionList>
+-</xkbConfigRegistry>
++</xkbConfigRegistry>
+\ No newline at end of file
diff --git a/rules.mk b/rules.mk
index c4f7594ee..8e9e013d9 100644
--- a/rules.mk
+++ b/rules.mk
@@ -43,6 +43,7 @@ ADK_TARGET_MIPS_ABI:= $(strip $(subst ",, $(ADK_TARGET_MIPS_ABI)))
ADK_TARGET_IP:= $(strip $(subst ",, $(ADK_TARGET_IP)))
ADK_TARGET_SUFFIX:= $(strip $(subst ",, $(ADK_TARGET_SUFFIX)))
ADK_TARGET_CMDLINE:= $(strip $(subst ",, $(ADK_TARGET_CMDLINE)))
+ADK_QEMU_ARGS:= $(strip $(subst ",, $(ADK_QEMU_ARGS)))
ADK_RUNTIME_TMPFS_SIZE:= $(strip $(subst ",, $(ADK_RUNTIME_TMPFS_SIZE)))
ADK_RUNTIME_CONSOLE_SERIAL_SPEED:= $(strip $(subst ",, $(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)))
ADK_HOST:= $(strip $(subst ",, $(ADK_HOST)))
diff --git a/scripts/adkprepare.sh b/scripts/adkprepare.sh
index 022a978c1..08d1ee1a1 100755
--- a/scripts/adkprepare.sh
+++ b/scripts/adkprepare.sh
@@ -21,17 +21,12 @@ openbsd() {
PKG_PATH="ftp://ftp.openbsd.org/pub/OpenBSD/${ver}/packages/${arch}/"
export PKG_PATH
pkg_add -v gmake
- pkg_add -v rsync--
pkg_add -v git
pkg_add -v bash
- pkg_add -v unzip
pkg_add -v wget
pkg_add -v gtar--
pkg_add -v gawk
pkg_add -v gsed
- pkg_add -v xz
- pkg_add -v lzop
- pkg_add -v intltool
pkg_add -v screen--
pkg_add -v vim--no_x11
pkg_add -v py-libxml
@@ -41,16 +36,13 @@ netbsd() {
echo "Preparing NetBSD for OpenADK"
PKG_PATH="ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/${arch}/${ver}/All/"
export PKG_PATH
- pkg_add -vu xz
pkg_add -vu scmgit
pkg_add -vu gmake
pkg_add -vu bash
pkg_add -vu wget
- pkg_add -vu unzip
pkg_add -vu gtar
pkg_add -vu gsed
pkg_add -vu gawk
- pkg_add -vu intltool
pkg_add -vu vim
pkg_add -vu screen
pkg_add -vu mksh
@@ -58,7 +50,7 @@ netbsd() {
freebsd() {
echo "Preparing FreeBSD for OpenADK"
- pkg_add -r git gmake bash wget unzip gtar gsed gawk intltool screen mksh vim
+ pkg_add -r git gmake bash wget gtar gsed gawk screen mksh vim
}
case $os in
diff --git a/scripts/rstrip.sh b/scripts/rstrip.sh
index bacf25ca7..46a4586da 100644
--- a/scripts/rstrip.sh
+++ b/scripts/rstrip.sh
@@ -5,10 +5,6 @@
SELF=${0##*/}
-if [[ -z $debug ]];then
- debug=1
-fi
-
if [[ -z $prefix ]]; then
echo >&2 "$SELF: strip command not defined ('prefix' variable not set)"
exit 1
@@ -64,12 +60,13 @@ find $TARGETS -type f -a -exec file {} \; | \
echo "$SELF: $V:$S"
echo "-> $T $F"
eval "chmod u+w $F"
- if [[ $debug -eq 1 ]];then
+ if [[ $debug -ne 0 ]];then
+ echo "mkdir for $D" >> /tmp/debug
eval "mkdir -p $D/usr/lib/debug/$Q"
eval "$O --only-keep-debug $F $D/usr/lib/debug/$P.debug"
fi
eval "$T $F"
- if [[ $debug -eq 1 ]];then
+ if [[ $debug -ne 0 ]];then
eval "cd $D/usr/lib/debug/$Q && $O --add-gnu-debuglink=$R.debug $F"
fi
done
diff --git a/target/arm/sys-available/acmesystems-foxg20 b/target/arm/sys-available/acmesystems-foxg20
index 576468bbe..b907d39c8 100644
--- a/target/arm/sys-available/acmesystems-foxg20
+++ b/target/arm/sys-available/acmesystems-foxg20
@@ -2,13 +2,14 @@ config ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
bool "Foxboard FOXG20"
select ADK_arm
select ADK_little
+ select ADK_soft_float
+ select ADK_eabi
select ADK_acmesystems_foxg20
select ADK_KERNEL_ARCH_AT91
select ADK_KERNEL_ARCH_AT91SAM9260
select ADK_KERNEL_ARCH_AT91SAM9G20
select ADK_KERNEL_MACH_ACMENETUSFOXG20
select ADK_KERNEL_AEABI
- select ADK_EABI
select ADK_TARGET_WITH_WATCHDOG
select ADK_TARGET_WITH_MMC
select ADK_TARGET_WITH_RTC
diff --git a/target/arm/sys-available/cubox-i b/target/arm/sys-available/cubox-i
index f7a4f59bc..3ee6bb8cd 100644
--- a/target/arm/sys-available/cubox-i
+++ b/target/arm/sys-available/cubox-i
@@ -3,9 +3,9 @@ config ADK_TARGET_SYSTEM_CUBOX_I
select ADK_arm
select ADK_little
select ADK_hard_float
+ select ADK_eabihf
select ADK_cubox_i
select ADK_CPU_CORTEX_A9
- select ADK_EABIHF
select ADK_TARGET_WITH_MMC
select ADK_TARGET_WITH_VGA
select ADK_TARGET_WITH_USB
diff --git a/target/arm/sys-available/keyasic-ka2000 b/target/arm/sys-available/keyasic-ka2000
index 36434269c..1610d4b42 100644
--- a/target/arm/sys-available/keyasic-ka2000
+++ b/target/arm/sys-available/keyasic-ka2000
@@ -3,8 +3,8 @@ config ADK_TARGET_SYSTEM_KEYASIC_KA2000
select ADK_arm
select ADK_little
select ADK_soft_float
+ select ADK_eabi
select ADK_keyasic_ka2000
- select ADK_EABI
select ADK_CPU_ARM926EJ_S
select ADK_TOOLCHAIN
select ADK_STATIC if ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_MUSL
diff --git a/target/arm/sys-available/raspberry-pi b/target/arm/sys-available/raspberry-pi
index ecf224a1a..3c0f2ad30 100644
--- a/target/arm/sys-available/raspberry-pi
+++ b/target/arm/sys-available/raspberry-pi
@@ -3,9 +3,9 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI
select ADK_arm
select ADK_little
select ADK_hard_float
+ select ADK_eabihf
select ADK_raspberry_pi
select ADK_CPU_ARM1176JZF_S
- select ADK_EABIHF
select ADK_TARGET_WITH_MMC
select ADK_TARGET_WITH_VGA
select ADK_TARGET_WITH_USB
diff --git a/target/arm/sys-available/sharp-zaurus b/target/arm/sys-available/sharp-zaurus
index 0f124719d..a58401cf3 100644
--- a/target/arm/sys-available/sharp-zaurus
+++ b/target/arm/sys-available/sharp-zaurus
@@ -3,7 +3,7 @@ config ADK_TARGET_SYSTEM_SHARP_ZAURUS
select ADK_arm
select ADK_sharp_zaurus
select ADK_little
- select ADK_EABI
+ select ADK_eabi
select ADK_CPU_XSCALE
select ADK_TARGET_CPU_WITH_IWMMXT
select ADK_TARGET_WITH_VGA
diff --git a/target/arm/sys-available/toolchain-arm b/target/arm/sys-available/toolchain-arm
index 2cbe76a2e..c6bb00b43 100644
--- a/target/arm/sys-available/toolchain-arm
+++ b/target/arm/sys-available/toolchain-arm
@@ -4,8 +4,8 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_ARM
select ADK_toolchain_arm
select ADK_little
select ADK_soft_float
+ select ADK_eabi
select ADK_TOOLCHAIN
- select ADK_EABI
select ADK_TARGET_PACKAGE_TGZ
help
ARM toolchain (soft float).
diff --git a/target/arm/sys-available/toolchain-armhf b/target/arm/sys-available/toolchain-armhf
index 0517118c3..89383f44f 100644
--- a/target/arm/sys-available/toolchain-armhf
+++ b/target/arm/sys-available/toolchain-armhf
@@ -1,11 +1,11 @@
config ADK_TARGET_SYSTEM_TOOLCHAIN_ARMHF
bool "Toolchain only (hard float)"
select ADK_arm
- select ADK_toolchain_armhf
select ADK_little
select ADK_hard_float
+ select ADK_eabihf
+ select ADK_toolchain_armhf
select ADK_TOOLCHAIN
- select ADK_EABIHF
select ADK_TARGET_PACKAGE_TGZ
help
ARM toolchain (hard float).
diff --git a/target/config/Config.in b/target/config/Config.in
index d001826c6..be008f97e 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -117,14 +117,20 @@ config ADK_n32
config ADK_n64
boolean
+config ADK_eabi
+ boolean
+
+config ADK_eabihf
+ boolean
+
config ADK_TARGET_ABI
string
default "n32" if ADK_n32
default "n64" if ADK_n64
default "32" if ADK_32
default "x32" if ADK_x32
- default "eabi" if ADK_EABI
- default "eabihf" if ADK_EABIHF
+ default "eabi" if ADK_eabi
+ default "eabihf" if ADK_eabihf
config ADK_TARGET_MIPS_ABI
depends on ADK_TARGET_KERNEL64 && ADK_LINUX_MIPS
@@ -180,7 +186,7 @@ endchoice
config ADK_TARGET_LIBC_PATH
string
default "lib32" if ADK_n32
- default "lib" if ADK_x32
+ default "libx32" if ADK_x32
default "lib64" if ADK_n64 \
|| ADK_64 \
|| ADK_LINUX_SPARC64 \
@@ -214,6 +220,36 @@ config ADK_TARGET_KERNEL_MINICONFIG
default "raspberry-pi" if ADK_TARGET_SYSTEM_RASPBERRY_PI
default "sharp-zaurus" if ADK_TARGET_SYSTEM_SHARP_ZAURUS
+config ADK_QEMU_ARGS
+ string
+ default "-nographic" if ADK_TARGET_QEMU_WITHOUT_GRAPHIC
+
+choice
+prompt "Qemu Emulation with graphical output"
+depends on ADK_HARDWARE_QEMU
+
+config ADK_TARGET_QEMU_WITHOUT_GRAPHIC
+ boolean "disabled"
+
+config ADK_TARGET_QEMU_WITH_GRAPHIC
+ boolean "enabled"
+ select ADK_KERNEL_VT
+ select ADK_KERNEL_VT_CONSOLE
+ select ADK_KERNEL_FONTS
+ select ADK_KERNEL_FONT_8x16
+ select ADK_KERNEL_FB
+ select ADK_KERNEL_FRAMEBUFFER_CONSOLE
+ select ADK_KERNEL_FB_SM501 if ADK_TARGET_SYSTEM_QEMU_SH4 || ADK_TARGET_SYSTEM_QEMU_SH4EB
+ select ADK_KERNEL_FB_CIRRUS if ADK_TARGET_SYSTEM_QEMU_I686 || ADK_TARGET_SYSTEM_QEMU_X86_64
+ select ADK_KERNEL_FB_PXA if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
+ select ADK_KERNEL_INPUT
+ select ADK_KERNEL_INPUT_KEYBOARD
+ select ADK_KERNEL_KEYBOARD_ATKBD if ADK_TARGET_SYSTEM_QEMU_I686 || ADK_TARGET_SYSTEM_QEMU_X86_64
+ select ADK_KERNEL_INPUT_MOUSE
+ select ADK_KERNEL_INPUT_MOUSEDEV
+
+endchoice
+
choice
prompt "Qemu Emulation using VirtIO drivers"
depends on ADK_TARGET_SYSTEM_QEMU_SPARC64
@@ -251,19 +287,19 @@ depends on ADK_TARGET_SYSTEM_QEMU_ARM
config ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB
boolean "ARM Ltd. Versatile/PB"
select ADK_soft_float
- select ADK_EABI
+ select ADK_eabi
select ADK_CPU_ARM926EJ_S
config ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
boolean "ARM Ltd. Versatile Express for Cortex-A9"
select ADK_hard_float
- select ADK_EABIHF
+ select ADK_eabihf
select ADK_CPU_CORTEX_A9
config ADK_TARGET_QEMU_ARM_MODEL_SPITZ
boolean "Xscale PXA270 Spitz PDA"
select ADK_soft_float
- select ADK_EABI
+ select ADK_eabi
select ADK_CPU_XSCALE
select ADK_TARGET_WITH_VGA
@@ -387,12 +423,6 @@ config ADK_TARGET_KERNEL_MAY_64BIT
config ADK_TOOLCHAIN_ONLY
boolean
-config ADK_EABI
- boolean
-
-config ADK_EABIHF
- boolean
-
config ADK_LINUX_64
boolean
@@ -579,7 +609,7 @@ config ADK_TARGET_CFLAGS
default "-march=atom" if ADK_CPU_ATOM
default "-march=amdfam10" if ADK_CPU_AMDFAM10
default "-mcpu=v8" if ADK_CPU_SPARC_V8
- default "-m64 -mcpu=v9" if ADK_CPU_SPARC_V9
+ default "-m64 -mcpu=ultrasparc" if ADK_CPU_SPARC_V9
default "-march=loongson2f -Wa,-mfix-loongson2f-nop" if ADK_CPU_LOONGSON2F
default "-march=mips32" if ADK_CPU_MIPS32
default "-march=mips64" if ADK_CPU_MIPS64
@@ -612,7 +642,8 @@ config ADK_TARGET_CMDLINE
default "console=ttyAMA0 console=tty0" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB
default "console=ttyAMA0 console=tty0" if ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
default "console=ttyS0,115200 console=tty0 fbcon=rotate:1" if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default "console=ttySC1 console=tty0" if ADK_TARGET_SYSTEM_QEMU_SH
+ default "console=ttySC1 console=tty0" if ADK_TARGET_SYSTEM_QEMU_SH4
+ default "console=ttySC1 console=tty0" if ADK_TARGET_SYSTEM_QEMU_SH4EB
default "console=ttyS0" if ADK_TARGET_SYSTEM_ARANYM_M68K
default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D13
default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D2
@@ -700,27 +731,30 @@ endchoice
config ADK_TARGET_SUFFIX
string
- default "gnueabihf" if ADK_TARGET_LIB_GLIBC && ADK_EABIHF
- default "gnueabi" if ADK_TARGET_LIB_GLIBC && ADK_EABI
- default "gnuabi64" if ADK_TARGET_LIB_GLIBC && ADK_n64
- default "gnuabin32" if ADK_TARGET_LIB_GLIBC && ADK_n32
- default "gnuabi32" if ADK_TARGET_LIB_GLIBC && ADK_o32
- default "gnu" if ADK_TARGET_LIB_GLIBC && !ADK_EABI
- default "uclibcgnueabihf" if ADK_TARGET_LIB_UCLIBC && ADK_EABIHF
- default "uclibcgnueabi" if ADK_TARGET_LIB_UCLIBC && ADK_EABI
- default "uclibcabi64" if ADK_TARGET_LIB_UCLIBC && ADK_n64
- default "uclibcabin32" if ADK_TARGET_LIB_UCLIBC && ADK_n32
- default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC && ADK_o32
- default "uclibc" if ADK_TARGET_LIB_UCLIBC && !ADK_EABI
- default "muslgnueabihf" if ADK_TARGET_LIB_MUSL && ADK_EABIHF
- default "muslgnueabi" if ADK_TARGET_LIB_MUSL && ADK_EABI
- default "muslabi64" if ADK_TARGET_LIB_MUSL && ADK_n64
- default "muslabin32" if ADK_TARGET_LIB_MUSL && ADK_n32
- default "muslabi32" if ADK_TARGET_LIB_MUSL && ADK_o32
+ default "gnueabihf" if ADK_TARGET_LIB_GLIBC && ADK_eabihf
+ default "gnueabi" if ADK_TARGET_LIB_GLIBC && ADK_eabi
+ default "gnuabi64" if ADK_TARGET_LIB_GLIBC && ADK_n64 && ADK_TARGET_KERNEL64
+ default "gnuabin32" if ADK_TARGET_LIB_GLIBC && ADK_n32 && ADK_TARGET_KERNEL64
+ default "gnuabi32" if ADK_TARGET_LIB_GLIBC && ADK_o32 && ADK_TARGET_KERNEL64
+ default "gnu32" if ADK_TARGET_LIB_GLIBC && ADK_32 && ADK_TARGET_KERNEL64
+ default "gnux32" if ADK_TARGET_LIB_GLIBC && ADK_x32 && ADK_TARGET_KERNEL64
+ default "gnu" if ADK_TARGET_LIB_GLIBC
+ default "uclibcgnueabihf" if ADK_TARGET_LIB_UCLIBC && ADK_eabihf
+ default "uclibcgnueabi" if ADK_TARGET_LIB_UCLIBC && ADK_eabi
+ default "uclibcabi64" if ADK_TARGET_LIB_UCLIBC && ADK_n64 && ADK_TARGET_KERNEL64
+ default "uclibcabin32" if ADK_TARGET_LIB_UCLIBC && ADK_n32 && ADK_TARGET_KERNEL64
+ default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC && ADK_o32 && ADK_TARGET_KERNEL64
+ default "uclibc32" if ADK_TARGET_LIB_UCLIBC && ADK_32 && ADK_TARGET_KERNEL64
+ default "uclibcx32" if ADK_TARGET_LIB_UCLIBC && ADK_x32 && ADK_TARGET_KERNEL64
+ default "uclibc" if ADK_TARGET_LIB_UCLIBC
+ default "muslgnueabihf" if ADK_TARGET_LIB_MUSL && ADK_eabihf
+ default "muslgnueabi" if ADK_TARGET_LIB_MUSL && ADK_eabi
+ default "muslabi64" if ADK_TARGET_LIB_MUSL && ADK_n64 && ADK_TARGET_KERNEL64
+ default "muslabin32" if ADK_TARGET_LIB_MUSL && ADK_n32 && ADK_TARGET_KERNEL64
+ default "muslabi32" if ADK_TARGET_LIB_MUSL && ADK_o32 && ADK_TARGET_KERNEL64
+ default "musl32" if ADK_TARGET_LIB_MUSL && ADK_32 && ADK_TARGET_KERNEL64
+ default "muslx32" if ADK_TARGET_LIB_MUSL && ADK_x32 && ADK_TARGET_KERNEL64
default "musl" if ADK_TARGET_LIB_MUSL
- default "32" if ADK_32
- default "x32" if ADK_x32
- default "gnu"
choice
prompt "Target firmware type"
diff --git a/target/linux/config/Config.in.graphics b/target/linux/config/Config.in.graphics
index f6f3962cf..477541478 100644
--- a/target/linux/config/Config.in.graphics
+++ b/target/linux/config/Config.in.graphics
@@ -33,9 +33,19 @@ config ADK_KERNEL_FB
config ADK_KERNEL_FRAMEBUFFER_CONSOLE
boolean
+config ADK_KERNEL_MFD_SM501
+ boolean
+
+config ADK_KERNEL_FB_CIRRUS
+ boolean
+
config ADK_KERNEL_FB_GEODE
boolean
+config ADK_KERNEL_FB_SM501
+ select ADK_KERNEL_MFD_SM501
+ boolean
+
config ADK_KERNEL_DRM
boolean
@@ -74,26 +84,14 @@ config ADK_KERNEL_FB_VESA
help
Framebuffer support for VirtualBox Emulator.
-config ADK_KERNEL_FB_CIRRUS
- prompt "................................ Framebuffer support for QEMU Emulator (Cirrus)"
- boolean
- select ADK_KERNEL_FB
- select ADK_KERNEL_FRAMEBUFFER_CONSOLE
- default y if ADK_TARGET_SYSTEM_QEMU_I686
- default n
- depends on ADK_TARGET_SYSTEM_QEMU_I686
- help
- Framebuffer support for Qemu Emulator.
-
config ADK_KERNEL_FB_PXA
prompt "................................ Framebuffer support for Sharp Zaurus"
tristate
select ADK_KERNEL_FB
select ADK_KERNEL_FRAMEBUFFER_CONSOLE
default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default y if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
default n
- depends on ADK_TARGET_SYSTEM_SHARP_ZAURUS || ADK_TARGET_QEMU_ARM_MODEL_SPITZ
+ depends on ADK_TARGET_SYSTEM_SHARP_ZAURUS
help
Framebuffer support for Sharp Zaurus CL Series.
diff --git a/target/linux/config/Config.in.input b/target/linux/config/Config.in.input
index 37ad2172b..939354881 100644
--- a/target/linux/config/Config.in.input
+++ b/target/linux/config/Config.in.input
@@ -1,22 +1,12 @@
-menu "Input devices"
-depends on ADK_TARGET_WITH_USB || ADK_TARGET_WITH_INPUT || ADK_TARGET_WITH_TOUCHSCREEN
-
config ADK_KERNEL_INPUT
boolean
- default y if ADK_TARGET_SYSTEM_QEMU_I686
- default y if ADK_TARGET_SYSTEM_QEMU_X86_64
- default y if ADK_TARGET_SYSTEM_QEMU_SH4
default y if ADK_TARGET_SYSTEM_ARANYM_M68K
default y if ADK_TARGET_SYSTEM_VBOX_I686
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_TAROX_PC
- default y if ADK_NATIVE_SYSTEM_TAROX_PC
- default y if ADK_TARGET_SYSTEM_INTEL_ATOM
- default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76
+ default y if ADK_NATIVE_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
default n
@@ -67,72 +57,48 @@ config ADK_KERNEL_INPUT_EVDEV
config ADK_KERNEL_INPUT_KEYBOARD
boolean
- default y if ADK_TARGET_SYSTEM_QEMU_I686
- default y if ADK_TARGET_SYSTEM_QEMU_X86_64
default y if ADK_TARGET_SYSTEM_ARANYM_M68K
default y if ADK_TARGET_SYSTEM_VBOX_I686
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_TAROX_PC
- default y if ADK_NATIVE_SYSTEM_TAROX_PC
- default y if ADK_TARGET_SYSTEM_INTEL_ATOM
- default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76
+ default y if ADK_NATIVE_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
default n
config ADK_KERNEL_KEYBOARD_ATKBD
boolean
- default y if ADK_TARGET_SYSTEM_QEMU_I686
- default y if ADK_TARGET_SYSTEM_QEMU_X86_64
default y if ADK_TARGET_SYSTEM_VBOX_I686
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_TAROX_PC
- default y if ADK_NATIVE_SYSTEM_TAROX_PC
- default y if ADK_TARGET_SYSTEM_INTEL_ATOM
- default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76
+ default y if ADK_NATIVE_SYSTEM_LEMOTE_YEELONG
default n
config ADK_KERNEL_INPUT_MOUSE
boolean
- default y if ADK_TARGET_SYSTEM_QEMU_I686
- default y if ADK_TARGET_SYSTEM_QEMU_X86_64
default y if ADK_TARGET_SYSTEM_ARANYM_M68K
default y if ADK_TARGET_SYSTEM_VBOX_I686
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_TAROX_PC
- default y if ADK_NATIVE_SYSTEM_TAROX_PC
- default y if ADK_TARGET_SYSTEM_INTEL_ATOM
- default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76
+ default y if ADK_NATIVE_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
default n
config ADK_KERNEL_INPUT_MOUSEDEV
boolean
- default y if ADK_TARGET_SYSTEM_QEMU_I686
- default y if ADK_TARGET_SYSTEM_QEMU_X86_64
default y if ADK_TARGET_SYSTEM_VBOX_I686
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_TAROX_PC
- default y if ADK_NATIVE_SYSTEM_TAROX_PC
- default y if ADK_TARGET_SYSTEM_INTEL_ATOM
- default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76
+ default y if ADK_NATIVE_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
default n
@@ -151,6 +117,8 @@ config ADK_KERNEL_HID_GENERIC
select ADK_KERNEL_HID_SUPPORT
default n
+menu "Input devices"
+depends on ADK_TARGET_WITH_USB || ADK_TARGET_WITH_INPUT || ADK_TARGET_WITH_TOUCHSCREEN
config ADK_KPACKAGE_KMOD_USB_HID
prompt "kmod-usb-hid..................... USB keyboard/mouse support"
@@ -164,7 +132,8 @@ config ADK_KPACKAGE_KMOD_USB_HID
depends on ADK_PACKAGE_KMOD_USB_CONTROLLER
depends on ADK_TARGET_WITH_USB
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
- default y if ADK_TARGET_SYSTEM_QEMU_SH4
+ default y if ADK_TARGET_SYSTEM_QEMU_SH4 && ADK_TARGET_QEMU_WITH_GRAPHIC
+ default y if ADK_TARGET_SYSTEM_QEMU_SH4EB && ADK_TARGET_QEMU_WITH_GRAPHIC
default n
config ADK_KERNEL_LOGITECH_DINOVO
diff --git a/target/linux/patches/3.13.5/ppc64-missing_arch_random.patch b/target/linux/patches/3.13.5/ppc64-missing_arch_random.patch
new file mode 100644
index 000000000..b341a7be5
--- /dev/null
+++ b/target/linux/patches/3.13.5/ppc64-missing_arch_random.patch
@@ -0,0 +1,11 @@
+diff -Nur linux-3.13.5.orig/arch/powerpc/platforms/pseries/Kconfig linux-3.13.5/arch/powerpc/platforms/pseries/Kconfig
+--- linux-3.13.5.orig/arch/powerpc/platforms/pseries/Kconfig 2014-02-22 22:35:30.000000000 +0100
++++ linux-3.13.5/arch/powerpc/platforms/pseries/Kconfig 2014-03-04 13:55:06.000000000 +0100
+@@ -20,6 +20,7 @@
+ select PPC_DOORBELL
+ select HAVE_CONTEXT_TRACKING
+ select HOTPLUG_CPU if SMP
++ select ARCH_RANDOM
+ default y
+
+ config PPC_SPLPAR
diff --git a/target/packages/pkg-available/test b/target/packages/pkg-available/test
new file mode 100644
index 000000000..d7bbcf26a
--- /dev/null
+++ b/target/packages/pkg-available/test
@@ -0,0 +1,9 @@
+config ADK_PKG_TEST
+ bool "Compile a ADK test framework system"
+ default n
+ select ADK_PACKAGE_STRACE
+ select ADK_PACKAGE_SOCAT
+ select ADK_PACKAGE_MAKE
+ help
+ Package collection used to build adk-test-framework root
+ filesystem.
diff --git a/target/sh/Makefile b/target/sh/Makefile
index 98c5fb3ce..da733acac 100644
--- a/target/sh/Makefile
+++ b/target/sh/Makefile
@@ -18,7 +18,7 @@ ifneq ($(ADK_HARDWARE_QEMU),)
@echo "Use following command to create a QEMU Image:"
@echo "./scripts/create.sh +g qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
@echo "Start qemu with following options:"
- @echo 'qemu-system-${CPU_ARCH} -M r2d -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
+ @echo 'qemu-system-${CPU_ARCH} ${ADK_QEMU_ARGS} -M r2d -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
@@ -28,7 +28,7 @@ imageinstall: $(FW_DIR)/$(INITRAMFS)
@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
ifeq ($(ADK_HARDWARE_QEMU),y)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-${CPU_ARCH} -M r2d -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
+ @echo 'qemu-system-${CPU_ARCH} ${ADK_QEMU_ARGS} -M r2d -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
endif
endif
ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
@@ -37,6 +37,6 @@ imageinstall: createinitramfs
@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
ifeq ($(ADK_HARDWARE_QEMU),y)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-${CPU_ARCH} -M r2d -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+ @echo 'qemu-system-${CPU_ARCH} ${ADK_QEMU_ARGS} -M r2d -kernel $(FW_DIR)/$(TARGET_KERNEL)'
endif
endif
diff --git a/target/sh/kernel/qemu-sh b/target/sh/kernel/qemu-sh
index 9ea0e8595..5c38a01fb 100644
--- a/target/sh/kernel/qemu-sh
+++ b/target/sh/kernel/qemu-sh
@@ -13,6 +13,7 @@ CONFIG_SH_RTS7751R2D=y
CONFIG_RTS7751R2D_PLUS=y
CONFIG_SH_TIMER_TMU=y
CONFIG_SH_INTC=y
+CONFIG_CMDLINE_OVERWRITE=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_SCSI=y
@@ -34,25 +35,3 @@ CONFIG_SERIAL_SH_SCI_NR_UARTS=2
CONFIG_SERIAL_SH_SCI_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_MFD_SM501=y
-CONFIG_VGA_ARB=y
-CONFIG_VGA_ARB_MAX_GPUS=16
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-CONFIG_FB=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-CONFIG_FB_SYS_FOPS=m
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_BACKLIGHT=y
-CONFIG_FB_SH_MOBILE_LCDC=m
-CONFIG_FB_SM501=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FONT_8x16=y
diff --git a/target/sh/sys-available/qemu-sh4 b/target/sh/sys-available/qemu-sh4
index c0382755a..83a645d65 100644
--- a/target/sh/sys-available/qemu-sh4
+++ b/target/sh/sys-available/qemu-sh4
@@ -4,9 +4,8 @@ config ADK_TARGET_SYSTEM_QEMU_SH4
select ADK_little
select ADK_qemu_sh4
select ADK_CPU_SH4
+ select ADK_KERNEL_CPU_LITTLE_ENDIAN
select ADK_HARDWARE_QEMU
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_INPUT
select ADK_TARGET_WITH_USB
select ADK_USE_KERNEL_MINICONFIG
select ADK_TARGET_KERNEL_ZIMAGE
diff --git a/target/sh/sys-available/qemu-sh4eb b/target/sh/sys-available/qemu-sh4eb
index 5f7a15c84..80389775e 100644
--- a/target/sh/sys-available/qemu-sh4eb
+++ b/target/sh/sys-available/qemu-sh4eb
@@ -6,8 +6,6 @@ config ADK_TARGET_SYSTEM_QEMU_SH4EB
select ADK_CPU_SH4
select ADK_KERNEL_CPU_BIG_ENDIAN
select ADK_HARDWARE_QEMU
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_INPUT
select ADK_TARGET_WITH_USB
select ADK_USE_KERNEL_MINICONFIG
select ADK_TARGET_KERNEL_ZIMAGE
diff --git a/target/x86/sys-available/qemu-i686 b/target/x86/sys-available/qemu-i686
index 45ecd4b04..42f818a14 100644
--- a/target/x86/sys-available/qemu-i686
+++ b/target/x86/sys-available/qemu-i686
@@ -4,8 +4,6 @@ config ADK_TARGET_SYSTEM_QEMU_I686
select ADK_qemu_i686
select ADK_CPU_I686
select ADK_HARDWARE_QEMU
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_INPUT
select ADK_TARGET_KERNEL_BZIMAGE
select ADK_USE_KERNEL_MINICONFIG
help
diff --git a/toolchain/Makefile b/toolchain/Makefile
index 933a919c7..db5f65fd5 100644
--- a/toolchain/Makefile
+++ b/toolchain/Makefile
@@ -56,8 +56,8 @@ endif
$(STAGING_HOST_DIR):
@mkdir -p $(STAGING_HOST_DIR)/lib
@mkdir -p $(STAGING_HOST_DIR)/include
- @mkdir -p $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)
- @ln -sf ../lib $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/lib
+ @mkdir -p $(STAGING_HOST_DIR)/$(GNU_TARGET_NAME)
+ @ln -sf ../lib $(STAGING_HOST_DIR)/$(GNU_TARGET_NAME)/lib
%-download:
$(TRACE) toolchain/$(patsubst %-download,%,$@)/download
diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile
index 201f8538c..8ebbea53c 100644
--- a/toolchain/binutils/Makefile
+++ b/toolchain/binutils/Makefile
@@ -29,7 +29,7 @@ $(WRKBUILD)/.configured:
(cd $(WRKBUILD); \
$(WRKBUILD)/configure \
--prefix=$(STAGING_HOST_DIR) \
- --target=$(REAL_GNU_TARGET_NAME) \
+ --target=$(GNU_TARGET_NAME) \
--with-sysroot=$(STAGING_TARGET_DIR) \
--disable-multilib \
--disable-dependency-tracking \
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 4eba65b87..138e3a0d0 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -12,7 +12,7 @@ GCC_CONFOPTS= --prefix=$(STAGING_HOST_DIR) \
--with-bugurl="http://www.openadk.org/" \
--build=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \
- --target=$(REAL_GNU_TARGET_NAME) \
+ --target=$(GNU_TARGET_NAME) \
--with-gmp=$(STAGING_HOST_DIR) \
--with-mpfr=$(STAGING_HOST_DIR) \
--with-libelf=$(STAGING_HOST_DIR) \
@@ -100,6 +100,10 @@ ifeq ($(ADK_CPU_CORTEX_A9),y)
GCC_CONFOPTS+= --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=neon
endif
+ifeq ($(ADK_CPU_SPARC_V9),y)
+GCC_CONFOPTS+= --with-cpu=ultrasparc
+endif
+
ifneq ($(ADK_TARGET_MIPS_ABI),)
GCC_CONFOPTS+= --with-abi=${ADK_TARGET_MIPS_ABI}
endif
@@ -122,10 +126,10 @@ GCC_BUILD_DIR_FINAL:= $(WRKBUILD)-final
$(GCC_BUILD_DIR_MINIMAL)/.configured:
mkdir -p $(GCC_BUILD_DIR_MINIMAL)
# these symlinks are very important, do not remove
- rm -rf $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include
- ln -sf ${STAGING_TARGET_DIR}/usr/include $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include
- rm -rf ${STAGING_HOST_DIR}/$(REAL_GNU_TARGET_NAME)/lib
- ln -sf ${STAGING_TARGET_DIR}/lib $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/lib
+ rm -rf $(STAGING_HOST_DIR)/$(GNU_TARGET_NAME)/sys-include
+ ln -sf ${STAGING_TARGET_DIR}/usr/include $(STAGING_HOST_DIR)/$(GNU_TARGET_NAME)/sys-include
+ rm -rf ${STAGING_HOST_DIR}/$(GNU_TARGET_NAME)/lib
+ ln -sf ${STAGING_TARGET_DIR}/lib $(STAGING_HOST_DIR)/$(GNU_TARGET_NAME)/lib
ifeq ($(ADK_LINUX_SH),y)
(cd ${STAGING_TARGET_DIR}/ && ln -sf . m4 && ln -sf . m4-nofpu)
endif
@@ -182,29 +186,20 @@ $(WRKBUILD)/.compiled: $(GCC_BUILD_DIR_FINAL)/.configured
$(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
PATH='$(TARGET_PATH)' $(MAKE) -C $(GCC_BUILD_DIR_FINAL) install
- # Set up the symlinks to enable lying about target name
- set -e; \
- cd $(STAGING_HOST_DIR); \
- ln -sf $(REAL_GNU_TARGET_NAME) $(GNU_TARGET_NAME); \
- cd bin; \
- for app in $(REAL_GNU_TARGET_NAME)-* ; do \
- ln -sf $${app} \
- $(GNU_TARGET_NAME)$${app##$(REAL_GNU_TARGET_NAME)}; \
- done;
# remove duplicate tools, convert hardlinks to symlinks
set -e; \
cd $(STAGING_HOST_DIR)/$(GNU_TARGET_NAME)/bin; \
for app in ar as c++ g++ gcc ld ld.bfd nm objcopy objdump ranlib strip; do \
- ln -sf ../../bin/$(REAL_GNU_TARGET_NAME)-$${app} $${app}; \
+ ln -sf ../../bin/$(GNU_TARGET_NAME)-$${app} $${app}; \
done;
(cd $(STAGING_HOST_DIR)/bin && \
- ln -sf $(REAL_GNU_TARGET_NAME)-gcc $(REAL_GNU_TARGET_NAME)-gcc-${PKG_VERSION})
+ ln -sf $(GNU_TARGET_NAME)-gcc $(GNU_TARGET_NAME)-gcc-${PKG_VERSION})
# setup symlink, so that gcc/g++ find cc1plus
- (cd $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/ && \
+ (cd $(STAGING_HOST_DIR)/$(GNU_TARGET_NAME)/ && \
ln -sf ../libexec .)
# setup symlink, so that gcc/g++ find stddef.h
- (cd $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/lib/ && \
- ln -sf ../../host_${CPU_ARCH}_${ADK_TARGET_SUFFIX}_${ADK_TARGET_LIBC}/lib/gcc .)
+ (cd $(STAGING_HOST_DIR)/$(GNU_TARGET_NAME)/lib/ && \
+ ln -sf ../../host_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_SUFFIX}/lib/gcc .)
# fix linking g++ apps with libtool
@-test -d $(STAGING_TARGET_DIR)/lib32 && \
cd $(STAGING_TARGET_DIR)/lib32 && \
diff --git a/toolchain/gdb/Makefile b/toolchain/gdb/Makefile
index c56ed99f9..a66e3fe7d 100644
--- a/toolchain/gdb/Makefile
+++ b/toolchain/gdb/Makefile
@@ -18,7 +18,7 @@ $(WRKBUILD)/.configured:
--prefix=$(STAGING_HOST_DIR) \
--build=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \
- --target=$(REAL_GNU_TARGET_NAME) \
+ --target=$(GNU_TARGET_NAME) \
--disable-dependency-tracking \
--without-uiout \
--enable-gdbmi \
@@ -41,8 +41,6 @@ $(WRKBUILD)/.compiled:
$(WRKBUILD)/.installed:
install -c $(WRKBUILD)/gdb/gdb $(TARGET_CROSS)gdb
- cd $(STAGING_HOST_DIR)/bin && \
- ln -fs $(TARGET_CROSS)gdb $(GNU_TARGET_NAME)-gdb
touch $@
include ${TOPDIR}/mk/toolchain.mk
diff --git a/toolchain/glibc/Makefile b/toolchain/glibc/Makefile
index 00bd67cbc..41987bada 100644
--- a/toolchain/glibc/Makefile
+++ b/toolchain/glibc/Makefile
@@ -73,8 +73,11 @@ $(WRKBUILD)/.fixup:
-find $(STAGING_TARGET_DIR) -type f -name \*_pic\* -delete
rm -rf $(STAGING_TARGET_DIR)/usr/share/locale $(STAGING_TARGET_DIR)/usr/share/i18n
rm -rf $(STAGING_TARGET_DIR)/usr/lib/gconv
- PATH="$(TARGET_PATH)" debug='' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR)
- debug='' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR)/bin $(STAGING_HOST_DIR)/$(GNU_TARGET_NAME)/
+ifeq ($(ADK_TOOLCHAIN),y)
+ # strip target libs and host tools for toolchain builds
+ PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR)
+ debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR)/bin $(STAGING_HOST_DIR)/$(GNU_TARGET_NAME)/
+endif
touch $@
include ${TOPDIR}/mk/toolchain.mk
diff --git a/toolchain/glibc/Makefile.inc b/toolchain/glibc/Makefile.inc
index e28405643..3c1a3167d 100644
--- a/toolchain/glibc/Makefile.inc
+++ b/toolchain/glibc/Makefile.inc
@@ -7,7 +7,7 @@ PKG_RELEASE:= 1
PKG_MD5SUM:= 5374d29864b583622b62bfc6b8429418
PKG_SITES:= ${MASTER_SITE_GNU:=glibc/}
GLIBC_CONFOPTS:= --build=$(GNU_HOST_NAME) \
- --host=$(REAL_GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
--with-headers=$(STAGING_TARGET_DIR)/usr/include \
--disable-sanity-checks \
--disable-nls \
@@ -23,10 +23,10 @@ GLIBC_CONFOPTS:= --build=$(GNU_HOST_NAME) \
GLIBC_ENV:= PATH='${TARGET_PATH}' \
BUILD_CC=${CC_FOR_BUILD} \
CFLAGS="$(TARGET_CFLAGS_LIBC)" \
- CC=${REAL_GNU_TARGET_NAME}-gcc \
- CXX=${REAL_GNU_TARGET_NAME}-g++ \
- AR=${REAL_GNU_TARGET_NAME}-ar \
- RANLIB=${REAL_GNU_TARGET_NAME}-ranlib \
+ CC=${GNU_TARGET_NAME}-gcc \
+ CXX=${GNU_TARGET_NAME}-g++ \
+ AR=${GNU_TARGET_NAME}-ar \
+ RANLIB=${GNU_TARGET_NAME}-ranlib \
libc_cv_forced_unwind=yes \
libc_cv_cc_with_libunwind=yes \
libc_cv_c_cleanup=yes \
diff --git a/toolchain/glibc/patches/glibc-cross.patch b/toolchain/glibc/patches/glibc-cross.patch
index 4084fd20d..a1903179d 100644
--- a/toolchain/glibc/patches/glibc-cross.patch
+++ b/toolchain/glibc/patches/glibc-cross.patch
@@ -1,8 +1,8 @@
-diff -Nur glibc-2.18.orig/sunrpc/rpc/types.h glibc-2.18/sunrpc/rpc/types.h
---- glibc-2.18.orig/sunrpc/rpc/types.h 2013-08-11 00:52:55.000000000 +0200
-+++ glibc-2.18/sunrpc/rpc/types.h 2013-09-13 08:25:18.000000000 +0200
-@@ -69,19 +69,25 @@
- #include <sys/types.h>
+diff -Nur glibc-2.19.orig/sunrpc/rpc/types.h glibc-2.19/sunrpc/rpc/types.h
+--- glibc-2.19.orig/sunrpc/rpc/types.h 2014-02-07 10:04:38.000000000 +0100
++++ glibc-2.19/sunrpc/rpc/types.h 2014-03-03 13:42:42.000000000 +0100
+@@ -74,19 +74,24 @@
+ # define __daddr_t_defined
#endif
-#ifndef __u_char_defined
@@ -18,15 +18,14 @@ diff -Nur glibc-2.18.orig/sunrpc/rpc/types.h glibc-2.18/sunrpc/rpc/types.h
+typedef unsigned short u_short;
+typedef unsigned int u_int;
+typedef unsigned long u_long;
-+#if __WORDSIZE == 64
++#if __WORDSIZE == 64
++#ifndef __APPLE__
+typedef long int quad_t;
+typedef unsigned long int u_quad_t;
++#endif
+#elif defined __GLIBC_HAVE_LONG_LONG
+typedef long long int quad_t;
+typedef unsigned long long int u_quad_t;
-+#endif
-+#if defined(_CROSS_RPCGEN_)
-+typedef u_quad_t fsid_t;
#endif
-#ifndef __daddr_t_defined
-typedef __daddr_t daddr_t;
@@ -39,14 +38,14 @@ diff -Nur glibc-2.18.orig/sunrpc/rpc/types.h glibc-2.18/sunrpc/rpc/types.h
# define __daddr_t_defined
#endif
-diff -Nur glibc-2.18.orig/sunrpc/rpc_main.c glibc-2.18/sunrpc/rpc_main.c
---- glibc-2.18.orig/sunrpc/rpc_main.c 2013-08-11 00:52:55.000000000 +0200
-+++ glibc-2.18/sunrpc/rpc_main.c 2013-09-13 08:26:07.000000000 +0200
+diff -Nur glibc-2.19.orig/sunrpc/rpc_main.c glibc-2.19/sunrpc/rpc_main.c
+--- glibc-2.19.orig/sunrpc/rpc_main.c 2014-02-07 10:04:38.000000000 +0100
++++ glibc-2.19/sunrpc/rpc_main.c 2014-03-04 07:12:00.000000000 +0100
@@ -38,7 +38,11 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
-+#ifdef _CROSS_RPCGEN_
++#ifdef __APPLE__
+#define gettext(X) (X)
+#else
#include <libintl.h>
@@ -70,14 +69,14 @@ diff -Nur glibc-2.18.orig/sunrpc/rpc_main.c glibc-2.18/sunrpc/rpc_main.c
}
else
-diff -Nur glibc-2.18.orig/sunrpc/rpc_scan.c glibc-2.18/sunrpc/rpc_scan.c
---- glibc-2.18.orig/sunrpc/rpc_scan.c 2013-08-11 00:52:55.000000000 +0200
-+++ glibc-2.18/sunrpc/rpc_scan.c 2013-09-13 08:25:18.000000000 +0200
+diff -Nur glibc-2.19.orig/sunrpc/rpc_scan.c glibc-2.19/sunrpc/rpc_scan.c
+--- glibc-2.19.orig/sunrpc/rpc_scan.c 2014-02-07 10:04:38.000000000 +0100
++++ glibc-2.19/sunrpc/rpc_scan.c 2014-03-04 07:11:29.000000000 +0100
@@ -37,7 +37,11 @@
#include <stdio.h>
#include <ctype.h>
#include <string.h>
-+#ifdef _CROSS_RPCGEN_
++#ifdef __APPLE__
+#define gettext(X) (X)
+#else
#include <libintl.h>
diff --git a/toolchain/glibc/patches/sparc64.patch b/toolchain/glibc/patches/sparc64.patch
deleted file mode 100644
index c8ff7ce9f..000000000
--- a/toolchain/glibc/patches/sparc64.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Nur glibc-2.12.1.orig/sysdeps/sparc/sparc64/Makefile glibc-2.12.1/sysdeps/sparc/sparc64/Makefile
---- glibc-2.12.1.orig/sysdeps/sparc/sparc64/Makefile 2010-07-27 13:34:39.000000000 +0200
-+++ glibc-2.12.1/sysdeps/sparc/sparc64/Makefile 2011-01-01 23:58:16.370676501 +0100
-@@ -1,3 +1,5 @@
-+sysdep-CFLAGS += -mcpu=v9 -Wa,-Av9a
-+
- ifeq ($(subdir),csu)
- sysdep_routines += hp-timing
- elide-routines.os += hp-timing
-@@ -10,3 +12,11 @@
- ifeq ($(subdir),string)
- sysdep_routines += align-cpy
- endif
-+
-+ASFLAGS-.o += -Wa,-Av9a
-+ASFLAGS-.os += -Wa,-Av9a
-+ASFLAGS-.op += -Wa,-Av9a
-+ASFLAGS-.og += -Wa,-Av9a
-+ASFLAGS-.ob += -Wa,-Av9a
-+ASFLAGS-.oS += -Wa,-Av9a
-+
diff --git a/toolchain/musl/Makefile b/toolchain/musl/Makefile
index b94c4e916..aa5e8845c 100644
--- a/toolchain/musl/Makefile
+++ b/toolchain/musl/Makefile
@@ -7,25 +7,19 @@ include Makefile.inc
include ${TOPDIR}/mk/buildhlp.mk
ifeq ($(CPU_ARCH),ppc)
-REAL_GNU_TARGET_NAME:= $(subst ppc,powerpc,$(REAL_GNU_TARGET_NAME))
+GNU_TARGET_NAME:= $(subst ppc,powerpc,$(GNU_TARGET_NAME))
endif
ifeq ($(CPU_ARCH),mips64el)
-REAL_GNU_TARGET_NAME:= $(subst mips64el,mips,$(REAL_GNU_TARGET_NAME))
+GNU_TARGET_NAME:= $(subst mips64el,mips,$(GNU_TARGET_NAME))
endif
ifeq ($(CPU_ARCH),mips64)
-REAL_GNU_TARGET_NAME:= $(subst mips64,mips,$(REAL_GNU_TARGET_NAME))
-endif
-ifeq ($(CPU_ARCH),microblazeel)
-REAL_GNU_TARGET_NAME:= $(subst microblazeel,microblaze,$(REAL_GNU_TARGET_NAME))
-endif
-ifeq ($(CPU_ARCH),sh4)
-REAL_GNU_TARGET_NAME:= $(subst sh4,sh,$(REAL_GNU_TARGET_NAME))
+GNU_TARGET_NAME:= $(subst mips64,mips,$(GNU_TARGET_NAME))
endif
$(WRKBUILD)/.headers:
(cd $(WRKBUILD); CC='$(TARGET_CC)' CROSS_COMPILE='$(TARGET_CROSS)' \
./configure --prefix=/usr \
- --target=$(REAL_GNU_TARGET_NAME) \
+ --target=$(GNU_TARGET_NAME) \
--disable-gcc-wrapper \
)
$(MAKE) -C $(WRKBUILD) DESTDIR=$(STAGING_TARGET_DIR) install-headers
@@ -37,7 +31,7 @@ $(WRKBUILD)/.compiled:
$(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) clean
(cd $(WRKBUILD); CC='$(TARGET_CC)' CROSS_COMPILE='$(TARGET_CROSS)' \
./configure --prefix=/usr \
- --target=$(REAL_GNU_TARGET_NAME) \
+ --target=$(GNU_TARGET_NAME) \
--disable-gcc-wrapper \
)
$(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) all
@@ -52,15 +46,18 @@ $(WRKBUILD)/.fixup:
$(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) clean
(cd $(WRKBUILD); CC='$(TARGET_CC)' CROSS_COMPILE='$(TARGET_CROSS)' \
./configure --prefix=/usr \
- --target=$(REAL_GNU_TARGET_NAME) \
+ --target=$(GNU_TARGET_NAME) \
--disable-gcc-wrapper \
)
$(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) all
$(MAKE) -C $(WRKBUILD) DESTDIR=$(STAGING_TARGET_DIR) install
# cleanup toolchain
-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
- PATH="$(TARGET_PATH)" debug='' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR)
- debug='' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR)
+ifeq ($(ADK_TOOLCHAIN),y)
+ # strip target libs and host tools for toolchain builds
+ PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR)
+ debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR)
+endif
touch $@
include ${TOPDIR}/mk/toolchain.mk
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index 7e53b5d21..4ee9af510 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -120,8 +120,11 @@ endif
ln -s libc.so.0 $(STAGING_TARGET_DIR)/lib/libc.so
# cleanup toolchain
-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
- PATH="$(TARGET_PATH)" debug='' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR)
- debug='' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR)
+ifeq ($(ADK_TOOLCHAIN),y)
+ # strip target libs and host tools for toolchain builds
+ PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR)
+ debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR)
+endif
touch $@
include ${TOPDIR}/mk/toolchain.mk
diff --git a/tools/lzma-loader/Makefile b/tools/lzma-loader/Makefile
deleted file mode 100644
index ad4a531b6..000000000
--- a/tools/lzma-loader/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-all:
- $(MAKE) -C src CC="$(TARGET_CC)" LD="$(TARGET_CROSS)ld" CROSS_COMPILE="$(TARGET_CROSS)" \
- INCLUDE="-I$(LINUX_DIR)/arch/mips/include"
diff --git a/tools/lzma-loader/src/LzmaDecode.c b/tools/lzma-loader/src/LzmaDecode.c
deleted file mode 100644
index 951700bdd..000000000
--- a/tools/lzma-loader/src/LzmaDecode.c
+++ /dev/null
@@ -1,663 +0,0 @@
-/*
- LzmaDecode.c
- LZMA Decoder
-
- LZMA SDK 4.05 Copyright (c) 1999-2004 Igor Pavlov (2004-08-25)
- http://www.7-zip.org/
-
- LZMA SDK is licensed under two licenses:
- 1) GNU Lesser General Public License (GNU LGPL)
- 2) Common Public License (CPL)
- It means that you can select one of these two licenses and
- follow rules of that license.
-
- SPECIAL EXCEPTION:
- Igor Pavlov, as the author of this code, expressly permits you to
- statically or dynamically link your code (or bind by name) to the
- interfaces of this file without subjecting your linked code to the
- terms of the CPL or GNU LGPL. Any modifications or additions
- to this file, however, are subject to the LGPL or CPL terms.
-*/
-
-#include "LzmaDecode.h"
-
-#ifndef Byte
-#define Byte unsigned char
-#endif
-
-#define kNumTopBits 24
-#define kTopValue ((UInt32)1 << kNumTopBits)
-
-#define kNumBitModelTotalBits 11
-#define kBitModelTotal (1 << kNumBitModelTotalBits)
-#define kNumMoveBits 5
-
-typedef struct _CRangeDecoder
-{
- Byte *Buffer;
- Byte *BufferLim;
- UInt32 Range;
- UInt32 Code;
- #ifdef _LZMA_IN_CB
- ILzmaInCallback *InCallback;
- int Result;
- #endif
- int ExtraBytes;
-} CRangeDecoder;
-
-Byte RangeDecoderReadByte(CRangeDecoder *rd)
-{
- if (rd->Buffer == rd->BufferLim)
- {
- #ifdef _LZMA_IN_CB
- UInt32 size;
- rd->Result = rd->InCallback->Read(rd->InCallback, &rd->Buffer, &size);
- rd->BufferLim = rd->Buffer + size;
- if (size == 0)
- #endif
- {
- rd->ExtraBytes = 1;
- return 0xFF;
- }
- }
- return (*rd->Buffer++);
-}
-
-/* #define ReadByte (*rd->Buffer++) */
-#define ReadByte (RangeDecoderReadByte(rd))
-
-void RangeDecoderInit(CRangeDecoder *rd,
- #ifdef _LZMA_IN_CB
- ILzmaInCallback *inCallback
- #else
- Byte *stream, UInt32 bufferSize
- #endif
- )
-{
- int i;
- #ifdef _LZMA_IN_CB
- rd->InCallback = inCallback;
- rd->Buffer = rd->BufferLim = 0;
- #else
- rd->Buffer = stream;
- rd->BufferLim = stream + bufferSize;
- #endif
- rd->ExtraBytes = 0;
- rd->Code = 0;
- rd->Range = (0xFFFFFFFF);
- for(i = 0; i < 5; i++)
- rd->Code = (rd->Code << 8) | ReadByte;
-}
-
-#define RC_INIT_VAR UInt32 range = rd->Range; UInt32 code = rd->Code;
-#define RC_FLUSH_VAR rd->Range = range; rd->Code = code;
-#define RC_NORMALIZE if (range < kTopValue) { range <<= 8; code = (code << 8) | ReadByte; }
-
-UInt32 RangeDecoderDecodeDirectBits(CRangeDecoder *rd, int numTotalBits)
-{
- RC_INIT_VAR
- UInt32 result = 0;
- int i;
- for (i = numTotalBits; i > 0; i--)
- {
- /* UInt32 t; */
- range >>= 1;
-
- result <<= 1;
- if (code >= range)
- {
- code -= range;
- result |= 1;
- }
- /*
- t = (code - range) >> 31;
- t &= 1;
- code -= range & (t - 1);
- result = (result + result) | (1 - t);
- */
- RC_NORMALIZE
- }
- RC_FLUSH_VAR
- return result;
-}
-
-int RangeDecoderBitDecode(CProb *prob, CRangeDecoder *rd)
-{
- UInt32 bound = (rd->Range >> kNumBitModelTotalBits) * *prob;
- if (rd->Code < bound)
- {
- rd->Range = bound;
- *prob += (kBitModelTotal - *prob) >> kNumMoveBits;
- if (rd->Range < kTopValue)
- {
- rd->Code = (rd->Code << 8) | ReadByte;
- rd->Range <<= 8;
- }
- return 0;
- }
- else
- {
- rd->Range -= bound;
- rd->Code -= bound;
- *prob -= (*prob) >> kNumMoveBits;
- if (rd->Range < kTopValue)
- {
- rd->Code = (rd->Code << 8) | ReadByte;
- rd->Range <<= 8;
- }
- return 1;
- }
-}
-
-#define RC_GET_BIT2(prob, mi, A0, A1) \
- UInt32 bound = (range >> kNumBitModelTotalBits) * *prob; \
- if (code < bound) \
- { A0; range = bound; *prob += (kBitModelTotal - *prob) >> kNumMoveBits; mi <<= 1; } \
- else \
- { A1; range -= bound; code -= bound; *prob -= (*prob) >> kNumMoveBits; mi = (mi + mi) + 1; } \
- RC_NORMALIZE
-
-#define RC_GET_BIT(prob, mi) RC_GET_BIT2(prob, mi, ; , ;)
-
-int RangeDecoderBitTreeDecode(CProb *probs, int numLevels, CRangeDecoder *rd)
-{
- int mi = 1;
- int i;
- #ifdef _LZMA_LOC_OPT
- RC_INIT_VAR
- #endif
- for(i = numLevels; i > 0; i--)
- {
- #ifdef _LZMA_LOC_OPT
- CProb *prob = probs + mi;
- RC_GET_BIT(prob, mi)
- #else
- mi = (mi + mi) + RangeDecoderBitDecode(probs + mi, rd);
- #endif
- }
- #ifdef _LZMA_LOC_OPT
- RC_FLUSH_VAR
- #endif
- return mi - (1 << numLevels);
-}
-
-int RangeDecoderReverseBitTreeDecode(CProb *probs, int numLevels, CRangeDecoder *rd)
-{
- int mi = 1;
- int i;
- int symbol = 0;
- #ifdef _LZMA_LOC_OPT
- RC_INIT_VAR
- #endif
- for(i = 0; i < numLevels; i++)
- {
- #ifdef _LZMA_LOC_OPT
- CProb *prob = probs + mi;
- RC_GET_BIT2(prob, mi, ; , symbol |= (1 << i))
- #else
- int bit = RangeDecoderBitDecode(probs + mi, rd);
- mi = mi + mi + bit;
- symbol |= (bit << i);
- #endif
- }
- #ifdef _LZMA_LOC_OPT
- RC_FLUSH_VAR
- #endif
- return symbol;
-}
-
-Byte LzmaLiteralDecode(CProb *probs, CRangeDecoder *rd)
-{
- int symbol = 1;
- #ifdef _LZMA_LOC_OPT
- RC_INIT_VAR
- #endif
- do
- {
- #ifdef _LZMA_LOC_OPT
- CProb *prob = probs + symbol;
- RC_GET_BIT(prob, symbol)
- #else
- symbol = (symbol + symbol) | RangeDecoderBitDecode(probs + symbol, rd);
- #endif
- }
- while (symbol < 0x100);
- #ifdef _LZMA_LOC_OPT
- RC_FLUSH_VAR
- #endif
- return symbol;
-}
-
-Byte LzmaLiteralDecodeMatch(CProb *probs, CRangeDecoder *rd, Byte matchByte)
-{
- int symbol = 1;
- #ifdef _LZMA_LOC_OPT
- RC_INIT_VAR
- #endif
- do
- {
- int bit;
- int matchBit = (matchByte >> 7) & 1;
- matchByte <<= 1;
- #ifdef _LZMA_LOC_OPT
- {
- CProb *prob = probs + ((1 + matchBit) << 8) + symbol;
- RC_GET_BIT2(prob, symbol, bit = 0, bit = 1)
- }
- #else
- bit = RangeDecoderBitDecode(probs + ((1 + matchBit) << 8) + symbol, rd);
- symbol = (symbol << 1) | bit;
- #endif
- if (matchBit != bit)
- {
- while (symbol < 0x100)
- {
- #ifdef _LZMA_LOC_OPT
- CProb *prob = probs + symbol;
- RC_GET_BIT(prob, symbol)
- #else
- symbol = (symbol + symbol) | RangeDecoderBitDecode(probs + symbol, rd);
- #endif
- }
- break;
- }
- }
- while (symbol < 0x100);
- #ifdef _LZMA_LOC_OPT
- RC_FLUSH_VAR
- #endif
- return symbol;
-}
-
-#define kNumPosBitsMax 4
-#define kNumPosStatesMax (1 << kNumPosBitsMax)
-
-#define kLenNumLowBits 3
-#define kLenNumLowSymbols (1 << kLenNumLowBits)
-#define kLenNumMidBits 3
-#define kLenNumMidSymbols (1 << kLenNumMidBits)
-#define kLenNumHighBits 8
-#define kLenNumHighSymbols (1 << kLenNumHighBits)
-
-#define LenChoice 0
-#define LenChoice2 (LenChoice + 1)
-#define LenLow (LenChoice2 + 1)
-#define LenMid (LenLow + (kNumPosStatesMax << kLenNumLowBits))
-#define LenHigh (LenMid + (kNumPosStatesMax << kLenNumMidBits))
-#define kNumLenProbs (LenHigh + kLenNumHighSymbols)
-
-int LzmaLenDecode(CProb *p, CRangeDecoder *rd, int posState)
-{
- if(RangeDecoderBitDecode(p + LenChoice, rd) == 0)
- return RangeDecoderBitTreeDecode(p + LenLow +
- (posState << kLenNumLowBits), kLenNumLowBits, rd);
- if(RangeDecoderBitDecode(p + LenChoice2, rd) == 0)
- return kLenNumLowSymbols + RangeDecoderBitTreeDecode(p + LenMid +
- (posState << kLenNumMidBits), kLenNumMidBits, rd);
- return kLenNumLowSymbols + kLenNumMidSymbols +
- RangeDecoderBitTreeDecode(p + LenHigh, kLenNumHighBits, rd);
-}
-
-#define kNumStates 12
-
-#define kStartPosModelIndex 4
-#define kEndPosModelIndex 14
-#define kNumFullDistances (1 << (kEndPosModelIndex >> 1))
-
-#define kNumPosSlotBits 6
-#define kNumLenToPosStates 4
-
-#define kNumAlignBits 4
-#define kAlignTableSize (1 << kNumAlignBits)
-
-#define kMatchMinLen 2
-
-#define IsMatch 0
-#define IsRep (IsMatch + (kNumStates << kNumPosBitsMax))
-#define IsRepG0 (IsRep + kNumStates)
-#define IsRepG1 (IsRepG0 + kNumStates)
-#define IsRepG2 (IsRepG1 + kNumStates)
-#define IsRep0Long (IsRepG2 + kNumStates)
-#define PosSlot (IsRep0Long + (kNumStates << kNumPosBitsMax))
-#define SpecPos (PosSlot + (kNumLenToPosStates << kNumPosSlotBits))
-#define Align (SpecPos + kNumFullDistances - kEndPosModelIndex)
-#define LenCoder (Align + kAlignTableSize)
-#define RepLenCoder (LenCoder + kNumLenProbs)
-#define Literal (RepLenCoder + kNumLenProbs)
-
-#if Literal != LZMA_BASE_SIZE
-StopCompilingDueBUG
-#endif
-
-#ifdef _LZMA_OUT_READ
-
-typedef struct _LzmaVarState
-{
- CRangeDecoder RangeDecoder;
- Byte *Dictionary;
- UInt32 DictionarySize;
- UInt32 DictionaryPos;
- UInt32 GlobalPos;
- UInt32 Reps[4];
- int lc;
- int lp;
- int pb;
- int State;
- int PreviousIsMatch;
- int RemainLen;
-} LzmaVarState;
-
-int LzmaDecoderInit(
- unsigned char *buffer, UInt32 bufferSize,
- int lc, int lp, int pb,
- unsigned char *dictionary, UInt32 dictionarySize,
- #ifdef _LZMA_IN_CB
- ILzmaInCallback *inCallback
- #else
- unsigned char *inStream, UInt32 inSize
- #endif
- )
-{
- LzmaVarState *vs = (LzmaVarState *)buffer;
- CProb *p = (CProb *)(buffer + sizeof(LzmaVarState));
- UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + lp));
- UInt32 i;
- if (bufferSize < numProbs * sizeof(CProb) + sizeof(LzmaVarState))
- return LZMA_RESULT_NOT_ENOUGH_MEM;
- vs->Dictionary = dictionary;
- vs->DictionarySize = dictionarySize;
- vs->DictionaryPos = 0;
- vs->GlobalPos = 0;
- vs->Reps[0] = vs->Reps[1] = vs->Reps[2] = vs->Reps[3] = 1;
- vs->lc = lc;
- vs->lp = lp;
- vs->pb = pb;
- vs->State = 0;
- vs->PreviousIsMatch = 0;
- vs->RemainLen = 0;
- dictionary[dictionarySize - 1] = 0;
- for (i = 0; i < numProbs; i++)
- p[i] = kBitModelTotal >> 1;
- RangeDecoderInit(&vs->RangeDecoder,
- #ifdef _LZMA_IN_CB
- inCallback
- #else
- inStream, inSize
- #endif
- );
- return LZMA_RESULT_OK;
-}
-
-int LzmaDecode(unsigned char *buffer,
- unsigned char *outStream, UInt32 outSize,
- UInt32 *outSizeProcessed)
-{
- LzmaVarState *vs = (LzmaVarState *)buffer;
- CProb *p = (CProb *)(buffer + sizeof(LzmaVarState));
- CRangeDecoder rd = vs->RangeDecoder;
- int state = vs->State;
- int previousIsMatch = vs->PreviousIsMatch;
- Byte previousByte;
- UInt32 rep0 = vs->Reps[0], rep1 = vs->Reps[1], rep2 = vs->Reps[2], rep3 = vs->Reps[3];
- UInt32 nowPos = 0;
- UInt32 posStateMask = (1 << (vs->pb)) - 1;
- UInt32 literalPosMask = (1 << (vs->lp)) - 1;
- int lc = vs->lc;
- int len = vs->RemainLen;
- UInt32 globalPos = vs->GlobalPos;
-
- Byte *dictionary = vs->Dictionary;
- UInt32 dictionarySize = vs->DictionarySize;
- UInt32 dictionaryPos = vs->DictionaryPos;
-
- if (len == -1)
- {
- *outSizeProcessed = 0;
- return LZMA_RESULT_OK;
- }
-
- while(len > 0 && nowPos < outSize)
- {
- UInt32 pos = dictionaryPos - rep0;
- if (pos >= dictionarySize)
- pos += dictionarySize;
- outStream[nowPos++] = dictionary[dictionaryPos] = dictionary[pos];
- if (++dictionaryPos == dictionarySize)
- dictionaryPos = 0;
- len--;
- }
- if (dictionaryPos == 0)
- previousByte = dictionary[dictionarySize - 1];
- else
- previousByte = dictionary[dictionaryPos - 1];
-#else
-
-int LzmaDecode(
- Byte *buffer, UInt32 bufferSize,
- int lc, int lp, int pb,
- #ifdef _LZMA_IN_CB
- ILzmaInCallback *inCallback,
- #else
- unsigned char *inStream, UInt32 inSize,
- #endif
- unsigned char *outStream, UInt32 outSize,
- UInt32 *outSizeProcessed)
-{
- UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + lp));
- CProb *p = (CProb *)buffer;
- CRangeDecoder rd;
- UInt32 i;
- int state = 0;
- int previousIsMatch = 0;
- Byte previousByte = 0;
- UInt32 rep0 = 1, rep1 = 1, rep2 = 1, rep3 = 1;
- UInt32 nowPos = 0;
- UInt32 posStateMask = (1 << pb) - 1;
- UInt32 literalPosMask = (1 << lp) - 1;
- int len = 0;
- if (bufferSize < numProbs * sizeof(CProb))
- return LZMA_RESULT_NOT_ENOUGH_MEM;
- for (i = 0; i < numProbs; i++)
- p[i] = kBitModelTotal >> 1;
- RangeDecoderInit(&rd,
- #ifdef _LZMA_IN_CB
- inCallback
- #else
- inStream, inSize
- #endif
- );
-#endif
-
- *outSizeProcessed = 0;
- while(nowPos < outSize)
- {
- int posState = (int)(
- (nowPos
- #ifdef _LZMA_OUT_READ
- + globalPos
- #endif
- )
- & posStateMask);
- #ifdef _LZMA_IN_CB
- if (rd.Result != LZMA_RESULT_OK)
- return rd.Result;
- #endif
- if (rd.ExtraBytes != 0)
- return LZMA_RESULT_DATA_ERROR;
- if (RangeDecoderBitDecode(p + IsMatch + (state << kNumPosBitsMax) + posState, &rd) == 0)
- {
- CProb *probs = p + Literal + (LZMA_LIT_SIZE *
- (((
- (nowPos
- #ifdef _LZMA_OUT_READ
- + globalPos
- #endif
- )
- & literalPosMask) << lc) + (previousByte >> (8 - lc))));
-
- if (state < 4) state = 0;
- else if (state < 10) state -= 3;
- else state -= 6;
- if (previousIsMatch)
- {
- Byte matchByte;
- #ifdef _LZMA_OUT_READ
- UInt32 pos = dictionaryPos - rep0;
- if (pos >= dictionarySize)
- pos += dictionarySize;
- matchByte = dictionary[pos];
- #else
- matchByte = outStream[nowPos - rep0];
- #endif
- previousByte = LzmaLiteralDecodeMatch(probs, &rd, matchByte);
- previousIsMatch = 0;
- }
- else
- previousByte = LzmaLiteralDecode(probs, &rd);
- outStream[nowPos++] = previousByte;
- #ifdef _LZMA_OUT_READ
- dictionary[dictionaryPos] = previousByte;
- if (++dictionaryPos == dictionarySize)
- dictionaryPos = 0;
- #endif
- }
- else
- {
- previousIsMatch = 1;
- if (RangeDecoderBitDecode(p + IsRep + state, &rd) == 1)
- {
- if (RangeDecoderBitDecode(p + IsRepG0 + state, &rd) == 0)
- {
- if (RangeDecoderBitDecode(p + IsRep0Long + (state << kNumPosBitsMax) + posState, &rd) == 0)
- {
- #ifdef _LZMA_OUT_READ
- UInt32 pos;
- #endif
- if (
- (nowPos
- #ifdef _LZMA_OUT_READ
- + globalPos
- #endif
- )
- == 0)
- return LZMA_RESULT_DATA_ERROR;
- state = state < 7 ? 9 : 11;
- #ifdef _LZMA_OUT_READ
- pos = dictionaryPos - rep0;
- if (pos >= dictionarySize)
- pos += dictionarySize;
- previousByte = dictionary[pos];
- dictionary[dictionaryPos] = previousByte;
- if (++dictionaryPos == dictionarySize)
- dictionaryPos = 0;
- #else
- previousByte = outStream[nowPos - rep0];
- #endif
- outStream[nowPos++] = previousByte;
- continue;
- }
- }
- else
- {
- UInt32 distance;
- if(RangeDecoderBitDecode(p + IsRepG1 + state, &rd) == 0)
- distance = rep1;
- else
- {
- if(RangeDecoderBitDecode(p + IsRepG2 + state, &rd) == 0)
- distance = rep2;
- else
- {
- distance = rep3;
- rep3 = rep2;
- }
- rep2 = rep1;
- }
- rep1 = rep0;
- rep0 = distance;
- }
- len = LzmaLenDecode(p + RepLenCoder, &rd, posState);
- state = state < 7 ? 8 : 11;
- }
- else
- {
- int posSlot;
- rep3 = rep2;
- rep2 = rep1;
- rep1 = rep0;
- state = state < 7 ? 7 : 10;
- len = LzmaLenDecode(p + LenCoder, &rd, posState);
- posSlot = RangeDecoderBitTreeDecode(p + PosSlot +
- ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) <<
- kNumPosSlotBits), kNumPosSlotBits, &rd);
- if (posSlot >= kStartPosModelIndex)
- {
- int numDirectBits = ((posSlot >> 1) - 1);
- rep0 = ((2 | ((UInt32)posSlot & 1)) << numDirectBits);
- if (posSlot < kEndPosModelIndex)
- {
- rep0 += RangeDecoderReverseBitTreeDecode(
- p + SpecPos + rep0 - posSlot - 1, numDirectBits, &rd);
- }
- else
- {
- rep0 += RangeDecoderDecodeDirectBits(&rd,
- numDirectBits - kNumAlignBits) << kNumAlignBits;
- rep0 += RangeDecoderReverseBitTreeDecode(p + Align, kNumAlignBits, &rd);
- }
- }
- else
- rep0 = posSlot;
- rep0++;
- }
- if (rep0 == (UInt32)(0))
- {
- /* it's for stream version */
- len = -1;
- break;
- }
- if (rep0 > nowPos
- #ifdef _LZMA_OUT_READ
- + globalPos
- #endif
- )
- {
- return LZMA_RESULT_DATA_ERROR;
- }
- len += kMatchMinLen;
- do
- {
- #ifdef _LZMA_OUT_READ
- UInt32 pos = dictionaryPos - rep0;
- if (pos >= dictionarySize)
- pos += dictionarySize;
- previousByte = dictionary[pos];
- dictionary[dictionaryPos] = previousByte;
- if (++dictionaryPos == dictionarySize)
- dictionaryPos = 0;
- #else
- previousByte = outStream[nowPos - rep0];
- #endif
- outStream[nowPos++] = previousByte;
- len--;
- }
- while(len > 0 && nowPos < outSize);
- }
- }
-
- #ifdef _LZMA_OUT_READ
- vs->RangeDecoder = rd;
- vs->DictionaryPos = dictionaryPos;
- vs->GlobalPos = globalPos + nowPos;
- vs->Reps[0] = rep0;
- vs->Reps[1] = rep1;
- vs->Reps[2] = rep2;
- vs->Reps[3] = rep3;
- vs->State = state;
- vs->PreviousIsMatch = previousIsMatch;
- vs->RemainLen = len;
- #endif
-
- *outSizeProcessed = nowPos;
- return LZMA_RESULT_OK;
-}
diff --git a/tools/lzma-loader/src/LzmaDecode.h b/tools/lzma-loader/src/LzmaDecode.h
deleted file mode 100644
index f58944e3c..000000000
--- a/tools/lzma-loader/src/LzmaDecode.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- LzmaDecode.h
- LZMA Decoder interface
-
- LZMA SDK 4.05 Copyright (c) 1999-2004 Igor Pavlov (2004-08-25)
- http://www.7-zip.org/
-
- LZMA SDK is licensed under two licenses:
- 1) GNU Lesser General Public License (GNU LGPL)
- 2) Common Public License (CPL)
- It means that you can select one of these two licenses and
- follow rules of that license.
-
- SPECIAL EXCEPTION:
- Igor Pavlov, as the author of this code, expressly permits you to
- statically or dynamically link your code (or bind by name) to the
- interfaces of this file without subjecting your linked code to the
- terms of the CPL or GNU LGPL. Any modifications or additions
- to this file, however, are subject to the LGPL or CPL terms.
-*/
-
-#ifndef __LZMADECODE_H
-#define __LZMADECODE_H
-
-/* #define _LZMA_IN_CB */
-/* Use callback for input data */
-
-/* #define _LZMA_OUT_READ */
-/* Use read function for output data */
-
-/* #define _LZMA_PROB32 */
-/* It can increase speed on some 32-bit CPUs,
- but memory usage will be doubled in that case */
-
-/* #define _LZMA_LOC_OPT */
-/* Enable local speed optimizations inside code */
-
-#ifndef UInt32
-#ifdef _LZMA_UINT32_IS_ULONG
-#define UInt32 unsigned long
-#else
-#define UInt32 unsigned int
-#endif
-#endif
-
-#ifdef _LZMA_PROB32
-#define CProb UInt32
-#else
-#define CProb unsigned short
-#endif
-
-#define LZMA_RESULT_OK 0
-#define LZMA_RESULT_DATA_ERROR 1
-#define LZMA_RESULT_NOT_ENOUGH_MEM 2
-
-#ifdef _LZMA_IN_CB
-typedef struct _ILzmaInCallback
-{
- int (*Read)(void *object, unsigned char **buffer, UInt32 *bufferSize);
-} ILzmaInCallback;
-#endif
-
-#define LZMA_BASE_SIZE 1846
-#define LZMA_LIT_SIZE 768
-
-/*
-bufferSize = (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << (lc + lp)))* sizeof(CProb)
-bufferSize += 100 in case of _LZMA_OUT_READ
-by default CProb is unsigned short,
-but if specify _LZMA_PROB_32, CProb will be UInt32(unsigned int)
-*/
-
-#ifdef _LZMA_OUT_READ
-int LzmaDecoderInit(
- unsigned char *buffer, UInt32 bufferSize,
- int lc, int lp, int pb,
- unsigned char *dictionary, UInt32 dictionarySize,
- #ifdef _LZMA_IN_CB
- ILzmaInCallback *inCallback
- #else
- unsigned char *inStream, UInt32 inSize
- #endif
-);
-#endif
-
-int LzmaDecode(
- unsigned char *buffer,
- #ifndef _LZMA_OUT_READ
- UInt32 bufferSize,
- int lc, int lp, int pb,
- #ifdef _LZMA_IN_CB
- ILzmaInCallback *inCallback,
- #else
- unsigned char *inStream, UInt32 inSize,
- #endif
- #endif
- unsigned char *outStream, UInt32 outSize,
- UInt32 *outSizeProcessed);
-
-#endif
diff --git a/tools/lzma-loader/src/LzmaDecode.o b/tools/lzma-loader/src/LzmaDecode.o
deleted file mode 100644
index 3d7be3f4d..000000000
--- a/tools/lzma-loader/src/LzmaDecode.o
+++ /dev/null
Binary files differ
diff --git a/tools/lzma-loader/src/Makefile b/tools/lzma-loader/src/Makefile
deleted file mode 100644
index f5d780c2b..000000000
--- a/tools/lzma-loader/src/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-#
-# Makefile for Broadcom BCM947XX boards
-#
-# Copyright 2001-2003, Broadcom Corporation
-# All Rights Reserved.
-#
-# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-#
-# Copyright 2004 Manuel Novoa III <mjn3@codepoet.org>
-# Modified to support bzip'd kernels.
-# Of course, it would be better to integrate bunzip capability into CFE.
-#
-# Copyright 2005 Oleg I. Vdovikin <oleg@cs.msu.su>
-# Cleaned up, modified for lzma support, removed from kernel
-#
-
-TEXT_START := 0x80001000
-BZ_TEXT_START := 0x80400000
-
-OBJCOPY := $(CROSS_COMPILE)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S
-
-CFLAGS = -D__KERNEL__ -Wall -Wstrict-prototypes -Wno-trigraphs -Os \
- -fno-strict-aliasing -fno-common -fomit-frame-pointer -G 0 -mno-abicalls -fno-pic \
- -ffunction-sections -pipe -mlong-calls -fno-common \
- -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap
-CFLAGS += -DLOADADDR=$(TEXT_START) -D_LZMA_IN_CB
-CFLAGS += $(INCLUDE)
-
-ASFLAGS = $(CFLAGS) -D__ASSEMBLY__ -DBZ_TEXT_START=$(BZ_TEXT_START)
-
-SEDFLAGS := s/BZ_TEXT_START/$(BZ_TEXT_START)/;s/TEXT_START/$(TEXT_START)/
-
-OBJECTS := head.o data.o
-
-all: loader.gz loader.elf
-
-# Don't build dependencies, this may die if $(CC) isn't gcc
-dep:
-
-install:
-
-loader.gz: loader
- gzip -nc9 $< > $@
-
-loader.elf: loader.o
- cp $< $@
-
-loader: loader.o
- $(OBJCOPY) $< $@
-
-loader.o: loader.lds $(OBJECTS)
- $(LD) -static --gc-sections -no-warn-mismatch -T loader.lds -o $@ $(OBJECTS)
-
-loader.lds: loader.lds.in Makefile
- @sed "$(SEDFLAGS)" < $< > $@
-
-data.o: data.lds decompress.image
- $(LD) -no-warn-mismatch -T data.lds -r -o $@ -b binary decompress.image -b elf32-tradlittlemips
-
-data.lds:
- @echo "SECTIONS { .data : { code_start = .; *(.data) code_stop = .; }}" > $@
-
-decompress.image: decompress
- $(OBJCOPY) $< $@
-
-decompress: decompress.lds decompress.o LzmaDecode.o
- $(LD) -static --gc-sections -no-warn-mismatch -T decompress.lds -o $@ decompress.o LzmaDecode.o
-
-decompress.lds: decompress.lds.in Makefile
- @sed "$(SEDFLAGS)" < $< > $@
-
-mrproper: clean
-
-clean:
- rm -f loader.gz loader decompress *.lds *.o *.image
diff --git a/tools/lzma-loader/src/README b/tools/lzma-loader/src/README
deleted file mode 100644
index 16649e950..000000000
--- a/tools/lzma-loader/src/README
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * LZMA compressed kernel decompressor for bcm947xx boards
- *
- * Copyright (C) 2005 by Oleg I. Vdovikin <oleg@cs.msu.su>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-The code is intended to decompress kernel, being compressed using lzma utility
-build using 7zip LZMA SDK. This utility is located in the LZMA_Alone directory
-
-decompressor code expects that your .trx file consist of three partitions:
-
-1) decompressor itself (this is gziped code which pmon/cfe will extract and run
-on boot-up instead of real kernel)
-2) LZMA compressed kernel (both streamed and regular modes are supported now)
-3) Root filesystem
-
-Please be sure to apply the following patch for use this new trx layout (it will
-allow using both new and old trx files for root filesystem lookup code)
-
---- linuz/arch/mips/brcm-boards/bcm947xx/setup.c 2005-01-23 19:24:27.503322896 +0300
-+++ linux/arch/mips/brcm-boards/bcm947xx/setup.c 2005-01-23 19:29:05.237100944 +0300
-@@ -221,7 +221,9 @@
- /* Try looking at TRX header for rootfs offset */
- if (le32_to_cpu(trx->magic) == TRX_MAGIC) {
- bcm947xx_parts[1].offset = off;
-- if (le32_to_cpu(trx->offsets[1]) > off)
-+ if (le32_to_cpu(trx->offsets[2]) > off)
-+ off = le32_to_cpu(trx->offsets[2]);
-+ else if (le32_to_cpu(trx->offsets[1]) > off)
- off = le32_to_cpu(trx->offsets[1]);
- continue;
- }
-
-
-Revision history:
- 0.02 Initial release
- 0.03 Added Mineharu Takahara <mtakahar@yahoo.com> patch to pass actual
- output size to decoder (stream mode compressed input is not
- a requirement anymore)
- 0.04 Reordered functions using lds script
diff --git a/tools/lzma-loader/src/data.lds b/tools/lzma-loader/src/data.lds
deleted file mode 100644
index ec48b2dfd..000000000
--- a/tools/lzma-loader/src/data.lds
+++ /dev/null
@@ -1 +0,0 @@
-SECTIONS { .data : { code_start = .; *(.data) code_stop = .; }}
diff --git a/tools/lzma-loader/src/data.o b/tools/lzma-loader/src/data.o
deleted file mode 100644
index 3c398909f..000000000
--- a/tools/lzma-loader/src/data.o
+++ /dev/null
Binary files differ
diff --git a/tools/lzma-loader/src/decompress b/tools/lzma-loader/src/decompress
deleted file mode 100755
index 9b2091e78..000000000
--- a/tools/lzma-loader/src/decompress
+++ /dev/null
Binary files differ
diff --git a/tools/lzma-loader/src/decompress.c b/tools/lzma-loader/src/decompress.c
deleted file mode 100644
index 05681b152..000000000
--- a/tools/lzma-loader/src/decompress.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * LZMA compressed kernel decompressor for bcm947xx boards
- *
- * Copyright (C) 2005 by Oleg I. Vdovikin <oleg@cs.msu.su>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- *
- * Please note, this was code based on the bunzip2 decompressor code
- * by Manuel Novoa III (mjn3@codepoet.org), although the only thing left
- * is an idea and part of original vendor code
- *
- *
- * 12-Mar-2005 Mineharu Takahara <mtakahar@yahoo.com>
- * pass actual output size to decoder (stream mode
- * compressed input is not a requirement anymore)
- *
- * 24-Apr-2005 Oleg I. Vdovikin
- * reordered functions using lds script, removed forward decl
- *
- */
-
-#include "LzmaDecode.h"
-
-#define BCM4710_FLASH 0x1fc00000 /* Flash */
-
-#define KSEG0 0x80000000
-#define KSEG1 0xa0000000
-
-#define KSEG1ADDR(a) ((((unsigned)(a)) & 0x1fffffffU) | KSEG1)
-
-#define Index_Invalidate_I 0x00
-#define Index_Writeback_Inv_D 0x01
-
-#define cache_unroll(base,op) \
- __asm__ __volatile__( \
- ".set noreorder;\n" \
- ".set mips3;\n" \
- "cache %1, (%0);\n" \
- ".set mips0;\n" \
- ".set reorder\n" \
- : \
- : "r" (base), \
- "i" (op));
-
-static __inline__ void blast_icache(unsigned long size, unsigned long lsize)
-{
- unsigned long start = KSEG0;
- unsigned long end = (start + size);
-
- while(start < end) {
- cache_unroll(start,Index_Invalidate_I);
- start += lsize;
- }
-}
-
-static __inline__ void blast_dcache(unsigned long size, unsigned long lsize)
-{
- unsigned long start = KSEG0;
- unsigned long end = (start + size);
-
- while(start < end) {
- cache_unroll(start,Index_Writeback_Inv_D);
- start += lsize;
- }
-}
-
-#define TRX_MAGIC 0x30524448 /* "HDR0" */
-
-struct trx_header {
- unsigned int magic; /* "HDR0" */
- unsigned int len; /* Length of file including header */
- unsigned int crc32; /* 32-bit CRC from flag_version to end of file */
- unsigned int flag_version; /* 0:15 flags, 16:31 version */
- unsigned int offsets[3]; /* Offsets of partitions from start of header */
-};
-
-#define EDIMAX_PS_HEADER_MAGIC 0x36315350 /* "PS16" */
-#define EDIMAX_PS_HEADER_LEN 0xc /* 12 bytes long for edimax header */
-
-/* beyound the image end, size not known in advance */
-extern unsigned char workspace[];
-
-unsigned int offset;
-unsigned char *data;
-
-/* flash access should be aligned, so wrapper is used */
-/* read byte from the flash, all accesses are 32-bit aligned */
-static int read_byte(void *object, unsigned char **buffer, UInt32 *bufferSize)
-{
- static unsigned int val;
-
- if (((unsigned int)offset % 4) == 0) {
- val = *(unsigned int *)data;
- data += 4;
- }
-
- *bufferSize = 1;
- *buffer = ((unsigned char *)&val) + (offset++ & 3);
-
- return LZMA_RESULT_OK;
-}
-
-static __inline__ unsigned char get_byte(void)
-{
- unsigned char *buffer;
- UInt32 fake;
-
- return read_byte(0, &buffer, &fake), *buffer;
-}
-
-/* should be the first function */
-void entry(unsigned long icache_size, unsigned long icache_lsize,
- unsigned long dcache_size, unsigned long dcache_lsize,
- unsigned long fw_arg0, unsigned long fw_arg1,
- unsigned long fw_arg2, unsigned long fw_arg3)
-{
- unsigned int i; /* temp value */
- unsigned int lc; /* literal context bits */
- unsigned int lp; /* literal pos state bits */
- unsigned int pb; /* pos state bits */
- unsigned int osize; /* uncompressed size */
-
- ILzmaInCallback callback;
- callback.Read = read_byte;
-
- /* look for trx header, 32-bit data access */
- for (data = ((unsigned char *) KSEG1ADDR(BCM4710_FLASH));
- ((struct trx_header *)data)->magic != TRX_MAGIC &&
- ((struct trx_header *)data)->magic != EDIMAX_PS_HEADER_MAGIC;
- data += 65536);
-
- if (((struct trx_header *)data)->magic == EDIMAX_PS_HEADER_MAGIC)
- data += EDIMAX_PS_HEADER_LEN;
- /* compressed kernel is in the partition 0 or 1 */
- if (((struct trx_header *)data)->offsets[1] > 65536)
- data += ((struct trx_header *)data)->offsets[0];
- else
- data += ((struct trx_header *)data)->offsets[1];
-
- offset = 0;
-
- /* lzma args */
- i = get_byte();
- lc = i % 9, i = i / 9;
- lp = i % 5, pb = i / 5;
-
- /* skip rest of the LZMA coder property */
- for (i = 0; i < 4; i++)
- get_byte();
-
- /* read the lower half of uncompressed size in the header */
- osize = ((unsigned int)get_byte()) +
- ((unsigned int)get_byte() << 8) +
- ((unsigned int)get_byte() << 16) +
- ((unsigned int)get_byte() << 24);
-
- /* skip rest of the header (upper half of uncompressed size) */
- for (i = 0; i < 4; i++)
- get_byte();
-
- /* decompress kernel */
- if (LzmaDecode(workspace, ~0, lc, lp, pb, &callback,
- (unsigned char*)LOADADDR, osize, &i) == LZMA_RESULT_OK)
- {
- blast_dcache(dcache_size, dcache_lsize);
- blast_icache(icache_size, icache_lsize);
-
- /* Jump to load address */
- ((void (*)(unsigned long, unsigned long, unsigned long,
- unsigned long)) LOADADDR)(fw_arg0, fw_arg1, fw_arg2,
- fw_arg3);
- }
-}
diff --git a/tools/lzma-loader/src/decompress.image b/tools/lzma-loader/src/decompress.image
deleted file mode 100755
index b0cb1af95..000000000
--- a/tools/lzma-loader/src/decompress.image
+++ /dev/null
Binary files differ
diff --git a/tools/lzma-loader/src/decompress.lds b/tools/lzma-loader/src/decompress.lds
deleted file mode 100644
index 7da944d0c..000000000
--- a/tools/lzma-loader/src/decompress.lds
+++ /dev/null
@@ -1,20 +0,0 @@
-OUTPUT_ARCH(mips)
-ENTRY(entry)
-SECTIONS {
- . = 0x80400000;
- .text : {
- *(.text.entry)
- *(.text)
- *(.rodata)
- }
-
- .data : {
- *(.data)
- }
-
- .bss : {
- *(.bss)
- }
-
- workspace = .;
-}
diff --git a/tools/lzma-loader/src/decompress.lds.in b/tools/lzma-loader/src/decompress.lds.in
deleted file mode 100644
index 33f56f8a0..000000000
--- a/tools/lzma-loader/src/decompress.lds.in
+++ /dev/null
@@ -1,20 +0,0 @@
-OUTPUT_ARCH(mips)
-ENTRY(entry)
-SECTIONS {
- . = BZ_TEXT_START;
- .text : {
- *(.text.entry)
- *(.text)
- *(.rodata)
- }
-
- .data : {
- *(.data)
- }
-
- .bss : {
- *(.bss)
- }
-
- workspace = .;
-}
diff --git a/tools/lzma-loader/src/decompress.o b/tools/lzma-loader/src/decompress.o
deleted file mode 100644
index 483bc0b32..000000000
--- a/tools/lzma-loader/src/decompress.o
+++ /dev/null
Binary files differ
diff --git a/tools/lzma-loader/src/head.S b/tools/lzma-loader/src/head.S
deleted file mode 100644
index 3a33e4016..000000000
--- a/tools/lzma-loader/src/head.S
+++ /dev/null
@@ -1,160 +0,0 @@
-/* Copyright 2005 Oleg I. Vdovikin (oleg@cs.msu.su) */
-/* cache manipulation adapted from Broadcom code */
-/* idea taken from original bunzip2 decompressor code */
-/* Copyright 2004 Manuel Novoa III (mjn3@codepoet.org) */
-/* Licensed under the linux kernel's version of the GPL.*/
-
-#include <asm/asm.h>
-#include <asm/regdef.h>
-
-#define KSEG0 0x80000000
-
-#define C0_CONFIG $16
-#define C0_TAGLO $28
-#define C0_TAGHI $29
-
-#define CONF1_DA_SHIFT 7 /* D$ associativity */
-#define CONF1_DA_MASK 0x00000380
-#define CONF1_DA_BASE 1
-#define CONF1_DL_SHIFT 10 /* D$ line size */
-#define CONF1_DL_MASK 0x00001c00
-#define CONF1_DL_BASE 2
-#define CONF1_DS_SHIFT 13 /* D$ sets/way */
-#define CONF1_DS_MASK 0x0000e000
-#define CONF1_DS_BASE 64
-#define CONF1_IA_SHIFT 16 /* I$ associativity */
-#define CONF1_IA_MASK 0x00070000
-#define CONF1_IA_BASE 1
-#define CONF1_IL_SHIFT 19 /* I$ line size */
-#define CONF1_IL_MASK 0x00380000
-#define CONF1_IL_BASE 2
-#define CONF1_IS_SHIFT 22 /* Instruction cache sets/way */
-#define CONF1_IS_MASK 0x01c00000
-#define CONF1_IS_BASE 64
-
-#define Index_Invalidate_I 0x00
-#define Index_Writeback_Inv_D 0x01
-
- .text
- LEAF(startup)
- .set noreorder
- addi sp, -48
- sw a0, 16(sp)
- sw a1, 20(sp)
- sw a2, 24(sp)
- sw a3, 28(sp)
-
- /* Copy decompressor code to the right place */
- li t2, BZ_TEXT_START
- add a0, t2, 0
- la a1, code_start
- la a2, code_stop
-$L1:
- lw t0, 0(a1)
- sw t0, 0(a0)
- add a1, 4
- add a0, 4
- blt a1, a2, $L1
- nop
-
- /* At this point we need to invalidate dcache and */
- /* icache before jumping to new code */
-
-1: /* Get cache sizes */
- .set mips32
- mfc0 s0,C0_CONFIG,1
- .set mips0
-
- li s1,CONF1_DL_MASK
- and s1,s0
- beq s1,zero,nodc
- nop
-
- srl s1,CONF1_DL_SHIFT
- li t0,CONF1_DL_BASE
- sll s1,t0,s1 /* s1 has D$ cache line size */
-
- li s2,CONF1_DA_MASK
- and s2,s0
- srl s2,CONF1_DA_SHIFT
- addiu s2,CONF1_DA_BASE /* s2 now has D$ associativity */
-
- li t0,CONF1_DS_MASK
- and t0,s0
- srl t0,CONF1_DS_SHIFT
- li s3,CONF1_DS_BASE
- sll s3,s3,t0 /* s3 has D$ sets per way */
-
- multu s2,s3 /* sets/way * associativity */
- mflo t0 /* total cache lines */
-
- multu s1,t0 /* D$ linesize * lines */
- mflo s2 /* s2 is now D$ size in bytes */
-
- /* Initilize the D$: */
- mtc0 zero,C0_TAGLO
- mtc0 zero,C0_TAGHI
-
- li t0,KSEG0 /* Just an address for the first $ line */
- addu t1,t0,s2 /* + size of cache == end */
-
- .set mips3
-1: cache Index_Writeback_Inv_D,0(t0)
- .set mips0
- bne t0,t1,1b
- addu t0,s1
-
-nodc:
- /* Now we get to do it all again for the I$ */
-
- move s3,zero /* just in case there is no icache */
- move s4,zero
-
- li t0,CONF1_IL_MASK
- and t0,s0
- beq t0,zero,noic
- nop
-
- srl t0,CONF1_IL_SHIFT
- li s3,CONF1_IL_BASE
- sll s3,t0 /* s3 has I$ cache line size */
-
- li t0,CONF1_IA_MASK
- and t0,s0
- srl t0,CONF1_IA_SHIFT
- addiu s4,t0,CONF1_IA_BASE /* s4 now has I$ associativity */
-
- li t0,CONF1_IS_MASK
- and t0,s0
- srl t0,CONF1_IS_SHIFT
- li s5,CONF1_IS_BASE
- sll s5,t0 /* s5 has I$ sets per way */
-
- multu s4,s5 /* sets/way * associativity */
- mflo t0 /* s4 is now total cache lines */
-
- multu s3,t0 /* I$ linesize * lines */
- mflo s4 /* s4 is cache size in bytes */
-
- /* Initilize the I$: */
- mtc0 zero,C0_TAGLO
- mtc0 zero,C0_TAGHI
-
- li t0,KSEG0 /* Just an address for the first $ line */
- addu t1,t0,s4 /* + size of cache == end */
-
- .set mips3
-1: cache Index_Invalidate_I,0(t0)
- .set mips0
- bne t0,t1,1b
- addu t0,s3
-
-noic:
- move a0,s3 /* icache line size */
- move a1,s4 /* icache size */
- move a2,s1 /* dcache line size */
- jal t2
- move a3,s2 /* dcache size */
-
- .set reorder
- END(startup)
diff --git a/tools/lzma-loader/src/head.o b/tools/lzma-loader/src/head.o
deleted file mode 100644
index 04763fa4b..000000000
--- a/tools/lzma-loader/src/head.o
+++ /dev/null
Binary files differ
diff --git a/tools/lzma-loader/src/loader b/tools/lzma-loader/src/loader
deleted file mode 100755
index 871117b87..000000000
--- a/tools/lzma-loader/src/loader
+++ /dev/null
Binary files differ
diff --git a/tools/lzma-loader/src/loader.elf b/tools/lzma-loader/src/loader.elf
deleted file mode 100755
index 0633a0e77..000000000
--- a/tools/lzma-loader/src/loader.elf
+++ /dev/null
Binary files differ
diff --git a/tools/lzma-loader/src/loader.gz b/tools/lzma-loader/src/loader.gz
deleted file mode 100644
index 426c9295e..000000000
--- a/tools/lzma-loader/src/loader.gz
+++ /dev/null
Binary files differ
diff --git a/tools/lzma-loader/src/loader.lds b/tools/lzma-loader/src/loader.lds
deleted file mode 100644
index 9d95adbfa..000000000
--- a/tools/lzma-loader/src/loader.lds
+++ /dev/null
@@ -1,17 +0,0 @@
-OUTPUT_ARCH(mips)
-ENTRY(startup)
-SECTIONS {
- . = 0x80001000;
- .text : {
- *(.text)
- *(.rodata)
- }
-
- .data : {
- *(.data)
- }
-
- .bss : {
- *(.bss)
- }
-}
diff --git a/tools/lzma-loader/src/loader.lds.in b/tools/lzma-loader/src/loader.lds.in
deleted file mode 100644
index 20f2ea98e..000000000
--- a/tools/lzma-loader/src/loader.lds.in
+++ /dev/null
@@ -1,17 +0,0 @@
-OUTPUT_ARCH(mips)
-ENTRY(startup)
-SECTIONS {
- . = TEXT_START;
- .text : {
- *(.text)
- *(.rodata)
- }
-
- .data : {
- *(.data)
- }
-
- .bss : {
- *(.bss)
- }
-}
diff --git a/tools/lzma-loader/src/loader.o b/tools/lzma-loader/src/loader.o
deleted file mode 100755
index 0633a0e77..000000000
--- a/tools/lzma-loader/src/loader.o
+++ /dev/null
Binary files differ
diff --git a/tools/lzma/Makefile b/tools/lzma/Makefile
index f012f3ddd..3544aaca2 100644
--- a/tools/lzma/Makefile
+++ b/tools/lzma/Makefile
@@ -4,27 +4,22 @@
include $(TOPDIR)/rules.mk
PKG_NAME:= lzma
-PKG_VERSION:= 4.65
+PKG_VERSION:= 4.32.7
PKG_RELEASE:= 1
PKG_MD5SUM:= 434e51a018b4c8ef377bf81520a53af0
-PKG_SITES:= http://downloads.openwrt.org/sources/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
+PKG_SITES:= http://tukaani.org/lzma/
include ../rules.mk
install: ${STAGING_HOST_DIR}/usr/bin/lzma
-UTIL_DIR=$(WRKBUILD)/C/LzmaUtil
-ALONE_DIR=$(WRKBUILD)/CPP/7zip/Compress/LZMA_Alone
-
$(WRKBUILD)/.compiled: ${WRKDIST}/.prepared
- $(MAKE) -C $(UTIL_DIR) -f makefile.gcc
- $(MAKE) -C $(ALONE_DIR) -f makefile.gcc
+ (cd ${WRKBUILD}; PATH="$(STAGING_HOST_DIR)/usr/bin:$$PATH" ./configure)
+ ${MAKE} -C ${WRKBUILD} CC='${CC_FOR_BUILD}'
touch $@
${STAGING_HOST_DIR}/usr/bin/lzma: $(WRKBUILD)/.compiled
- $(INSTALL_BIN) $(WRKBUILD)/CPP/7zip/Compress/LZMA_Alone/lzma_alone \
+ $(INSTALL_BIN) $(WRKBUILD)/src/lzma/lzma \
$(STAGING_HOST_DIR)/usr/bin/lzma
include $(TOPDIR)/mk/tools.mk
diff --git a/tools/lzma/patches/001-large_files.patch b/tools/lzma/patches/001-large_files.patch
deleted file mode 100644
index b95fe9e90..000000000
--- a/tools/lzma/patches/001-large_files.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: lzma-4.65/CPP/7zip/Compress/LZMA_Alone/makefile.gcc
-===================================================================
---- lzma-4.65.orig/CPP/7zip/Compress/LZMA_Alone/makefile.gcc 2009-05-15 23:33:51.000000000 +0200
-+++ lzma-4.65/CPP/7zip/Compress/LZMA_Alone/makefile.gcc 2009-06-01 22:00:54.000000000 +0200
-@@ -3,7 +3,7 @@
- CXX_C = gcc -O2 -Wall
- LIB = -lm
- RM = rm -f
--CFLAGS = -c
-+CFLAGS = -c -D_FILE_OFFSET_BITS=64
-
- ifdef SystemDrive
- IS_MINGW = 1
diff --git a/tools/lzma/patches/002-lzmp.patch b/tools/lzma/patches/002-lzmp.patch
deleted file mode 100644
index 72d881cdb..000000000
--- a/tools/lzma/patches/002-lzmp.patch
+++ /dev/null
@@ -1,1059 +0,0 @@
-Index: lzma-4.65/CPP/7zip/Compress/LZMA_Alone/lzmp.cpp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ lzma-4.65/CPP/7zip/Compress/LZMA_Alone/lzmp.cpp 2009-06-01 22:01:10.000000000 +0200
-@@ -0,0 +1,895 @@
-+/*
-+ * LZMA command line tool similar to gzip to encode and decode LZMA files.
-+ *
-+ * Copyright (C) 2005 Ville Koskinen
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-+ * USA.
-+ */
-+
-+#include "../../../Common/MyInitGuid.h"
-+
-+#include <iostream>
-+using std::cout;
-+using std::cerr;
-+using std::endl;
-+
-+#include <cstdio>
-+#include <cstdlib>
-+#include <cstring>
-+
-+#include <string>
-+using std::string;
-+#include <vector>
-+using std::vector;
-+typedef vector<string> stringVector;
-+
-+#include <unistd.h>
-+#include <getopt.h>
-+#include <signal.h>
-+
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <utime.h>
-+#include <sys/time.h> // futimes()
-+
-+// For Solaris
-+#ifndef HAVE_FUTIMES
-+//#define futimes(fd, tv) futimesat(fd, NULL, tv)
-+#endif
-+
-+#if defined(_WIN32) || defined(OS2) || defined(MSDOS)
-+#include <fcntl.h>
-+#include <io.h>
-+#define MY_SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY)
-+#else
-+#define MY_SET_BINARY_MODE(file)
-+#endif
-+
-+#include "../../../7zip/Common/FileStreams.h"
-+
-+#include "../../../Common/Types.h"
-+
-+#include "../../../7zip/Compress/LzmaDecoder.h"
-+#include "../../../7zip/Compress/LzmaEncoder.h"
-+
-+#include "Exception.h"
-+
-+#include "lzma_version.h"
-+
-+namespace lzma {
-+
-+const char *PROGRAM_VERSION = PACKAGE_VERSION;
-+const char *PROGRAM_COPYRIGHT = "Copyright (C) 2006 Ville Koskinen";
-+
-+/* LZMA_Alone switches:
-+ -a{N}: set compression mode - [0, 2], default: 2 (max)
-+ -d{N}: set dictionary - [0,28], default: 23 (8MB)
-+ -fb{N}: set number of fast bytes - [5, 255], default: 128
-+ -lc{N}: set number of literal context bits - [0, 8], default: 3
-+ -lp{N}: set number of literal pos bits - [0, 4], default: 0
-+ -pb{N}: set number of pos bits - [0, 4], default: 2
-+ -mf{MF_ID}: set Match Finder: [bt2, bt3, bt4, bt4b, pat2r, pat2,
-+ pat2h, pat3h, pat4h, hc3, hc4], default: bt4
-+*/
-+
-+struct lzma_option {
-+ short compression_mode; // -a
-+ short dictionary; // -d
-+ short fast_bytes; // -fb
-+ wchar_t *match_finder; // -mf
-+ short literal_context_bits; // -lc
-+ short literal_pos_bits; // -lp
-+ short pos_bits; // -pb
-+};
-+
-+/* The following is a mapping from gzip/bzip2 style -1 .. -9 compression modes
-+ * to the corresponding LZMA compression modes. Thanks, Larhzu, for coining
-+ * these. */
-+const lzma_option option_mapping[] = {
-+ { 0, 0, 0, NULL, 0, 0, 0}, // -0 (needed for indexing)
-+ { 0, 16, 64, L"hc4", 3, 0, 2}, // -1
-+ { 0, 20, 64, L"hc4", 3, 0, 2}, // -2
-+ { 1, 19, 64, L"bt4", 3, 0, 2}, // -3
-+ { 2, 20, 64, L"bt4", 3, 0, 2}, // -4
-+ { 2, 21, 128, L"bt4", 3, 0, 2}, // -5
-+ { 2, 22, 128, L"bt4", 3, 0, 2}, // -6
-+ { 2, 23, 128, L"bt4", 3, 0, 2}, // -7
-+ { 2, 24, 255, L"bt4", 3, 0, 2}, // -8
-+ { 2, 25, 255, L"bt4", 3, 0, 2}, // -9
-+};
-+
-+struct extension_pair {
-+ char *from;
-+ char *to;
-+};
-+
-+const extension_pair known_extensions[] = {
-+ { ".lzma", "" },
-+ { ".tlz", ".tar" },
-+ { NULL, NULL }
-+};
-+
-+/* Sorry, I just happen to like enumerations. */
-+enum PROGRAM_MODE {
-+ PM_COMPRESS = 0,
-+ PM_DECOMPRESS,
-+ PM_TEST,
-+ PM_HELP,
-+ PM_LICENSE,
-+ PM_VERSION
-+};
-+
-+enum {
-+ STATUS_OK = 0,
-+ STATUS_ERROR = 1,
-+ STATUS_WARNING = 2
-+};
-+
-+/* getopt options. */
-+/* struct option { name, has_arg, flag, val } */
-+const struct option long_options[] = {
-+ { "stdout", 0, 0, 'c' },
-+ { "decompress", 0, 0, 'd' },
-+ { "compress", 0, 0, 'z' },
-+ { "keep", 0, 0, 'k' },
-+ { "force", 0, 0, 'f' },
-+ { "test", 0, 0, 't' },
-+ { "suffix", 1, 0, 'S' },
-+ { "quiet", 0, 0, 'q' },
-+ { "verbose", 0, 0, 'v' },
-+ { "help", 0, 0, 'h' },
-+ { "license", 0, 0, 'L' },
-+ { "version", 0, 0, 'V' },
-+ { "fast", 0, 0, '1' },
-+ { "best", 0, 0, '9' },
-+ { 0, 0, 0, 0 }
-+};
-+
-+/* getopt option string (for the above options). */
-+const char option_string[] = "cdzkftS:qvhLV123456789A:D:F:";
-+
-+/* Defaults. */
-+PROGRAM_MODE program_mode = PM_COMPRESS;
-+int verbosity = 0;
-+bool stdinput = false;
-+bool stdoutput = false;
-+bool keep = false;
-+bool force = false;
-+int compression_mode = 7;
-+//char *suffix = strdup(".lzma");
-+char *suffix = strdup(known_extensions[0].from);
-+lzma_option advanced_options = { -1, -1, -1, NULL, -1, -1, -1 };
-+
-+void print_help(const char *const argv0)
-+{
-+ // Help goes to stdout while other messages go to stderr.
-+ cout << "\nlzma " << PROGRAM_VERSION
-+ << " " << PROGRAM_COPYRIGHT << "\n"
-+ "Based on LZMA SDK " << LZMA_SDK_VERSION_STRING << " "
-+ << LZMA_SDK_COPYRIGHT_STRING
-+ << "\n\nUsage: " << argv0
-+ << " [flags and input files in any order]\n"
-+" -c --stdout output to standard output\n"
-+" -d --decompress force decompression\n"
-+" -z --compress force compression\n"
-+" -k --keep keep (don't delete) input files\n"
-+" -f --force force overwrite of output file and compress links\n"
-+" -t --test test compressed file integrity\n"
-+" -S .suf --suffix .suf use suffix .suf on compressed files\n"
-+" -q --quiet suppress error messages\n"
-+" -v --verbose be verbose\n"
-+" -h --help print this message\n"
-+" -L --license display the license information\n"
-+" -V --version display version numbers of LZMA SDK and lzma\n"
-+" -1 .. -2 fast compression\n"
-+" -3 .. -9 good to excellent compression. -7 is the default.\n"
-+" --fast alias for -1\n"
-+" --best alias for -9 (usually *not* what you want)\n\n"
-+" Memory usage depends a lot on the chosen compression mode -1 .. -9.\n"
-+" See the man page lzma(1) for details.\n\n";
-+}
-+
-+void print_license(void)
-+{
-+ cout << "\n LZMA command line tool " << PROGRAM_VERSION << " - "
-+ << PROGRAM_COPYRIGHT
-+ << "\n LZMA SDK " << LZMA_SDK_VERSION_STRING << " - "
-+ << LZMA_SDK_COPYRIGHT_STRING
-+ << "\n This program is a part of the LZMA utils package.\n"
-+ " http://tukaani.org/lzma/\n\n"
-+" This program is free software; you can redistribute it and/or\n"
-+" modify it under the terms of the GNU General Public License\n"
-+" as published by the Free Software Foundation; either version 2\n"
-+" of the License, or (at your option) any later version.\n"
-+"\n"
-+" This program is distributed in the hope that it will be useful,\n"
-+" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-+" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-+" GNU General Public License for more details.\n"
-+"\n";
-+}
-+
-+void print_version(void)
-+{
-+ cout << "LZMA command line tool " << PROGRAM_VERSION << "\n"
-+ << "LZMA SDK " << LZMA_SDK_VERSION_STRING << "\n";
-+}
-+
-+short str2int (const char *str, const int &min, const int &max)
-+{
-+ int value = -1;
-+ char *endptr = NULL;
-+ if (str == NULL || str[0] == '\0')
-+ throw ArgumentException("Invalid integer option");
-+ value = strtol (str, &endptr, 10);
-+ if (*endptr != '\0' || value < min || value > max)
-+ throw ArgumentException("Invalid integer option");
-+ return value;
-+}
-+
-+void parse_options(int argc, char **argv, stringVector &filenames)
-+{
-+ /* Snatched from getopt(3). */
-+ int c;
-+
-+ /* Check how we were called */
-+ {
-+ char *p = strrchr (argv[0], '/'); // Remove path prefix, if any
-+ if (p++ == NULL)
-+ p = argv[0];
-+ if (strstr (p, "un") != NULL) {
-+ program_mode = PM_DECOMPRESS;
-+ } else if (strstr (p, "cat") != NULL) {
-+ program_mode = PM_DECOMPRESS;
-+ stdoutput = true;
-+ }
-+ }
-+
-+ while (-1 != (c = getopt_long(argc, argv, option_string,
-+ long_options, NULL))) {
-+ switch (c) {
-+ // stdout
-+ case 'c':
-+ stdoutput = true;
-+ break;
-+
-+ // decompress
-+ case 'd':
-+ program_mode = PM_DECOMPRESS;
-+ break;
-+
-+ // compress
-+ case 'z':
-+ program_mode = PM_COMPRESS;
-+ break;
-+
-+ // keep
-+ case 'k':
-+ keep = true;
-+ break;
-+
-+ // force
-+ case 'f':
-+ force = true;
-+ break;
-+
-+ // test
-+ case 't':
-+ program_mode = PM_TEST;
-+ break;
-+
-+ // suffix
-+ case 'S':
-+ if (optarg) {
-+ free(suffix);
-+ suffix = strdup(optarg);
-+ }
-+ break;
-+
-+ // quiet
-+ case 'q':
-+ verbosity = 0;
-+ break;
-+
-+ // verbose
-+ case 'v':
-+ verbosity++;
-+ break;
-+
-+ // help
-+ case 'h':
-+ program_mode = PM_HELP;
-+ break;
-+
-+ // license
-+ case 'L':
-+ program_mode = PM_LICENSE;
-+ break;
-+
-+ // version
-+ case 'V':
-+ program_mode = PM_VERSION;
-+ break;
-+
-+ case '1': case '2': case '3': case '4': case '5':
-+ case '6': case '7': case '8': case '9':
-+ compression_mode = c - '0';
-+ break;
-+
-+ // Advanced options //
-+ // Compression mode
-+ case 'A':
-+ advanced_options.compression_mode =
-+ str2int (optarg, 0, 2);
-+ break;
-+
-+ // Dictionary size
-+ case 'D':
-+ advanced_options.dictionary =
-+ str2int (optarg, 0, 28);
-+ break;
-+
-+ // Fast bytes
-+ case 'F':
-+ advanced_options.fast_bytes =
-+ str2int (optarg, 0, 273);
-+ break;
-+
-+ default:
-+ throw ArgumentException("");
-+ break;
-+ } // switch(c)
-+ } // while(1)
-+
-+ for (int i = optind; i < argc; i++) {
-+ if (strcmp("-", argv[i]) == 0)
-+ continue;
-+ filenames.push_back(argv[i]);
-+ }
-+} // parse_options
-+
-+void set_encoder_properties(NCompress::NLzma::CEncoder *encoder,
-+ lzma_option &opt)
-+{
-+ /* Almost verbatim from LzmaAlone.cpp. */
-+ PROPID propIDs[] =
-+ {
-+ NCoderPropID::kDictionarySize,
-+ NCoderPropID::kPosStateBits,
-+ NCoderPropID::kLitContextBits,
-+ NCoderPropID::kLitPosBits,
-+ NCoderPropID::kAlgorithm,
-+ NCoderPropID::kNumFastBytes,
-+ NCoderPropID::kMatchFinder,
-+ NCoderPropID::kEndMarker
-+ };
-+ const int kNumProps = sizeof(propIDs) / sizeof(propIDs[0]);
-+#define VALUE(x) (advanced_options.x >= 0 ? advanced_options.x : opt.x)
-+ PROPVARIANT properties[kNumProps];
-+ for (int p = 0; p < 6; p++)
-+ properties[p].vt = VT_UI4;
-+ properties[0].ulVal = UInt32(1 << VALUE (dictionary));
-+ properties[1].ulVal = UInt32(VALUE (pos_bits));
-+ properties[2].ulVal = UInt32(VALUE (literal_context_bits));
-+ properties[3].ulVal = UInt32(VALUE (literal_pos_bits));
-+ properties[4].ulVal = UInt32(VALUE (compression_mode));
-+ properties[5].ulVal = UInt32(VALUE (fast_bytes));
-+#undef VALUE
-+
-+ properties[6].vt = VT_BSTR;
-+ properties[6].bstrVal = (BSTR)opt.match_finder;
-+
-+ properties[7].vt = VT_BOOL;
-+ properties[7].boolVal = stdinput ? VARIANT_TRUE : VARIANT_FALSE;
-+
-+ if (encoder->SetCoderProperties(propIDs, properties, kNumProps) != S_OK)
-+ throw Exception("SetCoderProperties() error");
-+}
-+
-+void encode(NCompress::NLzma::CEncoder *encoderSpec,
-+ CMyComPtr<ISequentialInStream> inStream,
-+ CMyComPtr<ISequentialOutStream> outStream,
-+ lzma_option encoder_options,
-+ UInt64 fileSize)
-+{
-+ set_encoder_properties(encoderSpec, encoder_options);
-+
-+ encoderSpec->WriteCoderProperties(outStream);
-+
-+ for (int i = 0; i < 8; i++)
-+ {
-+ Byte b = Byte(fileSize >> (8 * i));
-+ if (outStream->Write(&b, sizeof(b), 0) != S_OK)
-+ throw Exception("Write error while encoding");
-+ }
-+
-+ HRESULT result = encoderSpec->Code(inStream, outStream, 0, 0, 0);
-+
-+ if (result == E_OUTOFMEMORY)
-+ throw Exception("Cannot allocate memory");
-+ else if (result != S_OK) {
-+ char buffer[33];
-+ snprintf(buffer, 33, "%d", (unsigned int)result);
-+ throw Exception(string("Encoder error: ") + buffer);
-+ }
-+}
-+
-+void decode(NCompress::NLzma::CDecoder *decoderSpec,
-+ CMyComPtr<ISequentialInStream> inStream,
-+ CMyComPtr<ISequentialOutStream> outStream)
-+{
-+ const UInt32 kPropertiesSize = 5;
-+ Byte properties[kPropertiesSize];
-+ UInt32 processedSize;
-+ UInt64 fileSize = 0;
-+
-+ if (inStream->Read(properties, kPropertiesSize, &processedSize) != S_OK)
-+ throw Exception("Read error");
-+ if (processedSize != kPropertiesSize)
-+ throw Exception("Read error");
-+ if (decoderSpec->SetDecoderProperties2(properties, kPropertiesSize) != S_OK)
-+ throw Exception("SetDecoderProperties() error");
-+
-+ for (int i = 0; i < 8; i++)
-+ {
-+ Byte b;
-+
-+ if (inStream->Read(&b, sizeof(b), &processedSize) != S_OK)
-+ throw Exception("Read error");
-+ if (processedSize != 1)
-+ throw Exception("Read error");
-+
-+ fileSize |= ((UInt64)b) << (8 * i);
-+ }
-+
-+ if (decoderSpec->Code(inStream, outStream, 0, &fileSize, 0) != S_OK)
-+ throw Exception("Decoder error");
-+}
-+
-+int open_instream(const string infile,
-+ CMyComPtr<ISequentialInStream> &inStream,
-+ UInt64 &fileSize)
-+{
-+ CInFileStream *inStreamSpec = new CInFileStream;
-+ inStream = inStreamSpec;
-+ if (!inStreamSpec->Open(infile.c_str()))
-+ throw Exception("Cannot open input file " + infile);
-+
-+ inStreamSpec->File.GetLength(fileSize);
-+
-+ return inStreamSpec->File.GetHandle();
-+}
-+
-+int open_outstream(const string outfile,
-+ CMyComPtr<ISequentialOutStream> &outStream)
-+{
-+ COutFileStream *outStreamSpec = new COutFileStream;
-+ outStream = outStreamSpec;
-+
-+ bool open_by_force = (program_mode == PM_TEST) | force;
-+
-+ if (!outStreamSpec->Create(outfile.c_str(), open_by_force))
-+ throw Exception("Cannot open output file " + outfile);
-+
-+ return outStreamSpec->File.GetHandle();
-+}
-+
-+double get_ratio(int inhandle, int outhandle)
-+{
-+ struct stat in_stats, out_stats;
-+ fstat(inhandle, &in_stats);
-+ fstat(outhandle, &out_stats);
-+
-+ return (double)out_stats.st_size / (double)in_stats.st_size;
-+}
-+
-+mode_t get_file_mode(string filename)
-+{
-+ struct stat in_stat;
-+ lstat(filename.c_str(), &in_stat);
-+
-+ return in_stat.st_mode;
-+}
-+
-+bool string_ends_with(string str, string ending)
-+{
-+ return equal(ending.rbegin(), ending.rend(), str.rbegin());
-+}
-+
-+bool extension_is_known(string filename)
-+{
-+ bool known_format = false;
-+ extension_pair extension; int i = 1;
-+
-+ extension = known_extensions[0];
-+ while (extension.from != NULL) {
-+ if (string_ends_with(filename, extension.from)) {
-+ known_format = true;
-+ break;
-+ }
-+ extension = known_extensions[i];
-+ i++;
-+ }
-+
-+ if (!known_format) {
-+ if (!string_ends_with(filename, suffix)) {
-+ return false;
-+ }
-+ }
-+
-+ return true;
-+}
-+
-+string replace_extension(string filename)
-+{
-+ int suffix_starts_at = filename.length() - strlen (suffix);
-+ string from_suffix = filename.substr(suffix_starts_at, strlen (suffix));
-+ string ret = filename.substr(0, suffix_starts_at);
-+ extension_pair extension; int i = 1;
-+
-+ bool found_replacement = false;
-+ extension = known_extensions[0];
-+ while (extension.from != NULL) {
-+ if (from_suffix.compare(extension.from) == 0) {
-+ ret += extension.to;
-+ found_replacement = true;
-+ break;
-+ }
-+
-+ extension = known_extensions[i];
-+ i++;
-+ }
-+
-+ return ret;
-+}
-+
-+string pretty_print_status(string filename, string output_filename,
-+ string ratio)
-+{
-+ string ret = "";
-+
-+ ret += filename;
-+ ret += ":\t ";
-+
-+ if (program_mode == PM_TEST) {
-+ ret += "decoded succesfully";
-+
-+ return ret;
-+ }
-+
-+ if (!stdinput && !stdoutput) {
-+ ret += ratio;
-+ ret += " -- ";
-+ }
-+
-+ if (program_mode == PM_COMPRESS) {
-+ if (keep) {
-+ ret += "encoded succesfully";
-+
-+ return ret;
-+ }
-+
-+ ret += "replaced with ";
-+ ret += output_filename;
-+
-+ return ret;
-+ }
-+
-+ if (program_mode == PM_DECOMPRESS) {
-+ if (keep) {
-+ ret += "decoded succesfully";
-+
-+ return ret;
-+ }
-+
-+ ret += "replaced with ";
-+ ret += output_filename;
-+
-+ return ret;
-+ }
-+
-+ return ret;
-+}
-+
-+static string archive_name; // I know, it is crude, but I haven't found any other
-+ // way then making a global variable to transfer filename to handler
-+
-+void signal_handler (int signum)
-+{
-+ unlink (archive_name.c_str()); // deleting
-+ signal (signum, SIG_DFL); // we return the default function to used signal
-+ kill (getpid(), signum); // and then send this signal to the process again
-+}
-+
-+} // namespace lzma
-+
-+
-+int main(int argc, char **argv)
-+{
-+ using namespace lzma;
-+ using std::cerr;
-+
-+ stringVector filenames;
-+
-+ signal (SIGTERM,signal_handler);
-+ signal (SIGHUP,signal_handler);
-+ signal (SIGINT,signal_handler);
-+
-+ try {
-+ parse_options(argc, argv, filenames);
-+ }
-+ catch (...) {
-+ return STATUS_ERROR;
-+ }
-+
-+ if (program_mode == PM_HELP) {
-+ print_help(argv[0]);
-+ return STATUS_OK;
-+ }
-+ else if (program_mode == PM_LICENSE) {
-+ print_license();
-+ return STATUS_OK;
-+ }
-+ else if (program_mode == PM_VERSION) {
-+ print_version();
-+ return STATUS_OK;
-+ }
-+
-+ if (filenames.empty()) {
-+ stdinput = true;
-+ stdoutput = true;
-+
-+ /* FIXME: get rid of this */
-+ filenames.push_back("-");
-+ }
-+
-+ /* Protection: always create new files with 0600 in order to prevent
-+ * outsiders from reading incomplete data. */
-+ umask(0077);
-+
-+ bool warning = false;
-+
-+ for (int i = 0; i < filenames.size(); i++) {
-+ CMyComPtr<ISequentialInStream> inStream;
-+ CMyComPtr<ISequentialOutStream> outStream;
-+ UInt64 fileSize = 0;
-+ int inhandle = 0, outhandle = 0;
-+ string output_filename;
-+
-+ if (stdinput) {
-+ inStream = new CStdInFileStream;
-+ MY_SET_BINARY_MODE(stdin);
-+ fileSize = (UInt64)(Int64)-1;
-+
-+ inhandle = STDIN_FILENO;
-+
-+ outStream = new CStdOutFileStream;
-+ MY_SET_BINARY_MODE(stdout);
-+
-+ outhandle = STDOUT_FILENO;
-+ }
-+ else {
-+ mode_t infile_mode = get_file_mode(filenames[i]);
-+ if (!S_ISREG(infile_mode)) {
-+ if (S_ISDIR(infile_mode)) {
-+ warning = true;
-+ cerr << argv[0] << ": " << filenames[i] << ": "
-+ << "cowardly refusing to work on directory"
-+ << endl;
-+
-+ continue;
-+ }
-+ else if (S_ISLNK(infile_mode)) {
-+ if (!stdoutput && !force) {
-+ warning = true;
-+
-+ cerr << argv[0] << ": " << filenames[i] << ": "
-+ << "cowardly refusing to work on symbolic link "
-+ << "(use --force to force encoding or decoding)"
-+ << endl;
-+
-+ continue;
-+ }
-+ }
-+ else {
-+ warning = true;
-+
-+ cerr << argv[0] << ": " << filenames[i] << ": "
-+ << "doesn't exist or is not a regular file"
-+ << endl;
-+
-+ continue;
-+ }
-+ }
-+
-+ // Test if the file already ends with *suffix.
-+ if (program_mode == PM_COMPRESS && !force
-+ && string_ends_with(filenames[i],
-+ suffix)) {
-+ warning = true;
-+
-+ cerr << filenames[i] << " already has "
-+ << suffix << " suffix -- unchanged\n";
-+
-+ continue;
-+ }
-+
-+ // Test if the file extension is known.
-+ if (program_mode == PM_DECOMPRESS
-+ && !extension_is_known(filenames[i])) {
-+ warning = true;
-+
-+ cerr << filenames[i] << ": "
-+ << " unknown suffix -- unchanged"
-+ << endl;
-+
-+ continue;
-+ }
-+
-+ try {
-+ inhandle = open_instream(filenames[i], inStream, fileSize);
-+ }
-+ catch (Exception e) {
-+ cerr << argv[0] << ": " << e.what() << endl;
-+ return STATUS_ERROR;
-+ }
-+
-+ if (stdoutput) {
-+ outStream = new CStdOutFileStream;
-+ MY_SET_BINARY_MODE(stdout);
-+
-+ outhandle = STDOUT_FILENO;
-+ }
-+ else {
-+ /* Testing mode is nothing else but decoding
-+ * and throwing away the result. */
-+ if (program_mode == PM_TEST)
-+ output_filename = "/dev/null";
-+ else if (program_mode == PM_DECOMPRESS)
-+ output_filename = replace_extension(filenames[i]);
-+ else
-+ output_filename = filenames[i]
-+ + suffix;
-+ archive_name = output_filename;
-+
-+ try {
-+ outhandle = open_outstream(output_filename, outStream);
-+ }
-+ catch (Exception e) {
-+ cerr << argv[0] << ": " << e.what() << endl;
-+ return STATUS_ERROR;
-+ }
-+ }
-+
-+ }
-+
-+ // Unless --force is specified, do not read/write compressed
-+ // data from/to a terminal.
-+ if (!force) {
-+ if (program_mode == PM_COMPRESS && isatty(outhandle)) {
-+ cerr << argv[0] << ": compressed data not "
-+ "written to a terminal. Use "
-+ "-f to force compression.\n"
-+ << argv[0] << ": For help, type: "
-+ << argv[0] << " -h\n";
-+ return STATUS_ERROR;
-+ } else if (program_mode == PM_DECOMPRESS
-+ && isatty(inhandle)) {
-+ cerr << argv[0] << ": compressed data not "
-+ "read from a terminal. Use "
-+ "-f to force decompression.\n"
-+ << argv[0] << ": For help, type: "
-+ << argv[0] << " -h\n";
-+ return STATUS_ERROR;
-+ }
-+ }
-+
-+ if (program_mode == PM_COMPRESS) {
-+ NCompress::NLzma::CEncoder *encoderSpec =
-+ new NCompress::NLzma::CEncoder;
-+
-+ lzma_option options = option_mapping[compression_mode];
-+
-+ try {
-+ encode(encoderSpec, inStream, outStream, options, fileSize);
-+ }
-+ catch (Exception e) {
-+ cerr << argv[0] << ": " << e.what() << endl;
-+ unlink(output_filename.c_str());
-+ delete(encoderSpec);
-+
-+ return STATUS_ERROR;
-+ }
-+
-+ delete(encoderSpec);
-+ }
-+ else { // PM_DECOMPRESS | PM_TEST
-+ NCompress::NLzma::CDecoder *decoderSpec =
-+ new NCompress::NLzma::CDecoder;
-+
-+ try {
-+ decode(decoderSpec, inStream, outStream);
-+ }
-+ catch (Exception e) {
-+ cerr << argv[0] << ": " << e.what() << endl;
-+ unlink(output_filename.c_str());
-+ delete(decoderSpec);
-+
-+ return STATUS_ERROR;
-+ }
-+
-+ delete(decoderSpec);
-+ }
-+
-+ /* Set permissions and owners. */
-+ if ( (program_mode == PM_COMPRESS || program_mode == PM_DECOMPRESS )
-+ && (!stdinput && !stdoutput) ) {
-+
-+ int ret = 0;
-+ struct stat file_stats;
-+ ret = fstat(inhandle, &file_stats);
-+
-+ ret = fchmod(outhandle, file_stats.st_mode);
-+ ret = fchown(outhandle, file_stats.st_uid, file_stats.st_gid);
-+ // We need to call fchmod() again, since otherwise the SUID bits
-+ // are lost.
-+ ret = fchmod(outhandle, file_stats.st_mode);
-+
-+ struct timeval file_times[2];
-+ // Access time
-+ file_times[0].tv_sec = file_stats.st_atime;
-+ file_times[0].tv_usec = 0;
-+ // Modification time
-+ file_times[1].tv_sec = file_stats.st_mtime;
-+ file_times[1].tv_usec = 0;
-+
-+ ret = futimes(outhandle, file_times);
-+
-+ if (!keep)
-+ unlink(filenames[i].c_str());
-+ }
-+
-+ if (verbosity > 0) {
-+ if (stdoutput) {
-+ cerr << filenames[i] << ":\t ";
-+ cerr << "decoded succesfully"
-+ << endl;
-+ }
-+
-+ else {
-+ char buf[10] = { 0 };
-+
-+ if (program_mode == PM_DECOMPRESS)
-+ snprintf(buf, 10, "%.2f%%",
-+ (1 - get_ratio(outhandle, inhandle)) * 100);
-+ if (program_mode == PM_COMPRESS)
-+ snprintf(buf, 10, "%.2f%%",
-+ (1 - get_ratio(inhandle, outhandle)) * 100);
-+
-+ string ratio = buf;
-+ cerr << pretty_print_status(filenames[i], output_filename,
-+ ratio)
-+ << endl;
-+ }
-+ }
-+ }
-+
-+ if (warning)
-+ return STATUS_WARNING;
-+
-+ return STATUS_OK;
-+}
-+
-Index: lzma-4.65/CPP/7zip/Compress/LZMA_Alone/Exception.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ lzma-4.65/CPP/7zip/Compress/LZMA_Alone/Exception.h 2009-06-01 22:01:10.000000000 +0200
-@@ -0,0 +1,45 @@
-+/* A couple of exceptions for lzmp.
-+ *
-+ * Copyright (C) 2005 Ville Koskinen
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ */
-+
-+#ifndef _EXCEPTION_H_
-+#define _EXCEPTION_H_
-+
-+#include <string>
-+using std::string;
-+
-+class Exception
-+{
-+private:
-+ string message;
-+public:
-+ Exception(char *what): message(what) { }
-+ Exception(string what): message(what) { }
-+
-+ ~Exception() { }
-+
-+ string what(void) { return message; }
-+};
-+
-+class ArgumentException: public Exception
-+{
-+public:
-+ ArgumentException(char *what): Exception(what) { }
-+ ArgumentException(string what): Exception(what) { }
-+
-+ ~ArgumentException() { }
-+};
-+
-+#endif
-+
-Index: lzma-4.65/CPP/7zip/Compress/LZMA_Alone/makefile.gcc
-===================================================================
---- lzma-4.65.orig/CPP/7zip/Compress/LZMA_Alone/makefile.gcc 2009-06-01 22:00:54.000000000 +0200
-+++ lzma-4.65/CPP/7zip/Compress/LZMA_Alone/makefile.gcc 2009-06-01 22:06:13.000000000 +0200
-@@ -1,9 +1,10 @@
--PROG = lzma
-+PROG = lzma_alone
-+PROG2 = lzma
- CXX = g++ -O2 -Wall
- CXX_C = gcc -O2 -Wall
- LIB = -lm
- RM = rm -f
--CFLAGS = -c -D_FILE_OFFSET_BITS=64
-+CFLAGS = -c -I ../../../ -D_FILE_OFFSET_BITS=64 -DPACKAGE_VERSION="\"4.32.0beta3\""
-
- ifdef SystemDrive
- IS_MINGW = 1
-@@ -45,12 +46,35 @@
- Lzma86Dec.o \
- Lzma86Enc.o \
-
-+OBJS2 = \
-+ C_FileIO.o \
-+ CRC.o \
-+ Alloc.o \
-+ FileStreams.o \
-+ StreamUtils.o \
-+ InBuffer.o \
-+ OutBuffer.o \
-+ LzmaDecoder.o \
-+ StringConvert.o \
-+ StringToInt.o \
-+ LzmaEncoder.o \
-+ LzmaDec.o \
-+ LzmaEnc.o \
-+ LzFind.o \
-+ 7zCrc.o \
-+ lzmp.o
-
--all: $(PROG)
-+all: $(PROG) $(PROG2)
-
- $(PROG): $(OBJS)
- $(CXX) -o $(PROG) $(LDFLAGS) $(OBJS) $(LIB) $(LIB2)
-
-+$(PROG2): $(OBJS2)
-+ $(CXX) -o $(PROG2) $(LDFLAGS) $(OBJS2) $(LIB)
-+
-+lzmp.o: lzmp.cpp
-+ $(CXX) $(CFLAGS) lzmp.cpp
-+
- LzmaAlone.o: LzmaAlone.cpp
- $(CXX) $(CFLAGS) LzmaAlone.cpp
-
-@@ -131,5 +153,5 @@
- $(CXX_C) $(CFLAGS) ../../../../C/LzmaUtil/Lzma86Enc.c
-
- clean:
-- -$(RM) $(PROG) $(OBJS)
-+ -$(RM) $(PROG) $(PROG2) $(OBJS)
-
-Index: lzma-4.65/CPP/7zip/Compress/LZMA_Alone/lzma_version.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ lzma-4.65/CPP/7zip/Compress/LZMA_Alone/lzma_version.h 2009-06-01 22:01:10.000000000 +0200
-@@ -0,0 +1,31 @@
-+#ifndef LZMA_VERSION_H
-+#define LZMA_VERSION_H
-+
-+/*
-+ Version and copyright information used by LZMA utils.
-+*/
-+
-+static const char *LZMA_SDK_VERSION_STRING = "4.43";
-+
-+static const char *LZMA_SDK_COPYRIGHT_STRING =
-+ "Copyright (C) 1999-2006 Igor Pavlov";
-+
-+static const char *LZMA_SDK_COPYRIGHT_INFO =
-+ " See http://7-zip.org/sdk.html or the documentation of LZMA SDK for\n"
-+ " the license. For reference, the version 4.43 is free software\n"
-+ " licensed under the GNU LGPL.";
-+
-+
-+static const char *LZMA_UTILS_VERSION_STRING = PACKAGE_VERSION;
-+
-+static const char *LZMA_UTILS_COPYRIGHT_STRING =
-+ "Copyright (C) 2006 Lasse Collin";
-+
-+static const char *LZMA_UTILS_COPYRIGHT_INFO =
-+ "This program comes with ABSOLUTELY NO WARRANTY.\n"
-+ "You may redistribute copies of this program\n"
-+ "under the terms of the GNU General Public License.\n"
-+ "For more information about these matters, see the file "
-+ "named COPYING.\n";
-+
-+#endif /* ifndef LZMA_VERSION_H */
-Index: lzma-4.65/CPP/Common/C_FileIO.h
-===================================================================
---- lzma-4.65.orig/CPP/Common/C_FileIO.h 2009-05-15 23:33:51.000000000 +0200
-+++ lzma-4.65/CPP/Common/C_FileIO.h 2009-06-01 22:06:56.000000000 +0200
-@@ -24,6 +24,7 @@
- bool Close();
- bool GetLength(UInt64 &length) const;
- off_t Seek(off_t distanceToMove, int moveMethod) const;
-+ int GetHandle() const { return _handle; }
- };
-
- class CInFile: public CFileBase
diff --git a/tools/lzma/patches/003-compile_fixes.patch b/tools/lzma/patches/003-compile_fixes.patch
deleted file mode 100644
index 49ae66b9c..000000000
--- a/tools/lzma/patches/003-compile_fixes.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -urN lzma-4.65/CPP/7zip/Common/FileStreams.h lzma-4.65.new/CPP/7zip/Common/FileStreams.h
---- lzma-4.65/CPP/7zip/Common/FileStreams.h 2009-05-15 23:33:51.000000000 +0200
-+++ lzma-4.65.new/CPP/7zip/Common/FileStreams.h 2009-06-01 22:30:01.000000000 +0200
-@@ -72,6 +72,7 @@
- public IOutStream,
- public CMyUnknownImp
- {
-+public:
- #ifdef USE_WIN_FILE
- NWindows::NFile::NIO::COutFile File;
- #else
-diff -urN lzma-4.65/CPP/Common/MyWindows.h lzma-4.65.new/CPP/Common/MyWindows.h
---- lzma-4.65/CPP/Common/MyWindows.h 2009-05-15 23:33:51.000000000 +0200
-+++ lzma-4.65.new/CPP/Common/MyWindows.h 2009-06-01 22:29:26.000000000 +0200
-@@ -101,8 +101,11 @@
-
- #ifdef __cplusplus
-
-+#ifndef INITGUID
-+#define INITGUID
- DEFINE_GUID(IID_IUnknown,
- 0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
-+#endif
- struct IUnknown
- {
- STDMETHOD(QueryInterface) (REFIID iid, void **outObject) PURE;
diff --git a/tools/lzma/patches/100-static_library.patch b/tools/lzma/patches/100-static_library.patch
deleted file mode 100644
index 15ab4e055..000000000
--- a/tools/lzma/patches/100-static_library.patch
+++ /dev/null
@@ -1,70 +0,0 @@
---- a/C/LzmaUtil/makefile.gcc
-+++ b/C/LzmaUtil/makefile.gcc
-@@ -1,44 +1,53 @@
- PROG = lzma
--CXX = g++
--LIB =
-+CC = gcc
-+LIB = liblzma.a
- RM = rm -f
- CFLAGS = -c -O2 -Wall
-+AR = ar
-+RANLIB = ranlib
-
- OBJS = \
-- LzmaUtil.o \
- Alloc.o \
- LzFind.o \
- LzmaDec.o \
- LzmaEnc.o \
-+ LzmaLib.o \
- 7zFile.o \
- 7zStream.o \
-
--
- all: $(PROG)
-
--$(PROG): $(OBJS)
-- $(CXX) -o $(PROG) $(LDFLAGS) $(OBJS) $(LIB) $(LIB2)
-+$(PROG): LzmaUtil.o $(LIB)
-+ $(CC) -o $(PROG) $(LDFLAGS) $< $(LIB)
-
- LzmaUtil.o: LzmaUtil.c
-- $(CXX) $(CFLAGS) LzmaUtil.c
-+ $(CC) $(CFLAGS) LzmaUtil.c
-+
-+$(LIB): $(OBJS)
-+ rm -f $@
-+ $(AR) rcu $@ $(OBJS)
-+ $(RANLIB) $@
-
- Alloc.o: ../Alloc.c
-- $(CXX) $(CFLAGS) ../Alloc.c
-+ $(CC) $(CFLAGS) ../Alloc.c
-
- LzFind.o: ../LzFind.c
-- $(CXX) $(CFLAGS) ../LzFind.c
-+ $(CC) $(CFLAGS) ../LzFind.c
-
- LzmaDec.o: ../LzmaDec.c
-- $(CXX) $(CFLAGS) ../LzmaDec.c
-+ $(CC) $(CFLAGS) ../LzmaDec.c
-
- LzmaEnc.o: ../LzmaEnc.c
-- $(CXX) $(CFLAGS) ../LzmaEnc.c
-+ $(CC) $(CFLAGS) ../LzmaEnc.c
-+
-+LzmaLib.o: ../LzmaLib.c
-+ $(CC) $(CFLAGS) ../LzmaLib.c
-
- 7zFile.o: ../7zFile.c
-- $(CXX) $(CFLAGS) ../7zFile.c
-+ $(CC) $(CFLAGS) ../7zFile.c
-
- 7zStream.o: ../7zStream.c
-- $(CXX) $(CFLAGS) ../7zStream.c
-+ $(CC) $(CFLAGS) ../7zStream.c
-
- clean:
-- -$(RM) $(PROG) $(OBJS)
-+ -$(RM) $(PROG) *.o *.a