Hello community,

here is the log from the commit of package systemd for openSUSE:Factory
checked in at Mon Aug 29 09:14:33 CEST 2011.



--------
--- systemd/systemd.changes     2011-08-24 17:35:40.000000000 +0200
+++ /mounts/work_src_done/STABLE/systemd/systemd.changes        2011-08-26 
16:11:35.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Aug 26 14:10:30 UTC 2011 - [email protected]
+
+- Update compose_table patch to use two separate loadkeys call,
+  compose table overflows otherwise (spotted by Werner Fink).
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ systemd.spec ++++++
--- /var/tmp/diff_new_pack.UixW1V/_old  2011-08-29 09:13:23.000000000 +0200
+++ /var/tmp/diff_new_pack.UixW1V/_new  2011-08-29 09:13:23.000000000 +0200
@@ -22,7 +22,7 @@
 Name:           systemd
 Url:            http://www.freedesktop.org/wiki/Software/systemd
 Version:        33
-Release:        15
+Release:        17
 License:        GPLv2+
 Group:          System/Base
 Summary:        A System and Session Manager

++++++ 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch ++++++
--- /var/tmp/diff_new_pack.UixW1V/_old  2011-08-29 09:13:23.000000000 +0200
+++ /var/tmp/diff_new_pack.UixW1V/_new  2011-08-29 09:13:23.000000000 +0200
@@ -1,14 +1,14 @@
-From e183dbe195058ef921c4bd9760dc3631b425dd92 Mon Sep 17 00:00:00 2001
+From 07f0fb4424105c0e90e2add79efe48109b6c9fd1 Mon Sep 17 00:00:00 2001
 From: Frederic Crozat <[email protected]>
 Date: Thu, 18 Aug 2011 18:28:01 +0200
 Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate
 
 ---
- src/vconsole-setup.c |   93 ++++++++++++++++++++++++++++++++++++++++++++++++--
- 1 files changed, 90 insertions(+), 3 deletions(-)
+ src/vconsole-setup.c |  124 ++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 files changed, 121 insertions(+), 3 deletions(-)
 
 diff --git a/src/vconsole-setup.c b/src/vconsole-setup.c
-index 4347a20..28dc1d9 100644
+index 4347a20..af558ef 100644
 --- a/src/vconsole-setup.c
 +++ b/src/vconsole-setup.c
 @@ -39,6 +39,7 @@
