From 75987a76f0b9a3a011ab7d703b5b2fe60c146af6 Mon Sep 17 00:00:00 2001
From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Date: Fri, 13 Jun 2014 01:55:49 +0200
Subject: Add 302_nx-X11_xkbbasedir-detection.patch. For detecting XkbBaseDir
 test for xkb/rules/base instead of testing for deprecated file
 xkb/keymap.dir. (Fixes: #40).

---
 debian/changelog                                   |  3 +
 .../patches/302_nx-X11_xkbbasedir-detection.patch  | 84 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 88 insertions(+)
 create mode 100644 debian/patches/302_nx-X11_xkbbasedir-detection.patch

(limited to 'debian')

diff --git a/debian/changelog b/debian/changelog
index 00640a23b..6e5a49ecc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,9 @@ nx-libs (2:3.5.0.25-0x2go1) UNRELEASED; urgency=low
   * Add 028_nx-X11_abstract-kernel-sockets.full.patch. Provide abstract local
     socket support for Linux based systems. This patch pulls in abstract
     socket relevant code from xtrans 1.2.7. (Fixes: #504).
+  * Add 302_nx-X11_xkbbasedir-detection.patch. For detecting XkbBaseDir
+    test for xkb/rules/base instead of testing for deprecated file
+    xkb/keymap.dir. (Fixes: #40).
 
  -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de>  Wed, 07 May 2014 09:58:10 +0200
 
diff --git a/debian/patches/302_nx-X11_xkbbasedir-detection.patch b/debian/patches/302_nx-X11_xkbbasedir-detection.patch
new file mode 100644
index 000000000..dac3d8a08
--- /dev/null
+++ b/debian/patches/302_nx-X11_xkbbasedir-detection.patch
@@ -0,0 +1,84 @@
+Description: Test for xkb/rules/base instead of xkb/keymap.dir for setting XkbBaseDir
+Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Abstract:
+ In recent (as of 2014/06) X.org release, the keymap.dir file
+ has become obsolete. Let's test for the xkb/rules/base file
+ instead.
+--- a/nx-X11/programs/Xserver/xkb/ddxLoad.c
++++ b/nx-X11/programs/Xserver/xkb/ddxLoad.c
+@@ -180,7 +180,7 @@
+ 
+ #define NX_XKB_BASE_DIRECTORY            "/usr/lib/X11/xkb"
+ #define NX_XKB_ALTERNATE_BASE_DIRECTORY  "/usr/share/X11/xkb"
+-#define NX_KEYMAP_DIR_FILE               "keymap.dir"
++#define NX_XKB_RULES_BASE_FILE           "rules/base"
+ #define NX_ALT_XKBCOMP_PATH              "/usr/bin"
+ 
+ static char _NXXkbBasePath[PATH_MAX];
+@@ -189,43 +189,43 @@
+ static int NXVerifyXkbBaseDirectory(const char *dirPath)
+ {
+   int size;
+-  char *keymapDirFilePath;
+-  struct stat keymapDirFileStat;
++  char *rulesBaseFilePath;
++  struct stat rulesBaseFileStat;
+ 
+   /*
+-   * If keymap.dir file
+-   * is not present into
+-   * Xkb Base Directory,
++   * If rules/base file
++   * is not present inside
++   * the Xkb Base Directory,
+    * we suppose that the
+    * path is not valid.
+    */
+ 
+   size = strlen(dirPath) + strlen("/") +
+-             strlen(NX_KEYMAP_DIR_FILE) + 1;
++             strlen(NX_XKB_RULES_BASE_FILE) + 1;
+ 
+-  if ((keymapDirFilePath = malloc((size + 1) * sizeof(char))) == NULL)
++  if ((rulesBaseFilePath = malloc((size + 1) * sizeof(char))) == NULL)
+   {
+     FatalError("NXVerifyXkbBaseDirectory: malloc failed.\n");
+   }
+ 
+-  strcpy(keymapDirFilePath, dirPath);
+-  strcat(keymapDirFilePath, "/");
+-  strcat(keymapDirFilePath, NX_KEYMAP_DIR_FILE);
++  strcpy(rulesBaseFilePath, dirPath);
++  strcat(rulesBaseFilePath, "/");
++  strcat(rulesBaseFilePath, NX_XKB_RULES_BASE_FILE);
+ 
+   #ifdef TEST
+   fprintf(stderr, "NXVerifyXkbBaseDirectory: Looking for [%s] file.\n",
+-              keymapDirFilePath);
++              rulesBaseFilePath);
+   #endif
+ 
+-  if (stat(keymapDirFilePath, &keymapDirFileStat) != 0)
++  if (stat(rulesBaseFilePath, &rulesBaseFileStat) != 0)
+   {
+ 
+     #ifdef TEST
+     fprintf(stderr, "NXVerifyXkbBaseDirectory: Can't find the keymap.dir file [%s].\n",
+-                keymapDirFilePath);
++                rulesBaseFilePath);
+     #endif
+ 
+-    free(keymapDirFilePath);
++    free(rulesBaseFilePath);
+ 
+     return 0;
+   }
+@@ -235,7 +235,7 @@
+               dirPath);
+   #endif
+ 
+-  free(keymapDirFilePath);
++  free(rulesBaseFilePath);
+ 
+   return 1;
+ }
diff --git a/debian/patches/series b/debian/patches/series
index 414b28589..e9ee779ac 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -50,6 +50,7 @@
 220_nxproxy-bind-loopback-only.full+lite.patch
 300_nxagent_set-wm-class.full.patch
 301_nx-X11_use-shared-libs.full.patch
+302_nx-X11_xkbbasedir-detection.patch
 320_nxagent_configurable-keystrokes.full.patch
 600_nx-X11+nxcompext+nxcompshad_unique-libnames.full.patch
 601_nx-X11_build-option-changes-to-not-use-bundled-libraries.full.patch
-- 
cgit v1.2.3