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 - fcrozat@suse.com
+
+- 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
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: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org