diff --git a/imsettings-fix-segfault-on-non-bash.patch b/imsettings-fix-segfault-on-non-bash.patch new file mode 100644 index 0000000..45eed02 --- /dev/null +++ b/imsettings-fix-segfault-on-non-bash.patch @@ -0,0 +1,59 @@ +Index: imsettings/imsettings-info.c +=================================================================== +--- imsettings/imsettings-info.c (リビジョン 368) ++++ imsettings/imsettings-info.c (作業コピー) +@@ -223,7 +223,7 @@ + } + xinputinfo = g_build_filename(path, "xinputinfo.sh", NULL); + g_free(path); +- g_string_append_printf(cmd, "%s. %s %s", lang, xinputinfo, filename); ++ g_string_append_printf(cmd, "%s %s %s", lang, xinputinfo, filename); + + g_free(xinputinfo); + g_free(lang); +@@ -306,6 +306,14 @@ + } + g_string_free(cmd, TRUE); + g_string_free(str, TRUE); ++ ++ /* sanity check */ ++ if (priv->ignore == FALSE && ++ (priv->xim == NULL || ++ priv->filename == NULL)) { ++ g_warning("Broken config file or unable to read: %s", filename); ++ g_object_set(object, "ignore", TRUE, NULL); ++ } + } + + static void +Index: data/Makefile.am +=================================================================== +--- data/Makefile.am (リビジョン 368) ++++ data/Makefile.am (作業コピー) +@@ -1,9 +1,6 @@ + ## + # Global definitions + NULL = +-CONFIGURE_DEPENDENCIES = \ +- xinput.sh.in \ +- $(NULL) + EXTRA_DIST = \ + $(xinput_in_in_files) \ + $(xinputsh_in_in) \ +@@ -29,11 +26,14 @@ + + ## + # Local Rules +-$(xinput_DATA): $(xinput_in_files) ++$(xinput_DATA): $(xinput_in_files) $(builddir)/Makefile + cp `echo $@ | sed -e 's|$(XINPUT_SUFFIX)$$||'`.in $@ + # +-$(xinputsh_DATA): $(xinputsh_in) ++$(xinputsh_DATA): $(xinputsh_in) $(builddir)/Makefile + cp $(xinputsh_in) @XINPUTSH@ ++# ++$(xinputinfosh_DATA): $(xinputinfosh_in) $(builddir)/Makefile ++ chmod a+x $@ + + clean-local: + -rm $(xinput_DATA) diff --git a/imsettings.spec b/imsettings.spec index c0c5988..a0bc042 100644 --- a/imsettings.spec +++ b/imsettings.spec @@ -1,11 +1,12 @@ Name: imsettings Version: 0.107.4 -Release: 6%{?dist} +Release: 7%{?dist} License: LGPLv2+ URL: http://code.google.com/p/imsettings/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: desktop-file-utils BuildRequires: intltool gettext +BuildRequires: autoconf automake libtool BuildRequires: dbus-devel >= 0.23, dbus-glib-devel >= 0.74, glib2 >= 2.16 BuildRequires: libgxim-devel >= 0.3.1, libnotify-devel %if !0%{?rhel} @@ -22,6 +23,7 @@ Patch2: imsettings-none.conf-gtk-xim-default.patch Patch3: imsettings-fix-segv-on-xfce-helper.patch Patch4: imsettings-fix-segfault-on-dbus.patch Patch5: imsettings-fix-gconf-abort.patch +Patch6: imsettings-fix-segfault-on-non-bash.patch Summary: Delivery framework for general Input Method configuration Group: Applications/System @@ -94,6 +96,8 @@ This package contains a plugin to get this working on Xfce. %patch3 -p0 -b .3-xfce %patch4 -p0 -b .4-dbus %patch5 -p0 -b .5-gconf +%patch6 -p0 -b .6-nonbash +autoreconf -f -i %build %configure \ @@ -219,6 +223,9 @@ fi %changelog +* Tue Feb 16 2010 Akira TAGOH - 0.107.4-7 +- Fix a segfault issue when /bin/sh points to non-bash shell. (#553680) + * Fri Feb 5 2010 Akira TAGOH - 0.107.4-6 - Fix an abort issue on GConf backend. (#543005)