summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/ssl_calls.c87
-rw-r--r--docs/man/xrdp-genkeymap.822
-rw-r--r--file-loc.txt2
-rwxr-xr-xgenkeymap/dump-keymaps.sh36
-rw-r--r--genkeymap/genkeymap.c2
-rw-r--r--genkeymap/readme.txt6
-rw-r--r--instfiles/Makefile.am35
-rw-r--r--instfiles/keymap-names.txt244
-rw-r--r--instfiles/km-00000407.ini (renamed from instfiles/km-0407.ini)0
-rw-r--r--instfiles/km-00000409.ini (renamed from instfiles/km-0409.ini)0
-rw-r--r--instfiles/km-0000040a.ini (renamed from instfiles/km-040a.ini)0
-rw-r--r--instfiles/km-0000040b.ini (renamed from instfiles/km-041d.ini)0
-rw-r--r--instfiles/km-0000040c.ini (renamed from instfiles/km-040c.ini)0
-rw-r--r--instfiles/km-00000410.ini (renamed from instfiles/km-0410.ini)0
-rw-r--r--instfiles/km-00000411.ini (renamed from instfiles/km-0411.ini)0
-rw-r--r--instfiles/km-00000414.ini (renamed from instfiles/km-0414.ini)0
-rw-r--r--instfiles/km-00000415.ini (renamed from instfiles/km-0415.ini)0
-rw-r--r--instfiles/km-00000416.ini (renamed from instfiles/km-0416.ini)0
-rw-r--r--instfiles/km-00000419.ini (renamed from instfiles/km-0419.ini)0
-rw-r--r--instfiles/km-0000041d.ini791
-rw-r--r--instfiles/km-00000807.ini (renamed from instfiles/km-0807.ini)0
-rw-r--r--instfiles/km-00000809.ini (renamed from instfiles/km-0809.ini)0
-rw-r--r--instfiles/km-0000080c.ini (renamed from instfiles/km-080c.ini)0
-rw-r--r--instfiles/km-00000813.ini (renamed from instfiles/km-0813.ini)0
-rw-r--r--instfiles/km-00000816.ini (renamed from instfiles/km-0816.ini)0
-rw-r--r--instfiles/km-0000100c.ini (renamed from instfiles/km-100c.ini)0
m---------librfxcodec0
-rw-r--r--sesman/sesman.ini12
-rwxr-xr-xxorg/X11R7.6/buildx.sh43
-rw-r--r--xrdp/lang.c6
-rw-r--r--xrdp/xrdp.ini40
31 files changed, 1069 insertions, 257 deletions
diff --git a/common/ssl_calls.c b/common/ssl_calls.c
index 2d3b2dfa..72ab5eb7 100644
--- a/common/ssl_calls.c
+++ b/common/ssl_calls.c
@@ -40,6 +40,32 @@
#define OLD_RSA_GEN1
#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+static inline HMAC_CTX *
+HMAC_CTX_new()
+{
+ HMAC_CTX *hmac_ctx = g_new(HMAC_CTX, 1);
+ HMAC_CTX_init(hmac_ctx);
+ return hmac_ctx;
+}
+
+static inline void
+HMAC_CTX_free(HMAC_CTX *hmac_ctx)
+{
+ HMAC_CTX_cleanup(hmac_ctx);
+ g_free(hmac_ctx);
+}
+
+static inline void
+RSA_get0_key(const RSA *key, const BIGNUM **n, const BIGNUM **e,
+ const BIGNUM **d)
+{
+ *n = key->n;
+ *d = key->d;
+}
+#endif /* OPENSSL_VERSION_NUMBER >= 0x10100000L */
+
+
/*****************************************************************************/
int
ssl_init(void)
@@ -170,8 +196,7 @@ ssl_des3_encrypt_info_create(const char *key, const char* ivec)
const tui8 *lkey;
const tui8 *livec;
- des3_ctx = (EVP_CIPHER_CTX *) g_malloc(sizeof(EVP_CIPHER_CTX), 1);
- EVP_CIPHER_CTX_init(des3_ctx);
+ des3_ctx = EVP_CIPHER_CTX_new();
lkey = (const tui8 *) key;
livec = (const tui8 *) ivec;
EVP_EncryptInit_ex(des3_ctx, EVP_des_ede3_cbc(), NULL, lkey, livec);
@@ -187,8 +212,7 @@ ssl_des3_decrypt_info_create(const char *key, const char* ivec)
const tui8 *lkey;
const tui8 *livec;
- des3_ctx = g_new0(EVP_CIPHER_CTX, 1);
- EVP_CIPHER_CTX_init(des3_ctx);
+ des3_ctx = EVP_CIPHER_CTX_new();
lkey = (const tui8 *) key;
livec = (const tui8 *) ivec;
EVP_DecryptInit_ex(des3_ctx, EVP_des_ede3_cbc(), NULL, lkey, livec);
@@ -205,8 +229,7 @@ ssl_des3_info_delete(void *des3)
des3_ctx = (EVP_CIPHER_CTX *) des3;
if (des3_ctx != 0)
{
- EVP_CIPHER_CTX_cleanup(des3_ctx);
- g_free(des3_ctx);
+ EVP_CIPHER_CTX_free(des3_ctx);
}
}
@@ -250,8 +273,7 @@ ssl_hmac_info_create(void)
{
HMAC_CTX *hmac_ctx;
- hmac_ctx = (HMAC_CTX *) g_malloc(sizeof(HMAC_CTX), 1);
- HMAC_CTX_init(hmac_ctx);
+ hmac_ctx = HMAC_CTX_new();
return hmac_ctx;
}
@@ -264,8 +286,7 @@ ssl_hmac_info_delete(void *hmac)
hmac_ctx = (HMAC_CTX *) hmac;
if (hmac_ctx != 0)
{
- HMAC_CTX_cleanup(hmac_ctx);
- g_free(hmac_ctx);
+ HMAC_CTX_free(hmac_ctx);
}
}
@@ -332,10 +353,10 @@ ssl_mod_exp(char *out, int out_len, char *in, int in_len,
char *mod, int mod_len, char *exp, int exp_len)
{
BN_CTX *ctx;
- BIGNUM lmod;
- BIGNUM lexp;
- BIGNUM lin;
- BIGNUM lout;
+ BIGNUM *lmod;
+ BIGNUM *lexp;
+ BIGNUM *lin;
+ BIGNUM *lout;
int rv;
char *l_out;
char *l_in;
@@ -353,15 +374,15 @@ ssl_mod_exp(char *out, int out_len, char *in, int in_len,
ssl_reverse_it(l_mod, mod_len);
ssl_reverse_it(l_exp, exp_len);
ctx = BN_CTX_new();
- BN_init(&lmod);
- BN_init(&lexp);
- BN_init(&lin);
- BN_init(&lout);
- BN_bin2bn((tui8 *)l_mod, mod_len, &lmod);
- BN_bin2bn((tui8 *)l_exp, exp_len, &lexp);
- BN_bin2bn((tui8 *)l_in, in_len, &lin);
- BN_mod_exp(&lout, &lin, &lexp, &lmod, ctx);
- rv = BN_bn2bin(&lout, (tui8 *)l_out);
+ lmod = BN_new();
+ lexp = BN_new();
+ lin = BN_new();
+ lout = BN_new();
+ BN_bin2bn((tui8 *)l_mod, mod_len, lmod);
+ BN_bin2bn((tui8 *)l_exp, exp_len, lexp);
+ BN_bin2bn((tui8 *)l_in, in_len, lin);
+ BN_mod_exp(lout, lin, lexp, lmod, ctx);
+ rv = BN_bn2bin(lout, (tui8 *)l_out);
if (rv <= out_len)
{
@@ -373,10 +394,10 @@ ssl_mod_exp(char *out, int out_len, char *in, int in_len,
rv = 0;
}
- BN_free(&lin);
- BN_free(&lout);
- BN_free(&lexp);
- BN_free(&lmod);
+ BN_free(lin);
+ BN_free(lout);
+ BN_free(lexp);
+ BN_free(lmod);
BN_CTX_free(ctx);
g_free(l_out);
g_free(l_in);
@@ -494,29 +515,33 @@ ssl_gen_key_xrdp1(int key_size_in_bits, char *exp, int exp_len,
my_key = RSA_new();
error = RSA_generate_key_ex(my_key, key_size_in_bits, my_e, 0) == 0;
+ const BIGNUM *n;
+ const BIGNUM *d;
+ RSA_get0_key(my_key, &n, NULL, &d);
+
if (error == 0)
{
- len = BN_num_bytes(my_key->n);
+ len = BN_num_bytes(n);
error = (len < 1) || (len > mod_len);
diff = mod_len - len;
}
if (error == 0)
{
- BN_bn2bin(my_key->n, (tui8 *)(lmod + diff));
+ BN_bn2bin(n, (tui8 *)(lmod + diff));
ssl_reverse_it(lmod, mod_len);
}
if (error == 0)
{
- len = BN_num_bytes(my_key->d);
+ len = BN_num_bytes(d);
error = (len < 1) || (len > pri_len);
diff = pri_len - len;
}
if (error == 0)
{
- BN_bn2bin(my_key->d, (tui8 *)(lpri + diff));
+ BN_bn2bin(d, (tui8 *)(lpri + diff));
ssl_reverse_it(lpri, pri_len);
}
diff --git a/docs/man/xrdp-genkeymap.8 b/docs/man/xrdp-genkeymap.8
index 068f04dd..9c839187 100644
--- a/docs/man/xrdp-genkeymap.8
+++ b/docs/man/xrdp-genkeymap.8
@@ -21,35 +21,35 @@ The key map information is stored in the file named \fIoutfile\fP.
.SH "FILES"
.TP
-.I /etc/xrdp/km-XXXX.ini
-Files containing the keyboard mapping for language \fIXXXX\fP, which is a 4 digit hexadecimal number identifying the country and language code.
+.I /etc/xrdp/km-XXXXXXXX.ini
+Files containing the keyboard mapping for language \fIXXXXXXXX\fP, which is a 8 digit hexadecimal number identifying the country and language code.
.RS 8
.TP
-.B 0405
+.B 00000405
cs czech
.TP
-.B 0407
+.B 00000407
de german
.TP
-.B 0409
+.B 00000409
en-us us english
.TP
-.B 040c
+.B 0000040c
fr french
.TP
-.B 0410
+.B 00000410
it italy
.TP
-.B 0416
+.B 00000416
br Portuguese (Brazil)
.TP
-.B 0419
+.B 00000419
ru russian
.TP
-.B 041d
+.B 0000041d
se swedish
.TP
-.B 0809
+.B 00000809
en-uk uk english
.RE
diff --git a/file-loc.txt b/file-loc.txt
index 8c67a92c..98894465 100644
--- a/file-loc.txt
+++ b/file-loc.txt
@@ -25,7 +25,7 @@ default build will install the following
xrdp-chansrv
/etc/xrdp
- km-xxxx.ini
+ km-xxxxxxxx.ini
sesman.ini
rsakeys.ini
startwm.sh
diff --git a/genkeymap/dump-keymaps.sh b/genkeymap/dump-keymaps.sh
index 5aed9d0e..23c12eca 100755
--- a/genkeymap/dump-keymaps.sh
+++ b/genkeymap/dump-keymaps.sh
@@ -7,44 +7,44 @@ then
exit 1
fi
-# English - US 'en-us' 0x0409
+# English - US 'en-us' 0x00000409
setxkbmap -model pc104 -layout us
-./xrdp-genkeymap ../instfiles/km-0409.ini
+./xrdp-genkeymap ../instfiles/km-00000409.ini
-# English - UK 'en-GB' 0x0809
+# English - UK 'en-GB' 0x00000809
setxkbmap -model pc105 -layout gb
-./xrdp-genkeymap ../instfiles/km-0809.ini
+./xrdp-genkeymap ../instfiles/km-00000809.ini
-# German 'de' 0x0407
+# German 'de' 0x00000407
setxkbmap -model pc104 -layout de
-./xrdp-genkeymap ../instfiles/km-0407.ini
+./xrdp-genkeymap ../instfiles/km-00000407.ini
-# Italy 'it' 0x0410
+# Italy 'it' 0x00000410
setxkbmap -model pc104 -layout it
-./xrdp-genkeymap ../instfiles/km-0410.ini
+./xrdp-genkeymap ../instfiles/km-00000410.ini
-# Japanese 'jp' 0x0411
+# Japanese 'jp' 0x00000411
setxkbmap -model jp106 -layout jp -variant OADG109A
-./xrdp-genkeymap ../instfiles/km-0411.ini
+./xrdp-genkeymap ../instfiles/km-00000411.ini
./xrdp-genkeymap ../instfiles/km-e0010411.ini
./xrdp-genkeymap ../instfiles/km-e0200411.ini
./xrdp-genkeymap ../instfiles/km-e0210411.ini
-# Polish 'pl' 0x0415
+# Polish 'pl' 0x00000415
setxkbmap -model pc104 -layout pl
-./xrdp-genkeymap ../instfiles/km-0415.ini
+./xrdp-genkeymap ../instfiles/km-00000415.ini
-# Russia 'ru' 0x0419
+# Russia 'ru' 0x00000419
setxkbmap -model pc104 -layout ru
-./xrdp-genkeymap ../instfiles/km-0419.ini
+./xrdp-genkeymap ../instfiles/km-00000419.ini
-# Sweden 'se' 0x041d
+# Sweden 'se' 0x0000041d
setxkbmap -model pc104 -layout se
-./xrdp-genkeymap ../instfiles/km-041d.ini
+./xrdp-genkeymap ../instfiles/km-0000041d.ini
-# Portuguese -PT 'pt-pt' 0x0816
+# Portuguese -PT 'pt-pt' 0x00000816
setxkbmap -model pc104 -layout pt
-./xrdp-genkeymap ../instfiles/km-0816.ini
+./xrdp-genkeymap ../instfiles/km-00000816.ini
# set back to en-us
setxkbmap -model pc104 -layout us
diff --git a/genkeymap/genkeymap.c b/genkeymap/genkeymap.c
index d0907f32..1d640b1f 100644
--- a/genkeymap/genkeymap.c
+++ b/genkeymap/genkeymap.c
@@ -73,7 +73,7 @@ int main(int argc, char **argv)
if (argc != 2)
{
fprintf(stderr, "Usage: %s out_filename\n", programname);
- fprintf(stderr, "Example: %s /etc/xrdp/km-0409.ini\n", programname);
+ fprintf(stderr, "Example: %s /etc/xrdp/km-00000409.ini\n", programname);
return 1;
}
diff --git a/genkeymap/readme.txt b/genkeymap/readme.txt
index b2b3b890..242fe92e 100644
--- a/genkeymap/readme.txt
+++ b/genkeymap/readme.txt
@@ -3,9 +3,9 @@ Creating a new keymap file.
The names of the files are of the format;
-km-xxxx.ini
+km-xxxxxxxx.ini
-where the xxxx is replaced by the hex number of the layout of interest.
+where the xxxxxxxx is replaced by the hex number of the layout of interest.
The files have 8 sections;
@@ -33,7 +33,7 @@ Key63=65450:42
To create a new file run "xrdp-genkeymap <filename>"
-Example: ./xrdp-genkeymap /etc/xrdp/km-0409.ini
+Example: ./xrdp-genkeymap /etc/xrdp/km-00000409.ini
Note: You need to have enough rights to be able to write to the
/etc/xrdp directory.
diff --git a/instfiles/Makefile.am b/instfiles/Makefile.am
index 58c64ea9..50d31a8e 100644
--- a/instfiles/Makefile.am
+++ b/instfiles/Makefile.am
@@ -9,23 +9,24 @@ EXTRA_DIST = \
startscriptdir=$(sysconfdir)/xrdp
dist_startscript_DATA = \
- km-0407.ini \
- km-0409.ini \
- km-040a.ini \
- km-040c.ini \
- km-0410.ini \
- km-0411.ini \
- km-0414.ini \
- km-0415.ini \
- km-0416.ini \
- km-0419.ini \
- km-041d.ini \
- km-0807.ini \
- km-0809.ini \
- km-080c.ini \
- km-0813.ini \
- km-0816.ini \
- km-100c.ini \
+ km-00000407.ini \
+ km-00000409.ini \
+ km-0000040a.ini \
+ km-0000040b.ini \
+ km-0000040c.ini \
+ km-00000410.ini \
+ km-00000411.ini \
+ km-00000414.ini \
+ km-00000415.ini \
+ km-00000416.ini \
+ km-00000419.ini \
+ km-0000041d.ini \
+ km-00000807.ini \
+ km-00000809.ini \
+ km-0000080c.ini \
+ km-00000813.ini \
+ km-00000816.ini \
+ km-0000100c.ini \
km-e0010411.ini \
km-e0200411.ini \
km-e0210411.ini
diff --git a/instfiles/keymap-names.txt b/instfiles/keymap-names.txt
index 3da698b2..2d9676dd 100644
--- a/instfiles/keymap-names.txt
+++ b/instfiles/keymap-names.txt
@@ -1,124 +1,124 @@
-0x0436 af Afrikaans
-0x041C sq Albanian
-0x0001 ar Arabic
-0x0401 ar-sa Arabic (Saudi Arabia)
-0x0801 ar-iq Arabic (Iraq)
-0x0C01 ar-eg Arabic (Egypt)
-0x1001 ar-ly Arabic (Libya)
-0x1401 ar-dz Arabic (Algeria)
-0x1801 ar-ma Arabic (Morocco)
-0x1C01 ar-tn Arabic (Tunisia)
-0x2001 ar-om Arabic (Oman)
-0x2401 ar-ye Arabic (Yemen)
-0x2801 ar-sy Arabic (Syria)
-0x2C01 ar-jo Arabic (Jordan)
-0x3001 ar-lb Arabic (Lebanon)
-0x3401 ar-kw Arabic (Kuwait)
-0x3801 ar-ae Arabic (U.A.E.)
-0x3C01 ar-bh Arabic (Bahrain)
-0x4001 ar-qa Arabic (Qatar)
-0x042D eu Basque
-0x0402 bg Bulgarian
-0x0423 be Belarusian
-0x0403 ca Catalan
-0x0004 zh Chinese
-0x0404 zh-tw Chinese (Taiwan)
-0x0804 zh-cn Chinese (China)
-0x0C04 zh-hk Chinese (Hong Kong SAR)
-0x1004 zh-sg Chinese (Singapore)
-0x041A hr Croatian
-0x0405 cs Czech
-0x0406 da Danish
-0x0413 nl Dutch (Netherlands)
-0x0813 nl-be Dutch (Belgium)
-0x0009 en English
-0x0409 en-us English (United States)
-0x0809 en-gb English (United Kingdom)
-0x0C09 en-au English (Australia)
-0x1009 en-ca English (Canada)
-0x1409 en-nz English (New Zealand)
-0x1809 en-ie English (Ireland)
-0x1C09 en-za English (South Africa)
-0x2009 en-jm English (Jamaica)
-0x2809 en-bz English (Belize)
-0x2C09 en-tt English (Trinidad)
-0x0425 et Estonian
-0x0438 fo Faeroese
-0x0429 fa Farsi
-0x040B fi Finnish
-0x040C fr French (France)
-0x080C fr-be French (Belgium)
-0x0C0C fr-ca French (Canada)
-0x100C fr-ch French (Switzerland)
-0x140C fr-lu French (Luxembourg)
-0x043C gd Gaelic
-0x0407 de German (Germany)
-0x0807 de-ch German (Switzerland)
-0x0C07 de-at German (Austria)
-0x1007 de-lu German (Luxembourg)
-0x1407 de-li German (Liechtenstein)
-0x0408 el Greek
-0x040D he Hebrew
-0x0439 hi Hindi
-0x040E hu Hungarian
-0x040F is Icelandic
-0x0421 in Indonesian
-0x0410 it Italian (Italy)
-0x0810 it-ch Italian (Switzerland)
-0x0411 ja Japanese
-0x0412 ko Korean
-0x0426 lv Latvian
-0x0427 lt Lithuanian
-0x042F mk FYRO Macedonian
-0x043E ms Malay (Malaysia)
-0x043A mt Maltese
-0x0414 no Norwegian (Bokmal)
-0x0814 no Norwegian (Nynorsk)
-0x0415 pl Polish
-0x0416 pt-br Portuguese (Brazil)
-0x0816 pt Portuguese (Portugal)
-0x0417 rm Rhaeto-Romanic
-0x0418 ro Romanian
-0x0818 ro-mo Romanian (Moldova)
-0x0419 ru Russian
-0x0819 ru-mo Russian (Moldova)
-0x0C1A sr Serbian (Cyrillic)
-0x081A sr Serbian (Latin)
-0x041B sk Slovak
-0x0424 sl Slovenian
-0x042E sb Sorbian
-0x040A es Spanish (Traditional Sort)
-0x080A es-mx Spanish (Mexico)
-0x0C0A es Spanish (International Sort)
-0x100A es-gt Spanish (Guatemala)
-0x140A es-cr Spanish (Costa Rica)
-0x180A es-pa Spanish (Panama)
-0x1C0A es-do Spanish (Dominican Republic)
-0x200A es-ve Spanish (Venezuela)
-0x240A es-co Spanish (Colombia)
-0x280A es-pe Spanish (Peru)
-0x2C0A es-ar Spanish (Argentina)
-0x300A es-ec Spanish (Ecuador)
-0x340A es-cl Spanish (Chile)
-0x380A es-uy Spanish (Uruguay)
-0x3C0A es-py Spanish (Paraguay)
-0x400A es-bo Spanish (Bolivia)
-0x440A es-sv Spanish (El Salvador)
-0x480A es-hn Spanish (Honduras)
-0x4C0A es-ni Spanish (Nicaragua)
-0x500A es-pr Spanish (Puerto Rico)
-0x0430 sx Sutu
-0x041D sv Swedish
-0x081D sv-fi Swedish (Finland)
-0x041E th Thai
-0x0431 ts Tsonga
-0x0432 tn Tswana
-0x041F tr Turkish
-0x0422 uk Ukrainian
-0x0420 ur Urdu
-0x042A vi Vietnamese
-0x0434 xh Xhosa
-0x043D ji Yiddish
-0x0435 zu Zulu
+0x00000436 af Afrikaans
+0x0000041C sq Albanian
+0x00000001 ar Arabic
+0x00000401 ar-sa Arabic (Saudi Arabia)
+0x00000801 ar-iq Arabic (Iraq)
+0x00000C01 ar-eg Arabic (Egypt)
+0x00001001 ar-ly Arabic (Libya)
+0x00001401 ar-dz Arabic (Algeria)
+0x00001801 ar-ma Arabic (Morocco)
+0x00001C01 ar-tn Arabic (Tunisia)
+0x00002001 ar-om Arabic (Oman)
+0x00002401 ar-ye Arabic (Yemen)
+0x00002801 ar-sy Arabic (Syria)
+0x00002C01 ar-jo Arabic (Jordan)
+0x00003001 ar-lb Arabic (Lebanon)
+0x00003401 ar-kw Arabic (Kuwait)
+0x00003801 ar-ae Arabic (U.A.E.)
+0x00003C01 ar-bh Arabic (Bahrain)
+0x00004001 ar-qa Arabic (Qatar)
+0x0000042D eu Basque
+0x00000402 bg Bulgarian
+0x00000423 be Belarusian
+0x00000403 ca Catalan
+0x00000004 zh Chinese
+0x00000404 zh-tw Chinese (Taiwan)
+0x00000804 zh-cn Chinese (China)
+0x00000C04 zh-hk Chinese (Hong Kong SAR)
+0x00001004 zh-sg Chinese (Singapore)
+0x0000041A hr Croatian
+0x00000405 cs Czech
+0x00000406 da Danish
+0x00000413 nl Dutch (Netherlands)
+0x00000813 nl-be Dutch (Belgium)
+0x00000009 en English
+0x00000409 en-us English (United States)
+0x00000809 en-gb English (United Kingdom)
+0x00000C09 en-au English (Australia)
+0x00001009 en-ca English (Canada)
+0x00001409 en-nz English (New Zealand)
+0x00001809 en-ie English (Ireland)
+0x00001C09 en-za English (South Africa)
+0x00002009 en-jm English (Jamaica)
+0x00002809 en-bz English (Belize)
+0x00002C09 en-tt English (Trinidad)
+0x00000425 et Estonian
+0x00000438 fo Faeroese
+0x00000429 fa Farsi
+0x0000040B fi Finnish
+0x0000040C fr French (France)
+0x0000080C fr-be French (Belgium)
+0x00000C0C fr-ca French (Canada)
+0x0000100C fr-ch French (Switzerland)
+0x0000140C fr-lu French (Luxembourg)
+0x0000043C gd Gaelic
+0x00000407 de German (Germany)
+0x00000807 de-ch German (Switzerland)
+0x00000C07 de-at German (Austria)
+0x00001007 de-lu German (Luxembourg)
+0x00001407 de-li German (Liechtenstein)
+0x00000408 el Greek
+0x0000040D he Hebrew
+0x00000439 hi Hindi
+0x0000040E hu Hungarian
+0x0000040F is Icelandic
+0x00000421 in Indonesian
+0x00000410 it Italian (Italy)
+0x00000810 it-ch Italian (Switzerland)
+0x00000411 ja Japanese
+0x00000412 ko Korean
+0x00000426 lv Latvian
+0x00000427 lt Lithuanian
+0x0000042F mk FYRO Macedonian
+0x0000043E ms Malay (Malaysia)
+0x0000043A mt Maltese
+0x00000414 no Norwegian (Bokmal)
+0x00000814 no Norwegian (Nynorsk)
+0x00000415 pl Polish
+0x00000416 pt-br Portuguese (Brazil)
+0x00000816 pt Portuguese (Portugal)
+0x00000417 rm Rhaeto-Romanic
+0x00000418 ro Romanian
+0x00000818 ro-mo Romanian (Moldova)
+0x00000419 ru Russian
+0x00000819 ru-mo Russian (Moldova)
+0x00000C1A sr Serbian (Cyrillic)
+0x0000081A sr Serbian (Latin)
+0x0000041B sk Slovak
+0x00000424 sl Slovenian
+0x0000042E sb Sorbian
+0x0000040A es Spanish (Traditional Sort)
+0x0000080A es-mx Spanish (Mexico)
+0x00000C0A es Spanish (International Sort)
+0x0000100A es-gt Spanish (Guatemala)
+0x0000140A es-cr Spanish (Costa Rica)
+0x0000180A es-pa Spanish (Panama)
+0x00001C0A es-do Spanish (Dominican Republic)
+0x0000200A es-ve Spanish (Venezuela)
+0x0000240A es-co Spanish (Colombia)
+0x0000280A es-pe Spanish (Peru)
+0x00002C0A es-ar Spanish (Argentina)
+0x0000300A es-ec Spanish (Ecuador)
+0x0000340A es-cl Spanish (Chile)
+0x0000380A es-uy Spanish (Uruguay)
+0x00003C0A es-py Spanish (Paraguay)
+0x0000400A es-bo Spanish (Bolivia)
+0x0000440A es-sv Spanish (El Salvador)
+0x0000480A es-hn Spanish (Honduras)
+0x00004C0A es-ni Spanish (Nicaragua)
+0x0000500A es-pr Spanish (Puerto Rico)
+0x00000430 sx Sutu
+0x0000041D sv Swedish
+0x0000081D sv-fi Swedish (Finland)
+0x0000041E th Thai
+0x00000431 ts Tsonga
+0x00000432 tn Tswana
+0x0000041F tr Turkish
+0x00000422 uk Ukrainian
+0x00000420 ur Urdu
+0x0000042A vi Vietnamese
+0x00000434 xh Xhosa
+0x0000043D ji Yiddish
+0x00000435 zu Zulu
diff --git a/instfiles/km-0407.ini b/instfiles/km-00000407.ini
index 6021211d..6021211d 100644
--- a/instfiles/km-0407.ini
+++ b/instfiles/km-00000407.ini
diff --git a/instfiles/km-0409.ini b/instfiles/km-00000409.ini
index a565a9b0..a565a9b0 100644
--- a/instfiles/km-0409.ini
+++ b/instfiles/km-00000409.ini
diff --git a/instfiles/km-040a.ini b/instfiles/km-0000040a.ini
index 5a961845..5a961845 100644
--- a/instfiles/km-040a.ini
+++ b/instfiles/km-0000040a.ini
diff --git a/instfiles/km-041d.ini b/instfiles/km-0000040b.ini
index 3cf432b2..3cf432b2 100644
--- a/instfiles/km-041d.ini
+++ b/instfiles/km-0000040b.ini
diff --git a/instfiles/km-040c.ini b/instfiles/km-0000040c.ini
index 6895c4a2..6895c4a2 100644
--- a/instfiles/km-040c.ini
+++ b/instfiles/km-0000040c.ini
diff --git a/instfiles/km-0410.ini b/instfiles/km-00000410.ini
index a9723117..a9723117 100644
--- a/instfiles/km-0410.ini
+++ b/instfiles/km-00000410.ini
diff --git a/instfiles/km-0411.ini b/instfiles/km-00000411.ini
index e860e6fd..e860e6fd 100644
--- a/instfiles/km-0411.ini
+++ b/instfiles/km-00000411.ini
diff --git a/instfiles/km-0414.ini b/instfiles/km-00000414.ini
index 08ba2ab8..08ba2ab8 100644
--- a/instfiles/km-0414.ini
+++ b/instfiles/km-00000414.ini
diff --git a/instfiles/km-0415.ini b/instfiles/km-00000415.ini
index 884e534f..884e534f 100644
--- a/instfiles/km-0415.ini
+++ b/instfiles/km-00000415.ini
diff --git a/instfiles/km-0416.ini b/instfiles/km-00000416.ini
index 9f2eb4db..9f2eb4db 100644
--- a/instfiles/km-0416.ini
+++ b/instfiles/km-00000416.ini
diff --git a/instfiles/km-0419.ini b/instfiles/km-00000419.ini
index 81395886..81395886 100644
--- a/instfiles/km-0419.ini
+++ b/instfiles/km-00000419.ini
diff --git a/instfiles/km-0000041d.ini b/instfiles/km-0000041d.ini
new file mode 100644
index 00000000..3cf432b2
--- /dev/null
+++ b/instfiles/km-0000041d.ini
@@ -0,0 +1,791 @@
+[noshift]
+Key8=65406:0
+Key9=65307:27
+Key10=49:49
+Key11=50:50
+Key12=51:51
+Key13=52:52
+Key14=53:53
+Key15=54:54
+Key16=55:55
+Key17=56:56
+Key18=57:57
+Key19=48:48
+Key20=43:43
+Key21=65105:180
+Key22=65288:8
+Key23=65289:9
+Key24=113:113
+Key25=119:119
+Key26=101:101
+Key27=114:114
+Key28=116:116
+Key29=121:121
+Key30=117:117
+Key31=105:105
+Key32=111:111
+Key33=112:112
+Key34=229:229
+Key35=65111:168
+Key36=65293:13
+Key37=65507:0
+Key38=97:97
+Key39=115:115
+Key40=100:100
+Key41=102:102
+Key42=103:103
+Key43=104:104
+Key44=106:106
+Key45=107:107
+Key46=108:108
+Key47=246:246
+Key48=228:228
+Key49=167:167
+Key50=65505:0
+Key51=39:39
+Key52=122:122
+Key53=120:120
+Key54=99:99
+Key55=118:118
+Key56=98:98
+Key57=110:110
+Key58=109:109
+Key59=44:44
+Key60=46:46
+Key61=45:45
+Key62=65506:0
+Key63=65450:42
+Key64=65513:0
+Key65=32:32
+Key66=65509:0
+Key67=65470:0
+Key68=65471:0
+Key69=65472:0
+Key70=65473:0
+Key71=65474:0
+Key72=65475:0
+Key73=65476:0
+Key74=65477:0
+Key75=65478:0
+Key76=65479:0
+Key77=65407:0
+Key78=65300:0
+Key79=65429:0
+Key80=65431:0
+Key81=65434:0
+Key82=65453:45
+Key83=65430:0
+Key84=65437:0
+Key85=65432:0
+Key86=65451:43
+Key87=65436:0
+Key88=65433:0
+Key89=65435:0
+Key90=65438:0
+Key91=65439:0
+Key92=65377:0
+Key93=0:0
+Key94=60:60
+Key95=65480:0
+Key96=65481:0
+Key97=65360:0
+Key98=65362:0
+Key99=65365:0
+Key100=65361:0
+Key101=0:0
+Key102=65363:0
+Key103=65367:0
+Key104=65364:0
+Key105=65366:0
+Key106=65379:0
+Key107=65535:127
+Key108=65421:13
+Key109=65508:0
+Key110=65299:0
+Key111=65377:0
+Key112=65455:47
+Key113=65027:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65312:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=0:0
+Key124=65027:0
+Key125=0:0
+Key126=65469:61
+Key127=0:0
+Key128=0:0
+Key129=0:0
+Key130=0:0
+Key131=0:0
+Key132=0:0
+Key133=0:0
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shift]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=164:164
+Key14=37:37
+Key15=38:38
+Key16=47:47
+Key17=40:40
+Key18=41:41
+Key19=61:61
+Key20=63:63
+Key21=65104:96
+Key22=65288:8
+Key23=65056:0
+Key24=81:81
+Key25=87:87
+Key26=69:69
+Key27=82:82
+Key28=84:84
+Key29=89:89
+Key30=85:85
+Key31=73:73
+Key32=79:79
+Key33=80:80
+Key34=197:197
+Key35=65106:94
+Key36=65293:13
+Key37=65507:0
+Key38=65:65
+Key39=83:83
+Key40=68:68
+Key41=70:70
+Key42=71:71
+Key43=72:72
+Key44=74:74
+Key45=75:75
+Key46=76:76
+Key47=214:214
+Key48=196:196
+Key49=189:189
+Key50=65505:0
+Key51=42:42
+Key52=90:90
+Key53=88:88
+Key54=67:67
+Key55=86:86
+Key56=66:66
+Key57=78:78
+Key58=77:77
+Key59=59:59
+Key60=58:58
+Key61=95:95
+Key62=65506:0
+Key63=65450:42
+Key64=65032:0
+Key65=32:32
+Key66=65509:0
+Key67=65470:0
+Key68=65471:0
+Key69=65472:0
+Key70=65473:0
+Key71=65474:0
+Key72=65475:0
+Key73=65476:0
+Key74=65477:0
+Key75=65478:0
+Key76=65479:0
+Key77=65407:0
+Key78=65300:0
+Key79=65463:55
+Key80=65464:56
+Key81=65465:57
+Key82=65453:45
+Key83=65460:52
+Key84=65461:53
+Key85=65462:54
+Key86=65451:43
+Key87=65457:49
+Key88=65458:50
+Key89=65459:51
+Key90=65456:48
+Key91=65452:44
+Key92=65377:0
+Key93=0:0
+Key94=62:62
+Key95=65480:0
+Key96=65481:0
+Key97=65360:0
+Key98=65362:0
+Key99=65365:0
+Key100=65361:0
+Key101=0:0
+Key102=65363:0
+Key103=65367:0
+Key104=65364:0
+Key105=65366:0
+Key106=65379:0
+Key107=65535:127
+Key108=65421:13
+Key109=65508:0
+Key110=65299:0
+Key111=65377:0
+Key112=65455:47
+Key113=65027:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65312:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=0:0
+Key124=65027:0
+Key125=65513:0
+Key126=65469:61
+Key127=65515:0
+Key128=65517:0
+Key129=0:0
+Key130=0:0
+Key131=0:0
+Key132=0:0
+Key133=0:0
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[altgr]
+Key8=65406:0
+Key9=65307:27
+Key10=161:161
+Key11=64:64
+Key12=163:163
+Key13=36:36
+Key14=8364:8364
+Key15=165:165
+Key16=123:123
+Key17=91:91
+Key18=93:93
+Key19=125:125
+Key20=92:92
+Key21=177:177
+Key22=65288:8
+Key23=65289:9
+Key24=64:64
+Key25=435:322
+Key26=8364:8364
+Key27=174:174
+Key28=254:254
+Key29=2299:8592
+Key30=2302:8595
+Key31=2301:8594
+Key32=5053:339
+Key33=254:254
+Key34=65111:168
+Key35=65107:126
+Key36=65293:13
+Key37=65507:0
+Key38=170:170
+Key39=223:223
+Key40=240:240
+Key41=496:273
+Key42=959:331
+Key43=689:295
+Key44=65121:0
+Key45=930:312
+Key46=435:322
+Key47=248:248
+Key48=230:230
+Key49=182:182
+Key50=65505:0
+Key51=180:180
+Key52=171:171
+Key53=187:187
+Key54=169:169
+Key55=2770:8220
+Key56=2771:8221
+Key57=110:110
+Key58=181:181
+Key59=65115:184
+Key60=183:183
+Key61=65120:0
+Key62=65506:0
+Key63=65450:42
+Key64=65513:0
+Key65=32:32
+Key66=65509:0
+Key67=65470:0
+Key68=65471:0
+Key69=65472:0
+Key70=65473:0
+Key71=65474:0
+Key72=65475:0
+Key73=65476:0
+Key74=65477:0
+Key75=65478:0
+Key76=65479:0
+Key77=65407:0
+Key78=65300:0
+Key79=65429:0
+Key80=65431:0
+Key81=65434:0
+Key82=65453:45
+Key83=65430:0
+Key84=65437:0
+Key85=65432:0
+Key86=65451:43
+Key87=65436:0
+Key88=65433:0
+Key89=65435:0
+Key90=65438:0
+Key91=65439:0
+Key92=65377:0
+Key93=0:0
+Key94=124:124
+Key95=65480:0
+Key96=65481:0
+Key97=65360:0
+Key98=65362:0
+Key99=65365:0
+Key100=65361:0
+Key101=0:0
+Key102=65363:0
+Key103=65367:0
+Key104=65364:0
+Key105=65366:0
+Key106=65379:0
+Key107=65535:127
+Key108=65421:13
+Key109=65508:0
+Key110=65299:0
+Key111=65377:0
+Key112=65455:47
+Key113=65027:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65312:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=0:0
+Key124=65027:0
+Key125=0:0
+Key126=65469:61
+Key127=0:0
+Key128=0:0
+Key129=0:0
+Key130=0:0
+Key131=0:0
+Key132=0:0
+Key133=0:0
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftaltgr]
+Key8=65406:0
+Key9=65307:27
+Key10=185:185
+Key11=178:178
+Key12=179:179
+Key13=188:188
+Key14=162:162
+Key15=2757:8541
+Key16=247:247
+Key17=171:171
+Key18=187:187
+Key19=176:176
+Key20=191:191
+Key21=172:172
+Key22=65288:8
+Key23=65056:0
+Key24=2009:937
+Key25=419:321
+Key26=162:162
+Key27=174:174
+Key28=222:222
+Key29=165:165
+Key30=2300:8593
+Key31=697:305
+Key32=5052:338
+Key33=222:222
+Key34=65112:176
+Key35=65114:711
+Key36=65293:13
+Key37=65507:0
+Key38=186:186
+Key39=167:167
+Key40=208:208
+Key41=170:170
+Key42=957:330
+Key43=673:294
+Key44=65122:0
+Key45=38:38
+Key46=419:321
+Key47=216:216
+Key48=198:198
+Key49=190:190
+Key50=65505:0
+Key51=215:215
+Key52=60:60
+Key53=62:62
+Key54=169:169
+Key55=2768:8216
+Key56=2769:8217
+Key57=78:78
+Key58=186:186
+Key59=65116:731
+Key60=65110:729
+Key61=65110:729
+Key62=65506:0
+Key63=65450:42
+Key64=65032:0
+Key65=160:160
+Key66=65509:0
+Key67=65470:0
+Key68=65471:0
+Key69=65472:0
+Key70=65473:0
+Key71=65474:0
+Key72=65475:0
+Key73=65476:0
+Key74=65477:0
+Key75=65478:0
+Key76=65479:0
+Key77=65407:0
+Key78=65300:0
+Key79=65463:55
+Key80=65464:56
+Key81=65465:57
+Key82=65453:45
+Key83=65460:52
+Key84=65461:53
+Key85=65462:54
+Key86=65451:43
+Key87=65457:49
+Key88=65458:50
+Key89=65459:51
+Key90=65456:48
+Key91=65452:44
+Key92=65377:0
+Key93=0:0
+Key94=166:166
+Key95=65480:0
+Key96=65481:0
+Key97=65360:0
+Key98=65362:0
+Key99=65365:0
+Key100=65361:0
+Key101=0:0
+Key102=65363:0
+Key103=65367:0
+Key104=65364:0
+Key105=65366:0
+Key106=65379:0
+Key107=65535:127
+Key108=65421:13
+Key109=65508:0
+Key110=65299:0
+Key111=65377:0
+Key112=65455:47
+Key113=65027:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65312:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=0:0
+Key124=65027:0
+Key125=65513:0
+Key126=65469:61
+Key127=65515:0
+Key128=65517:0
+Key129=0:0
+Key130=0:0
+Key131=0:0
+Key132=0:0
+Key133=0:0
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[capslock]
+Key8=65406:0
+Key9=65307:27
+Key10=49:49
+Key11=50:50
+Key12=51:51
+Key13=52:52
+Key14=53:53
+Key15=54:54
+Key16=55:55
+Key17=56:56
+Key18=57:57
+Key19=48:48
+Key20=43:43
+Key21=65105:180
+Key22=65288:8
+Key23=65289:9
+Key24=81:81
+Key25=87:87
+Key26=69:69
+Key27=82:82
+Key28=84:84
+Key29=89:89
+Key30=85:85
+Key31=73:73
+Key32=79:79
+Key33=80:80
+Key34=197:197
+Key35=65111:168
+Key36=65293:13
+Key37=65507:0
+Key38=65:65
+Key39=83:83
+Key40=68:68
+Key41=70:70
+Key42=71:71
+Key43=72:72
+Key44=74:74
+Key45=75:75
+Key46=76:76
+Key47=214:214
+Key48=196:196
+Key49=167:167
+Key50=65505:0
+Key51=39:39
+Key52=90:90
+Key53=88:88
+Key54=67:67
+Key55=86:86
+Key56=66:66
+Key57=78:78
+Key58=77:77
+Key59=44:44
+Key60=46:46
+Key61=45:45
+Key62=65506:0
+Key63=65450:42
+Key64=65513:0
+Key65=32:32
+Key66=65509:0
+Key67=65470:0
+Key68=65471:0
+Key69=65472:0
+Key70=65473:0
+Key71=65474:0
+Key72=65475:0
+Key73=65476:0
+Key74=65477:0
+Key75=65478:0
+Key76=65479:0
+Key77=65407:0
+Key78=65300:0
+Key79=65429:0
+Key80=65431:0
+Key81=65434:0
+Key82=65453:45
+Key83=65430:0
+Key84=65437:0
+Key85=65432:0
+Key86=65451:43
+Key87=65436:0
+Key88=65433:0
+Key89=65435:0
+Key90=65438:0
+Key91=65439:0
+Key92=65377:0
+Key93=0:0
+Key94=60:60
+Key95=65480:0
+Key96=65481:0
+Key97=65360:0
+Key98=65362:0
+Key99=65365:0
+Key100=65361:0
+Key101=0:0
+Key102=65363:0
+Key103=65367:0
+Key104=65364:0
+Key105=65366:0
+Key106=65379:0
+Key107=65535:127
+Key108=65421:13
+Key109=65508:0
+Key110=65299:0
+Key111=65377:0
+Key112=65455:47
+Key113=65027:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65312:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=0:0
+Key124=65027:0
+Key125=0:0
+Key126=65469:61
+Key127=0:0
+Key128=0:0
+Key129=0:0
+Key130=0:0
+Key131=0:0
+Key132=0:0
+Key133=0:0
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+[shiftcapslock]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=164:164
+Key14=37:37
+Key15=38:38
+Key16=47:47
+Key17=40:40
+Key18=41:41
+Key19=61:61
+Key20=63:63
+Key21=65104:96
+Key22=65288:8
+Key23=65056:0
+Key24=113:113
+Key25=119:119
+Key26=101:101
+Key27=114:114
+Key28=116:116
+Key29=121:121
+Key30=117:117
+Key31=105:105
+Key32=111:111
+Key33=112:112
+Key34=229:229
+Key35=65106:94
+Key36=65293:13
+Key37=65507:0
+Key38=97:97
+Key39=115:115
+Key40=100:100
+Key41=102:102
+Key42=103:103
+Key43=104:104
+Key44=106:106
+Key45=107:107
+Key46=108:108
+Key47=246:246
+Key48=228:228
+Key49=189:189
+Key50=65505:0
+Key51=42:42
+Key52=122:122
+Key53=120:120
+Key54=99:99
+Key55=118:118
+Key56=98:98
+Key57=110:110
+Key58=109:109
+Key59=59:59
+Key60=58:58
+Key61=95:95
+Key62=65506:0
+Key63=65450:42
+Key64=65032:0
+Key65=32:32
+Key66=65509:0
+Key67=65470:0
+Key68=65471:0
+Key69=65472:0
+Key70=65473:0
+Key71=65474:0
+Key72=65475:0
+Key73=65476:0
+Key74=65477:0
+Key75=65478:0
+Key76=65479:0
+Key77=65407:0
+Key78=65300:0
+Key79=65463:55
+Key80=65464:56
+Key81=65465:57
+Key82=65453:45
+Key83=65460:52
+Key84=65461:53
+Key85=65462:54
+Key86=65451:43
+Key87=65457:49
+Key88=65458:50
+Key89=65459:51
+Key90=65456:48
+Key91=65452:44
+Key92=65377:0
+Key93=0:0
+Key94=62:62
+Key95=65480:0
+Key96=65481:0
+Key97=65360:0
+Key98=65362:0
+Key99=65365:0
+Key100=65361:0
+Key101=0:0
+Key102=65363:0
+Key103=65367:0
+Key104=65364:0
+Key105=65366:0
+Key106=65379:0
+Key107=65535:127
+Key108=65421:13
+Key109=65508:0
+Key110=65299:0
+Key111=65377:0
+Key112=65455:47
+Key113=65027:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65312:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=0:0
+Key124=65027:0
+Key125=65513:0
+Key126=65469:61
+Key127=65515:0
+Key128=65517:0
+Key129=0:0
+Key130=0:0
+Key131=0:0
+Key132=0:0
+Key133=0:0
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
diff --git a/instfiles/km-0807.ini b/instfiles/km-00000807.ini
index 7733eaf3..7733eaf3 100644
--- a/instfiles/km-0807.ini
+++ b/instfiles/km-00000807.ini
diff --git a/instfiles/km-0809.ini b/instfiles/km-00000809.ini
index 33c3dfa5..33c3dfa5 100644
--- a/instfiles/km-0809.ini
+++ b/instfiles/km-00000809.ini
diff --git a/instfiles/km-080c.ini b/instfiles/km-0000080c.ini
index 3b160b37..3b160b37 100644
--- a/instfiles/km-080c.ini
+++ b/instfiles/km-0000080c.ini
diff --git a/instfiles/km-0813.ini b/instfiles/km-00000813.ini
index 3b160b37..3b160b37 100644
--- a/instfiles/km-0813.ini
+++ b/instfiles/km-00000813.ini
diff --git a/instfiles/km-0816.ini b/instfiles/km-00000816.ini
index 3a5801b2..3a5801b2 100644
--- a/instfiles/km-0816.ini
+++ b/instfiles/km-00000816.ini
diff --git a/instfiles/km-100c.ini b/instfiles/km-0000100c.ini
index fd963fc0..fd963fc0 100644
--- a/instfiles/km-100c.ini
+++ b/instfiles/km-0000100c.ini
diff --git a/librfxcodec b/librfxcodec
-Subproject 845ee8ca99a306fe0124d725a5d8738ff69cb41
+Subproject 2a90952148888faea1cb02796cf62fb2c53e809
diff --git a/sesman/sesman.ini b/sesman/sesman.ini
index 3d090076..87e55e48 100644
--- a/sesman/sesman.ini
+++ b/sesman/sesman.ini
@@ -84,12 +84,12 @@ param7=96
param0=Xorg
param1=-config
param2=xrdp/xorg.conf
-param3=-logfile
-param4=/dev/null
-param5=-noreset
-param6=-ac
-param7=-nolisten
-param8=tcp
+param3=-noreset
+param4=-ac
+param5=-nolisten
+param6=tcp
+param7=-logfile
+param8=/dev/null
[Chansrv]
# drive redirection, defaults to xrdp_client if not set
diff --git a/xorg/X11R7.6/buildx.sh b/xorg/X11R7.6/buildx.sh
index ca0b29a9..4245c955 100755
--- a/xorg/X11R7.6/buildx.sh
+++ b/xorg/X11R7.6/buildx.sh
@@ -23,23 +23,19 @@
# debian packages needed
# flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils
-download_file()
+download_all_files()
{
- local file url status
- file=$1
+ # download files parallelly using keepalive
+ # a little bit faster than calling wget with single file more than 100 times
+ < x11_file_list.txt cut -f1 -d: | sed -e "s|^|${download_url}/|" | \
+ xargs -P2 -n $(expr $num_modules / 2 + 1) \
+ wget \
+ --directory-prefix=downloads \
+ --no-verbose \
+ --timestamping \
+ --continue
- # if we already have the file, don't download it
- if [ -r downloads/$file ]; then
- return 0
- fi
-
- echo "downloading file $download_url/$file"
-
- cd downloads
-
- wget -cq $download_url/$file
status=$?
- cd ..
return $status
}
@@ -74,15 +70,6 @@ extract_it()
return 0
fi
- # download file
- if ! download_file $mod_file
- then
- echo ""
- echo "failed to download $mod_file - aborting build"
- echo ""
- exit 1
- fi
-
cd build_dir
# if pkg has not yet been extracted, do so now
@@ -180,7 +167,7 @@ data_file=x11_file_list.txt
# was www.x.org/releases/X11R7.6/src/everything
download_url=http://server1.xrdp.org/xrdp/X11R7.6
-num_modules=`cat $data_file | wc -l`
+num_modules=`wc -l < $data_file`
count=0
##########################
@@ -263,6 +250,14 @@ if ! NPROC=`nproc`; then
NPROC=1
fi
+if ! download_all_files; then
+ echo ""
+ echo "download failed - aborting build"
+ echo "rerun this script to resume download/build"
+ echo ""
+ exit 1
+fi
+
while IFS=: read mod_file mod_dir mod_args
do
mod_args=`eval echo $mod_args`
diff --git a/xrdp/lang.c b/xrdp/lang.c
index fa284112..ae577596 100644
--- a/xrdp/lang.c
+++ b/xrdp/lang.c
@@ -231,12 +231,12 @@ get_keymaps(int keylayout, struct xrdp_keymap *keymap)
filename = (char *)g_malloc(256, 0);
/* check if there is a keymap file */
- g_snprintf(filename, 255, "%s/km-%4.4x.ini", XRDP_CFG_PATH, keylayout);
+ g_snprintf(filename, 255, "%s/km-%08x.ini", XRDP_CFG_PATH, keylayout);
/* if the file does not exist, try again with 'en-us' as fallback */
if (!g_file_exist(filename))
{
- g_snprintf(filename, 255, "%s/km-0409.ini", XRDP_CFG_PATH);
+ g_snprintf(filename, 255, "%s/km-00000409.ini", XRDP_CFG_PATH);
}
if (g_file_exist(filename))
@@ -263,7 +263,7 @@ get_keymaps(int keylayout, struct xrdp_keymap *keymap)
if (g_memcmp(lkeymap, keymap, sizeof(struct xrdp_keymap)) != 0)
{
log_message(LOG_LEVEL_WARNING,
- "local keymap file for 0x%4.4x found and doesn't match "
+ "local keymap file for 0x%08x found and doesn't match "
"built in keymap, using local keymap file", keylayout);
}
diff --git a/xrdp/xrdp.ini b/xrdp/xrdp.ini
index 6f9936c4..e5bc148b 100644
--- a/xrdp/xrdp.ini
+++ b/xrdp/xrdp.ini
@@ -56,7 +56,7 @@ grey=dedede
# Section name to use for automatic login if the client sends username
# and password
-autorun=xrdp1
+autorun=X11rdp
bulk_compression=yes
@@ -144,8 +144,8 @@ tcutils=true
# for debugging xrdp, add following line to section xrdp1
# chansrvport=/tmp/.xrdp/xrdp_chansrv_socket_7210
-[xrdp1]
-name=sesman-X11rdp
+[X11rdp]
+name=X11rdp
lib=libxup.so
username=ask
password=ask
@@ -154,8 +154,18 @@ port=-1
xserverbpp=24
code=10
-[xrdp2]
-name=sesman-Xvnc
+[Xorg]
+name=Xorg
+lib=libxup.so
+username=ask
+password=ask
+ip=127.0.0.1
+port=-1
+xserverbpp=24
+code=20
+
+[Xvnc]
+name=Xvnc
lib=libvnc.so
username=ask
password=ask
@@ -163,7 +173,7 @@ ip=127.0.0.1
port=-1
#delay_ms=2000
-[xrdp3]
+[console]
name=console
lib=libvnc.so
ip=127.0.0.1
@@ -172,7 +182,7 @@ username=na
password=ask
#delay_ms=2000
-[xrdp4]
+[vnc-any]
name=vnc-any
lib=libvnc.so
ip=ask
@@ -184,7 +194,7 @@ password=ask
#pamsessionmng=127.0.0.1
#delay_ms=2000
-[xrdp5]
+[sesman-any]
name=sesman-any
lib=libvnc.so
ip=ask
@@ -193,13 +203,13 @@ username=ask
password=ask
#delay_ms=2000
-[xrdp6]
+[rdp-any]
name=rdp-any
lib=librdp.so
ip=ask
port=ask3389
-[xrdp7]
+[neutrinordp-any]
name=neutrinordp-any
lib=libxrdpneutrinordp.so
ip=ask
@@ -207,16 +217,6 @@ port=ask3389
username=ask
password=ask
-[Session manager]
-name=Session manager
-lib=libxup.so
-username=ask
-password=ask
-ip=127.0.0.1
-port=-1
-xserverbpp=24
-code=20
-
# You can override the common channel settings for each session type
#channel.rdpdr=true
#channel.rdpsnd=true