diff --git a/compiz.spec b/compiz.spec index 2cc0ba0..026e5ef 100644 --- a/compiz.spec +++ b/compiz.spec @@ -7,14 +7,14 @@ # List of plugins passed to ./configure. The order is important -%define plugins glib,gconf,dbus,png,svg,video,screenshot,decoration,clone,place,fade,minimize,move,resize,switcher,scale,plane +%define plugins core,glib,gconf,dbus,png,svg,video,screenshot,decoration,clone,place,fade,minimize,move,resize,switcher,scale,plane Name: compiz URL: http://www.go-compiz.org License: X11/MIT/GPL Group: User Interface/Desktops Version: 0.7.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: OpenGL window and compositing manager BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -56,6 +56,7 @@ Patch103: composite-cube-logo.patch Patch105: fedora-logo.patch Patch106: redhat-logo.patch #Patch110: scale-key.patch +Patch111: gconf-core-plugin-loopfix.patch %description Compiz is one of the first OpenGL-accelerated compositing window @@ -122,6 +123,7 @@ and other kde integration related stuff. %patch106 -p1 -b .redhat-logo %endif #%patch110 -p1 -b .scale-key +%patch111 -p1 -b .gconf-core-loop %build @@ -317,6 +319,11 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Thu Mar 27 2008 Adel Gadllah - 0.7.2-3 +- Fix gconf plugin loop RH #438794, patch based on + older one from Guillaume Seguin +- Add core to default plugin list + * Wed Mar 26 2008 Kevin Kofler - 0.7.2-2 - Reword kde-desktop-effects messages to mention Compiz by name (#438883) diff --git a/gconf-core-plugin-loopfix.patch b/gconf-core-plugin-loopfix.patch new file mode 100644 index 0000000..3901ecb --- /dev/null +++ b/gconf-core-plugin-loopfix.patch @@ -0,0 +1,61 @@ +diff -upNr compiz-0.7.2.orign/plugins/gconf.c compiz-0.7.2/plugins/gconf.c +--- compiz-0.7.2.orign/plugins/gconf.c 2008-03-06 18:52:26.000000000 +0100 ++++ compiz-0.7.2/plugins/gconf.c 2008-03-27 19:44:11.000000000 +0100 +@@ -443,6 +443,46 @@ gconfReadOptionValue (CompObject *o + return TRUE; + } + ++ ++static void ++gconfFixupPluginList (CompOptionValue *value) ++{ ++ unsigned int i, j, length; ++ CompOptionValue *new; ++ ++ for (i = 0; i < value->list.nValue; i++) ++ if (!strcmp (value->list.value[i].s, "core")) ++ break; ++ ++ if (i != value->list.nValue) ++ return; ++ ++ puts("fix up list"); ++ length = value->list.nValue + 1; ++ ++ new = calloc (length, sizeof (CompOptionValue)); ++ ++ if (!new) ++ return; ++ ++ new[0].s = strdup ("core"); ++ ++ j = 1; ++ ++ for (i = 0; i < value->list.nValue; i++) ++ { ++ if (strcmp (value->list.value[i].s, "core")) ++ new[j++].s = strdup (value->list.value[i].s); ++ free (value->list.value[i].s); ++ } ++ ++ free (value->list.value); ++ ++ value->list.value = new; ++ value->list.nValue = length; ++} ++ ++ + static void + gconfGetOption (CompObject *object, + CompOption *o, +@@ -462,6 +502,10 @@ gconfGetOption (CompObject *object, + + if (gconfReadOptionValue (object, entry, o, &value)) + { ++ if (strcmp (plugin, "core") == 0) { ++ if (!strcmp (o->name, "active_plugins")) ++ gconfFixupPluginList (&value); ++ } + (*core.setOptionForPlugin) (object, plugin, o->name, &value); + compFiniOptionValue (&value, o->type); + }