@@ -25,52 +25,79 @@
  
 -static int load_keymap(const char *vc, const char *map, const char 
*map_toggle, bool utf8, pid_t *_pid) {
 -        const char *args[8];
-+static int load_keymap(const char *vc, const char *map, const char 
*map_toggle, bool utf8, bool disable_capslock, const char *compose_table, pid_t 
*_pid) {
-+        const char *args[1024];
++static int load_keymap(const char *vc, const char *map, const char 
*map_toggle, bool utf8, bool disable_capslock, pid_t *_pid) {
++        const char *args[9];
          int i = 0;
          pid_t pid;
  
-@@ -98,6 +99,35 @@ static int load_keymap(const char *vc, const char *map, 
const char *map_toggle,
+@@ -98,6 +99,8 @@ static int load_keymap(const char *vc, const char *map, 
const char *map_toggle,
          args[i++] = map;
          if (map_toggle)
                  args[i++] = map_toggle;
 +        if (disable_capslock)
 +                args[i++] = "disable.capslock";
-+        if (compose_table) {
-+                char **strv_compose_table = NULL;
-+
-+                strv_compose_table = strv_split(compose_table, WHITESPACE);
-+                if (strv_compose_table) {
-+                        bool compose_loaded = false;
-+                        bool compose_clear = false;
-+                        char **name;
-+                        char *arg;
-+
-+                        STRV_FOREACH (name, strv_compose_table) {
-+                                if (streq(*name,"-c") || 
streq(*name,"clear")) {
-+                                        compose_clear = true;
-+                                        continue;
-+                                }
-+                                if (!compose_loaded) {
-+                                        if (compose_clear)
-+                                                args[i++] = "-c";
-+                                }
-+                                asprintf(&arg, "compose.%s",*name);
-+                                compose_loaded = true;
-+                                args[i++] = arg;
-+
-+                        }
-+                }
-+                strv_free(strv_compose_table);
-+        }
          args[i++] = NULL;
  
          if ((pid = fork()) < 0) {
-@@ -149,6 +179,42 @@ static int load_font(const char *vc, const char *font, 
const char *map, const ch
+@@ -149,6 +152,96 @@ static int load_font(const char *vc, const char *font, 
const char *map, const ch
          return 0;
  }
  
 +#ifdef TARGET_SUSE
++static int load_compose_table(const char *vc, const char *compose_table, 
pid_t *_pid) {
++        const char *args[1024];
++        int i = 0;
++        pid_t pid;
++        char **strv_compose_table = NULL;
++
++        if (isempty(compose_table)) {
++                /* An empty map means no compose table*/
++                *_pid = 0;
++                return 0;
++        }
++
++        args[i++] = KBD_LOADKEYS;
++        args[i++] = "-q";
++        args[i++] = "-C";
++        args[i++] = vc;
++
++        strv_compose_table = strv_split(compose_table, WHITESPACE);
++        if (strv_compose_table) {
++                bool compose_loaded = false;
++                bool compose_clear = false;
++                char **name;
++                char *arg;
++
++                STRV_FOREACH (name, strv_compose_table) {
++                        if (streq(*name,"-c") || streq(*name,"clear")) {
++                                compose_clear = true;
++                                continue;
++                        }
++                        if (!compose_loaded) {
++                                if (compose_clear)
++                                        args[i++] = "-c";
++                        }
++                        asprintf(&arg, "compose.%s",*name);
++                        compose_loaded = true;
++                        args[i++] = arg;
++
++                }
++                strv_free(strv_compose_table);
++        }
++        args[i++] = NULL;
++
++        if ((pid = fork()) < 0) {
++                log_error("Failed to fork: %m");
++                return -errno;
++        } else if (pid == 0) {
++                execv(args[0], (char **) args);
++                _exit(EXIT_FAILURE);
++        }
++
++        *_pid = pid;
++        return 0;
++}
++
 +static int set_kbd_rate(const char *vc, const char *kbd_rate, const char 
*kbd_delay, pid_t *_pid) {
 +        const char *args[7];
 +        int i = 0;
@@ -109,14 +136,7 @@
  int main(int argc, char **argv) {
          const char *vc;
          char *vc_keymap = NULL;
-@@ -156,14 +222,22 @@ int main(int argc, char **argv) {
-         char *vc_font = NULL;
-         char *vc_font_map = NULL;
-         char *vc_font_unimap = NULL;
-+        char *vc_compose_table = NULL;
- #ifdef TARGET_GENTOO
-         char *vc_unicode = NULL;
- #endif
+@@ -162,8 +255,16 @@ int main(int argc, char **argv) {
  #ifdef TARGET_MANDRIVA
          char *vc_keytable = NULL;
  #endif
@@ -124,7 +144,8 @@
 +        char *vc_kbd_delay = NULL;
 +        char *vc_kbd_rate = NULL;
 +        char *vc_kbd_disable_caps_lock = NULL;
-+        pid_t kbd_rate_pid = 0;
++        char *vc_compose_table = NULL;
++        pid_t kbd_rate_pid = 0, compose_table_pid = 0;
 +#endif
          int fd = -1;
          bool utf8;
@@ -132,7 +153,7 @@
          int r = EXIT_FAILURE;
          pid_t font_pid = 0, keymap_pid = 0;
  
-@@ -268,6 +342,10 @@ int main(int argc, char **argv) {
+@@ -268,6 +369,10 @@ int main(int argc, char **argv) {
  #elif defined(TARGET_SUSE)
                  if ((r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE,
                                          "KEYTABLE", &vc_keymap,
@@ -143,7 +164,7 @@
                                          NULL)) < 0) {
  
                          if (r != -ENOENT)
-@@ -283,6 +361,7 @@ int main(int argc, char **argv) {
+@@ -283,6 +388,7 @@ int main(int argc, char **argv) {
                          if (r != -ENOENT)
                                  log_warning("Failed to read 
/etc/sysconfig/console: %s", strerror(-r));
                  }
@@ -151,23 +172,27 @@
  
  #elif defined(TARGET_ARCH)
                  if ((r = parse_env_file("/etc/rc.conf", NEWLINE,
-@@ -439,7 +518,10 @@ int main(int argc, char **argv) {
+@@ -439,7 +545,11 @@ int main(int argc, char **argv) {
          if (!utf8)
                  disable_utf8(fd);
  
 -        if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) 
>= 0 &&
-+        if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, 
disable_capslock, vc_compose_table, &keymap_pid) >= 0 &&
++        if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, 
disable_capslock, &keymap_pid) >= 0 &&
 +#ifdef TARGET_SUSE
++            load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 
&&
 +            set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 &&
 +#endif
              load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 
0)
                  r = EXIT_SUCCESS;
  
-@@ -447,6 +529,11 @@ finish:
+@@ -447,6 +557,14 @@ finish:
          if (keymap_pid > 0)
                  wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid);
  
 +#ifdef TARGET_SUSE
++        if (compose_table_pid > 0)
++                wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid);
++
 +        if (kbd_rate_pid > 0)
 +                wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid);
 +#endif


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to