<span class="q">&gt;You shouldn&#39;t keep a small db of known plugins. The dbus plugin should<br>&gt;be able to give you the dependencies of any plugin so you can sort them<br>&gt;properly and generate proper error messages if some plugin can&#39;t
<br>&gt;possibly be loaded due to some conflicts.<br><br></span>I
haven&#39;t being following compiz development for a while now, so i&#39;m not
sure whether this has been changed or not. But wouldn&#39;t reading the
dependency options via dbus require the plugin to be activated first,
making this method rather pointless, as you need to know the options
before activation? Or has a semi-activated plugin state been
implemented now?
<br><br>Also I found many of the dependency options within the plugins
to be incomplete. For example the cube plugin i think (I don&#39;t have
access to a compiz install right now) requires to be loaded before
switcher and scale. When in reality for it to work it needs to be
loaded after gconf and dbus, before rotate and with rotate as a
dependency.
<span class="q"><br><br>&gt;I don&#39;t see any good reason to why we would want the dependency order<br>&gt;resolved by the core. We can add an utility function and put it in core<br>&gt;or better in some shared library which can be used to solve dependencies
<br>&gt;at the plugin or application level. What do you think?<br><br>&gt;That plugins can be stacked differently, is a feature. It might not be<br>&gt;incredibly useful right now but I think it will be later on so I&#39;d like
<br>&gt;to keep it.<br><br></span>Yes a shared library would be very
useful, maybe just a few functions thats can be accessed through
compiz.h? Or maybe there could even be a new plugin to handle automatic
activation/dependancies?
(Maybe this plugin could also be used to determine which settings
backend to use, now there is an ini settings plugin, but that is a
seperate issue..)<br><br>Thanks<br>Ben,<br><br><div><span class="gmail_quote">On 2/26/07, <b class="gmail_sendername">David Reveman</b> &lt;<a href="mailto:davidr@novell.com">davidr@novell.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Thu, 2007-02-22 at 15:46 +0000, Ben Reeves wrote:<br>&gt; I&#39;m continuing to work on compiz-settings now. The most common<br>&gt; complaintat the moment is the way it activates plugins, a lot will<br>&gt; fail to activate due to being loaded in the wrong order. At the moment
<br>&gt; It has a small db of known plugins and has load_before and load_after<br>&gt; for each one, however if a plugin is unknown it will be loaded last<br>&gt; and will fail to activate.<br><br>You shouldn&#39;t keep a small db of known plugins. The dbus plugin should
<br>be able to give you the dependencies of any plugin so you can sort them<br>properly and generate proper error messages if some plugin can&#39;t<br>possibly be loaded due to some conflicts.<br><br>&gt;<br>&gt; I think it would be much better if every plugin carries it&#39;s own
<br>&gt; load_before, load_after and depends_on options and the core then<br>&gt; decides in what order to activate the plugins. This would make writing<br>&gt; a settings manager much easier, make it easier to start compiz and
<br>&gt; save duplicated effort so that each settings manager doesn&#39;t have to<br>&gt; do it&#39;s own form of dependency generation. To activate a plugin the<br>&gt; settings manager could simply send a dbus signal activate &quot;cube&quot; and
<br>&gt; the core would return whether it has activate any dependencies e.g.<br>&gt; activated &quot;rotate&quot; and if plugin activation was successful or not.<br>&gt;<br>&gt; What do you think?<br><br>I don&#39;t see any good reason to why we would want the dependency order
<br>resolved by the core. We can add an utility function and put it in core<br>or better in some shared library which can be used to solve dependencies<br>at the plugin or application level. What do you think?<br><br>That plugins can be stacked differently, is a feature. It might not be
<br>incredibly useful right now but I think it will be later on so I&#39;d like<br>to keep it.<br><br>- David<br><br></blockquote></div><br><br clear="all"><br>-- <br>Thank you<br>Ben Reeves