Fix build error in aarch64 40/64940/1 submit/tizen/20160406.090342
authorSung-Jin Park <sj76.park@samsung.com>
Wed, 6 Apr 2016 09:01:57 +0000 (18:01 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Wed, 6 Apr 2016 09:01:57 +0000 (18:01 +0900)
Change-Id: Ic0ebc8c48c8fd9c7f2068d660bc775289a4cb6a6

cache/cache.c
packaging/xkeyboard-config.spec

index 5420e99..42aea5a 100644 (file)
-#include <xkbcommon/xkbcommon.h>\r
-#include <stdio.h>\r
-#include <string.h>\r
-\r
-#define DFLT_RULES "evdev"\r
-#define DFLT_MODEL "pc105"\r
-#define DFLT_LAYOUT "us"\r
-\r
-#define STRLEN(s) (s ? strlen(s) : 0)\r
-#define STR(s) (s ? s : "")\r
-\r
-void parseArgs(int argc, char **argv, struct xkb_rule_names *names)\r
-{\r
-    int i;\r
-    char *tmp, *rule_path;\r
-    FILE *file;\r
-    int len_rule_path;\r
-    char buf[1024] = {0, };\r
-\r
-    if (argc < 2)\r
-    {\r
-        rule_path = getenv("RULE_FILE_PATH");\r
-\r
-        printf("Cache file rule from %s file\n", rule_path);\r
-\r
-        file = fopen(rule_path, "r");\r
-        if (!file) return;\r
-\r
-        while (!feof(file))\r
-        {\r
-            fscanf(file, "%s", buf);\r
-            if (strstr(buf, "rules") > 0)\r
-            {\r
-                tmp = strtok(buf, "=");\r
-                tmp = strtok(NULL, "=");\r
-                if (tmp) names->rules= strdup(tmp);\r
-            }\r
-            else if (strstr(buf, "model") > 0)\r
-            {\r
-                tmp = strtok(buf, "=");\r
-                tmp = strtok(NULL, "=");\r
-                if (tmp) names->model= strdup(tmp);\r
-            }\r
-            else if (strstr(buf, "layout") > 0)\r
-            {\r
-                tmp = strtok(buf, "=");\r
-                tmp = strtok(NULL, "=");\r
-                if (tmp) names->layout= strdup(tmp);\r
-            }\r
-            else if (strstr(buf, "variant") > 0)\r
-            {\r
-                tmp = strtok(buf, "=");\r
-                tmp = strtok(NULL, "=");\r
-                if (tmp) names->variant= strdup(tmp);\r
-            }\r
-            else if (strstr(buf, "options") > 0)\r
-            {\r
-                tmp = strtok(buf, "=");\r
-                tmp = strtok(NULL, "=");\r
-                if (tmp) names->options= strdup(tmp);\r
-            }\r
-        }\r
-\r
-        fclose(file);\r
-    }\r
-    else\r
-    {\r
-        for (i = 1; i < argc; i++)\r
-        {\r
-            printf("Cache file rule from argument\n");\r
-\r
-            if (strstr(argv[i], "-rules") > 0)\r
-            {\r
-                tmp = strtok(argv[i], "=");\r
-                tmp = strtok(NULL, "=");\r
-                names->rules= strdup(tmp);\r
-            }\r
-            else if (strstr(argv[i], "-model") > 0)\r
-            {\r
-                tmp = strtok(argv[i], "=");\r
-                tmp = strtok(NULL, "=");\r
-                names->model = strdup(tmp);\r
-            }\r
-            else if (strstr(argv[i], "-layout") > 0)\r
-            {\r
-                tmp = strtok(argv[i], "=");\r
-                tmp = strtok(NULL, "=");\r
-                names->layout = strdup(tmp);\r
-            }\r
-            else if (strstr(argv[i], "-variant") > 0)\r
-            {\r
-                tmp = strtok(argv[i], "=");\r
-                tmp = strtok(NULL, "=");\r
-                names->variant = strdup(tmp);\r
-            }\r
-            else if (strstr(argv[i], "-options") > 0)\r
-            {\r
-                tmp = strtok(argv[i], "=");\r
-                tmp = strtok(NULL, "=");\r
-                names->options = strdup(tmp);\r
-            }\r
-        }\r
-    }\r
-}\r
-\r
-void checkRules(struct xkb_rule_names *names)\r
-{\r
-   if (!names->rules)\r
-   {\r
-      printf("Set default rules: %s\n", DFLT_RULES);\r
-      names->rules = strdup(DFLT_RULES);\r
-   }\r
-   else printf("Current rules: %s\n", names->rules);\r
-\r
-   if (!names->model)\r
-   {\r
-      printf("Set default model: %s\n", DFLT_MODEL);\r
-      names->model = strdup(DFLT_MODEL);\r
-   }\r
-   else printf("Current model: %s\n", names->model);\r
-\r
-   if (!names->layout)\r
-   {\r
-      printf("Set default layout: %s\n", DFLT_LAYOUT);\r
-      names->layout = strdup(DFLT_LAYOUT);\r
-   }\r
-   else printf("Current layout: %s\n", names->layout);\r
-\r
-   if (!names->variant) printf("There is no variant\n");\r
-   else printf("Current variant: %s\n", names->variant);\r
-\r
-   if (!names->options) printf("There is no options\n");\r
-   else printf("Current options: %s\n", names->options);\r
-}\r
-\r
-int main(int argc, char **argv)\r
-{\r
-    struct xkb_context *ctx;\r
-    struct xkb_keymap *map;\r
-    struct xkb_rule_names names;\r
-    char *keymap_path;\r
-    char *keymap_string;\r
-    char *cache_path;\r
-    FILE *file = NULL;\r
-    int len_cache_path;\r
-    \r
-    memset(&names, 0, sizeof(names));\r
-\r
-    parseArgs(argc, argv, &names);\r
-\r
-    checkRules(&names);\r
-\r
-    ctx = xkb_context_new(0);\r
-    if (!ctx) {\r
-       printf("Failed to generate a xkb context file\n");\r
-       return 0;\r
-    }\r
-\r
-    if (!keymap_path) keymap_path = getenv("LOCAL_KEYMAP_PATH");\r
-\r
-    xkb_context_include_path_append(ctx, keymap_path);\r
-\r
-    map = xkb_map_new_from_names(ctx, &names, 0);\r
-\r
-    keymap_string = xkb_map_get_as_string(map);\r
-    if (!keymap_string) {\r
-        printf("Failed convert keymap to string\n");\r
-        return 0;\r
-    }\r
-\r
-    len_cache_path = STRLEN(names.rules) + STRLEN(names.model) + STRLEN(names.layout) + STRLEN(names.variant) + STRLEN(names.options) + sizeof("xkb") + 5;\r
-    cache_path = (char *)calloc(1, len_cache_path);\r
-    snprintf(cache_path, len_cache_path, "%s-%s-%s-%s-%s.xkb", STR(names.rules), STR(names.model), STR(names.layout), STR(names.variant), STR(names.options));\r
-\r
-    file = fopen(cache_path, "w");\r
-    if (fputs(keymap_string, file) < 0)\r
-    {\r
-        printf("Failed  to write keymap file: %s\n", cache_path);\r
-        fclose(file);\r
-        unlink(cache_path);\r
-    }\r
-  else\r
-    {\r
-        printf("Success to make keymap file: %s\n", cache_path);\r
-        fclose(file);\r
-    }\r
-\r
-    if (names.rules) free(names.rules);\r
-    if (names.model) free(names.model);\r
-    if (names.layout) free(names.layout);\r
-    if (names.variant) free(names.variant);\r
-    if (names.options) free(names.options);\r
-    if (cache_path) free(cache_path);\r
-    xkb_keymap_unref(map);\r
-    xkb_context_unref(ctx);\r
-\r
-    return 0;\r
-}\r
+#include <xkbcommon/xkbcommon.h>
+#include <stdio.h>
+#include <string.h>
+
+#define DFLT_RULES "evdev"
+#define DFLT_MODEL "pc105"
+#define DFLT_LAYOUT "us"
+
+#define STRLEN(s) (s ? strlen(s) : 0)
+#define STR(s) (s ? s : "")
+
+void parseArgs(int argc, char **argv, struct xkb_rule_names *names)
+{
+    int i;
+    char *tmp, *rule_path;
+    FILE *file;
+    int len_rule_path;
+    char buf[1024] = {0, };
+
+    if (argc < 2)
+    {
+        rule_path = getenv("RULE_FILE_PATH");
+
+       if (!rule_path)
+        {
+            printf("Failed to get RULE_FILE_PATH !\n");
+            return;
+        }
+
+        printf("Cache file rule from %s file\n", rule_path);
+
+        file = fopen(rule_path, "r");
+        if (!file) return;
+
+        while (!feof(file))
+        {
+            fscanf(file, "%s", buf);
+            if (strstr(buf, "rules") > 0)
+            {
+                tmp = strtok(buf, "=");
+                tmp = strtok(NULL, "=");
+                if (tmp) names->rules= strdup(tmp);
+            }
+            else if (strstr(buf, "model") > 0)
+            {
+                tmp = strtok(buf, "=");
+                tmp = strtok(NULL, "=");
+                if (tmp) names->model= strdup(tmp);
+            }
+            else if (strstr(buf, "layout") > 0)
+            {
+                tmp = strtok(buf, "=");
+                tmp = strtok(NULL, "=");
+                if (tmp) names->layout= strdup(tmp);
+            }
+            else if (strstr(buf, "variant") > 0)
+            {
+                tmp = strtok(buf, "=");
+                tmp = strtok(NULL, "=");
+                if (tmp) names->variant= strdup(tmp);
+            }
+            else if (strstr(buf, "options") > 0)
+            {
+                tmp = strtok(buf, "=");
+                tmp = strtok(NULL, "=");
+                if (tmp) names->options= strdup(tmp);
+            }
+        }
+
+        fclose(file);
+    }
+    else
+    {
+        for (i = 1; i < argc; i++)
+        {
+            printf("Cache file rule from argument\n");
+
+            if (strstr(argv[i], "-rules") > 0)
+            {
+                tmp = strtok(argv[i], "=");
+                tmp = strtok(NULL, "=");
+                names->rules= strdup(tmp);
+            }
+            else if (strstr(argv[i], "-model") > 0)
+            {
+                tmp = strtok(argv[i], "=");
+                tmp = strtok(NULL, "=");
+                names->model = strdup(tmp);
+            }
+            else if (strstr(argv[i], "-layout") > 0)
+            {
+                tmp = strtok(argv[i], "=");
+                tmp = strtok(NULL, "=");
+                names->layout = strdup(tmp);
+            }
+            else if (strstr(argv[i], "-variant") > 0)
+            {
+                tmp = strtok(argv[i], "=");
+                tmp = strtok(NULL, "=");
+                names->variant = strdup(tmp);
+            }
+            else if (strstr(argv[i], "-options") > 0)
+            {
+                tmp = strtok(argv[i], "=");
+                tmp = strtok(NULL, "=");
+                names->options = strdup(tmp);
+            }
+        }
+    }
+}
+
+void checkRules(struct xkb_rule_names *names)
+{
+   if (!names->rules)
+   {
+      printf("Set default rules: %s\n", DFLT_RULES);
+      names->rules = strdup(DFLT_RULES);
+   }
+   else printf("Current rules: %s\n", names->rules);
+
+   if (!names->model)
+   {
+      printf("Set default model: %s\n", DFLT_MODEL);
+      names->model = strdup(DFLT_MODEL);
+   }
+   else printf("Current model: %s\n", names->model);
+
+   if (!names->layout)
+   {
+      printf("Set default layout: %s\n", DFLT_LAYOUT);
+      names->layout = strdup(DFLT_LAYOUT);
+   }
+   else printf("Current layout: %s\n", names->layout);
+
+   if (!names->variant) printf("There is no variant\n");
+   else printf("Current variant: %s\n", names->variant);
+
+   if (!names->options) printf("There is no options\n");
+   else printf("Current options: %s\n", names->options);
+}
+
+int main(int argc, char **argv)
+{
+    struct xkb_context *ctx;
+    struct xkb_keymap *map;
+    struct xkb_rule_names names;
+    char *keymap_path = NULL;
+    char *keymap_string = NULL;
+    char *cache_path = NULL;
+    FILE *file = NULL;
+    int len_cache_path;
+    
+    memset(&names, 0, sizeof(names));
+
+    parseArgs(argc, argv, &names);
+
+    checkRules(&names);
+
+    ctx = xkb_context_new(0);
+    if (!ctx) {
+       printf("Failed to generate a xkb context file\n");
+       return 0;
+    }
+
+    keymap_path = getenv("LOCAL_KEYMAP_PATH");
+
+    if (!keymap_path)
+    {
+        printf("Failed to get LOCAL_KEYMAP_PATH !\n");
+        return 0;
+    }
+
+    xkb_context_include_path_append(ctx, keymap_path);
+
+    map = xkb_map_new_from_names(ctx, &names, 0);
+
+    keymap_string = xkb_map_get_as_string(map);
+
+    if (!keymap_string) {
+        printf("Failed convert keymap to string\n");
+        return 0;
+    }
+
+    len_cache_path = STRLEN(names.rules) + STRLEN(names.model) + STRLEN(names.layout) + STRLEN(names.variant) + STRLEN(names.options) + sizeof("xkb") + 5;
+    cache_path = (char *)calloc(1, len_cache_path);
+    snprintf(cache_path, len_cache_path, "%s-%s-%s-%s-%s.xkb", STR(names.rules), STR(names.model), STR(names.layout), STR(names.variant), STR(names.options));
+
+    file = fopen(cache_path, "w");
+    if (fputs(keymap_string, file) < 0)
+    {
+        printf("Failed  to write keymap file: %s\n", cache_path);
+        fclose(file);
+        unlink(cache_path);
+    }
+  else
+    {
+        printf("Success to make keymap file: %s\n", cache_path);
+        fclose(file);
+    }
+
+    if (names.rules) free(names.rules);
+    if (names.model) free(names.model);
+    if (names.layout) free(names.layout);
+    if (names.variant) free(names.variant);
+    if (names.options) free(names.options);
+    if (cache_path) free(cache_path);
+    xkb_keymap_unref(map);
+    xkb_context_unref(ctx);
+
+    return 0;
+}
index 2407612..56c1384 100644 (file)
@@ -79,10 +79,13 @@ sed -i 's/evdev/tizen_%{?profile}/g' %{buildroot}/%{TZ_SYS_RO_SHARE}/X11/xkb/rul
 ln -sf tizen_"%{?profile}" %{buildroot}/%{TZ_SYS_RO_SHARE}/X11/xkb/rules/evdev
 export LOCAL_KEYMAP_PATH=%{buildroot}/%{TZ_SYS_RO_SHARE}/X11/xkb
 ./remove_unused_files.sh
-export RULE_FILE_PATH=%{TZ_SYS_RO_SHARE}/X11/xkb/xkb.rule
-%{buildroot}%{_bindir}/cache
-rm %{buildroot}%{_bindir}/cache
+#export RULE_FILE_PATH=%{TZ_SYS_RO_SHARE}/X11/xkb/xkb.rule
+if [ -e %{buildroot}%{_bindir}/cache ]; then
+       %{buildroot}%{_bindir}/cache
+       rm -f %{buildroot}%{_bindir}/cache
+fi
 mkdir -p %{buildroot}/%{TZ_SYS_VAR}/lib/xkb/
+touch %{buildroot}/%{TZ_SYS_VAR}/lib/xkb/dummy.xkb
 cp *.xkb %{buildroot}/%{TZ_SYS_VAR}/lib/xkb/
 
 #for license notification