[compiz] meta data update

David Reveman davidr at novell.com
Mon May 7 09:22:57 PDT 2007


The switch to the new metadata system is almost complete. All plugins in
the fdo repo except plane and ini have been converted. I'll probably go
ahead and convert those plugins as well sometime soon unless the
original authors of those plugins tells me not to.

The horrible gconf-dump plugin has been removed and replaced by a simple
xslt stylesheet. gconf schemas are now generated from the xml meta data
files as part of the build process and the stylesheet and a compiz-gconf
pkg-config file is installed so a command similar to this:

xsltproc -o compiz-plugin.schemas `pkg-config --variable=xsltdir compiz-gconf`/schemas.xslt plugin.xml

can be used to generate a schema file for a plugin outside the fdo
repository.

Plugin dependencies have not yet been moved to the meta data system. I'd
like some feedback before we do this. I suggest that we use tags similar
to this:

<compiz>
    <plugin name="cube">
        <feature>large-desktop</feature>
        <deps>
            <requirement>
                <plugin>png</plugin>
                <feature>some-feature</feature>
                <some_property>name-of-required-property</some_property>
            </requirement>
            <conflict>
                <plugin>plane</plugin>
                <feature>some-other-feature</feature>
            </conflict>
        </deps>
    </plugin>
<compiz>

It will make it easy to add new meta data tags that can be used as
requirements or conflicts.

The other thing that needs to be discussed related to this is whether
the core should be aware of any of these dependencies. I think that not
having the core be aware of any dependencies is definitely the best
solution. It's up to the plugins to deal with conflicts. Whether that is
to fail when loading or lack functionality doesn't matter but they will
of course not be allowed to crash.

- David



More information about the compiz mailing list