Makefile.am                     |   10 
 VERSION                         |    2 
 config/config                   |    5 
 configure.ac                    |   28 
 debian/changelog                |   10 
 debian/control                  |    7 
 debian/gbp.conf                 |    8 
 debian/libcompizconfig0.install |    1 
 include/ccs.h                   |   44 
 metadata/Makefile.am            |    7 
 metadata/global.xml             |  416 -----
 plugin/ccp.c                    |   99 -
 src/Makefile.am                 |   46 
 src/ccs-private.h               |    5 
 src/compiz.c                    | 1570 --------------------
 src/compiz.cpp                  | 3137 ++++++++++++++++++++++++++++++++++++++++
 src/compizconfig.proto          |  164 ++
 src/config.c                    |   13 
 src/ini.c                       |  131 -
 src/lists.c                     |    6 
 src/main.c                      |   65 
 21 files changed, 3632 insertions(+), 2142 deletions(-)

New commits:
commit 40bbe774c362fe7e2fd236e9b9326f845c087c40
Author: Sean Finney <sean...@debian.org>
Date:   Sun Apr 5 21:51:13 2009 +0200

    prep changelog for upload

diff --git a/debian/changelog b/debian/changelog
index a876151..d47afe1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+libcompizconfig (0.8.2-1) unstable; urgency=low
+
+  * New upstream release.
+  * Add gbp.conf for use with git-buildpackage
+  * Add build-dep on libprotobuf-dev and protobuf-compiler.
+  * Update Standards-Version to 3.8.1
+  * Remove usr/share/compizconfig from libcompizconfig0.install
+
+ -- Sean Finney <sean...@debian.org>  Sun, 05 Apr 2009 21:47:59 +0200
+
 libcompizconfig (0.7.6-1) unstable; urgency=low
 
   * New upstream release.  Includes ABI change so build-deps changed

commit c1eb7402fb8e0d1d11b18bdb90da4e6ab2729fc9
Author: Sean Finney <sean...@debian.org>
Date:   Sun Apr 5 21:47:48 2009 +0200

    remove usr/share/compizconfig from libcompizconfig0.install

diff --git a/debian/libcompizconfig0.install b/debian/libcompizconfig0.install
index 1c035b2..8cdfd85 100644
--- a/debian/libcompizconfig0.install
+++ b/debian/libcompizconfig0.install
@@ -2,5 +2,4 @@ usr/lib/libcompizconfig.so.*
 usr/lib/compiz/*.so
 usr/lib/compizconfig/backends/*.so
 usr/share/compiz/*xml
-usr/share/compizconfig
 etc/compizconfig/config

commit de92318a6060dbec6ab4f45613abc40218f4001a
Author: Sean Finney <sean...@debian.org>
Date:   Sun Apr 5 21:45:20 2009 +0200

    update standard-version to 3.8.1

diff --git a/debian/control b/debian/control
index 786c4c8..b0d9c3c 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,7 @@ Build-Depends: debhelper (>= 5), autoconf, automake1.9, 
autotools-dev, compiz-de
  libprotobuf-dev,
  libxml2-dev, libxslt1-dev,
  protobuf-compiler
-Standards-Version: 3.7.2
+Standards-Version: 3.8.1
 Section: libs
 
 Package: libcompizconfig-dev

commit 9d0092b5031182aa889935643bd51f9a2ac4e065
Author: Sean Finney <sean...@debian.org>
Date:   Sun Apr 5 21:41:52 2009 +0200

    add build-dep on libprotobuf-dev and protobuf-compiler

diff --git a/debian/control b/debian/control
index f8ef646..786c4c8 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,10 @@ Source: libcompizconfig
 Priority: extra
 Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
 Uploaders: Sean Finney <sean...@debian.org>
-Build-Depends: debhelper (>= 5), autoconf, automake1.9, autotools-dev, 
compiz-dev (>= 0.7.6), intltool, libtool, libglib2.0-dev, libxml2-dev, 
libxslt1-dev
+Build-Depends: debhelper (>= 5), autoconf, automake1.9, autotools-dev, 
compiz-dev (>= 0.7.6), intltool, libtool, libglib2.0-dev, 
+ libprotobuf-dev,
+ libxml2-dev, libxslt1-dev,
+ protobuf-compiler
 Standards-Version: 3.7.2
 Section: libs
 

commit e788f7aa01b00466f75283e745f3d66bf390a123
Author: Sean Finney <sean...@debian.org>
Date:   Sun Apr 5 19:16:38 2009 +0200

    add gbp.conf for use with git-buildpackage

diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 0000000..6b6b4c7
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,8 @@
+[DEFAULT]
+debian-branch = debian-unstable
+debian-tag = libcompizconfig-%(version)s
+upstream-branch = upstream-unstable
+upstream-tag = %(version)s
+
+[git-dch]
+meta = 1

commit cbbdcceea27f671f96ff86902478487f76cd3f12
Author: Guillaume Seguin <guilla...@segu.in>
Date:   Mon Mar 9 15:43:46 2009 +0100

    * Bump version to 0.8.2

diff --git a/VERSION b/VERSION
index 1357b31..2dcc312 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-VERSION=0.7.9
+VERSION=0.8.2

commit bb0ec725b1f5ed60d719ecb37843150b6713cc1f
Author: Guillaume Seguin <guilla...@segu.in>
Date:   Thu Mar 5 16:28:32 2009 +0100

    Fix compizconfig.proto dist inclusion

diff --git a/src/Makefile.am b/src/Makefile.am
index 6dfae9c..788bda2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -4,8 +4,6 @@ PROTOBUF_LIB = -lprotobuf
 PROTOBUF_DEFINES = \
        -DUSE_PROTOBUF=1
 
-EXTRA_DIST = compizconfig.proto
-
 compizconfig.pb.cc: compizconfig.proto
        protoc --cpp_out=. compizconfig.proto
 
@@ -21,6 +19,7 @@ clean-local:
 
 endif
 
+EXTRA_DIST = compizconfig.proto
 
 INCLUDES =                                    \
        @COMPIZ_CFLAGS@                        \

commit 00646fe0c31ccaa81dae69ed74393cf151a3e963
Author: Danny Baumann <dannybaum...@web.de>
Date:   Tue Dec 2 11:13:47 2008 +0100

    Revert accidential change.

diff --git a/configure.ac b/configure.ac
index 38e8503..0ce5d31 100644
--- a/configure.ac
+++ b/configure.ac
@@ -96,7 +96,7 @@ AC_SUBST(LIBXML2_REQUIRES)
 
 AC_ARG_ENABLE(protobuf,
   [  --disable-protobuf      Disable Protocol Buffers],
-  [use_protobuf=no], [use_protobuf=yes])
+  [use_protobuf=$enableval], [use_protobuf=yes])
 
 if test "x$use_protobuf" = "xyes"; then
   protobuf_error_msg="\nWARNING: You need to install Protocol Buffers to get 
faster program startup.\n        Sources are available at 
http://code.google.com/p/protobuf/downloads/list\n         Package names for 
Ubuntu/Debian: libprotobuf0, libprotobuf-dev, protobuf-compiler\n         
Package names for other distributions: protobuf, protobuf-devel\n        
Disabling protobuf.\n"

commit 79c0f14071db762bba256da6c0588115725219a3
Author: Danny Baumann <dannybaum...@web.de>
Date:   Tue Dec 2 11:03:43 2008 +0100

    Mem leak fixes and minor cleanup.

diff --git a/configure.ac b/configure.ac
index 0ce5d31..38e8503 100644
--- a/configure.ac
+++ b/configure.ac
@@ -96,7 +96,7 @@ AC_SUBST(LIBXML2_REQUIRES)
 
 AC_ARG_ENABLE(protobuf,
   [  --disable-protobuf      Disable Protocol Buffers],
-  [use_protobuf=$enableval], [use_protobuf=yes])
+  [use_protobuf=no], [use_protobuf=yes])
 
 if test "x$use_protobuf" = "xyes"; then
   protobuf_error_msg="\nWARNING: You need to install Protocol Buffers to get 
faster program startup.\n        Sources are available at 
http://code.google.com/p/protobuf/downloads/list\n         Package names for 
Ubuntu/Debian: libprotobuf0, libprotobuf-dev, protobuf-compiler\n         
Package names for other distributions: protobuf, protobuf-devel\n        
Disabling protobuf.\n"
diff --git a/src/compiz.cpp b/src/compiz.cpp
index ddcb82c..5b36a4d 100644
--- a/src/compiz.cpp
+++ b/src/compiz.cpp
@@ -2755,6 +2755,9 @@ updatePBFilePath (CCSContext * context, char *name, char 
*pbFilePath)
     if (plugin)
     {
        PLUGIN_PRIV (plugin);
+
+       if (pPrivate->pbFilePath)
+           free (pPrivate->pbFilePath);
        pPrivate->pbFilePath = strdup (pbFilePath);
     }
 }
@@ -2791,15 +2794,14 @@ loadPluginFromXMLFile (CCSContext * context, char 
*xmlName, char *xmlDirPath)
        Bool error = TRUE;
        int lenXMLName = strlen (xmlName);
        struct stat pbStat;
-       name = (char *) malloc (lenXMLName - 4 + 1);
+
+       name = strndup (xmlName, strlen (xmlName) - 4);
        if (!name)
        {
            fprintf (stderr, "[ERROR]: Can't allocate memory\n");
            free (xmlFilePath);
            return;
        }
-       strncpy (name, xmlName, lenXMLName - 4);
-       name[lenXMLName - 4] = '\0';
 
        if (createProtoBufCacheDir () &&
            metadataCacheDir.length () > 0)
@@ -2861,12 +2863,13 @@ loadPluginFromXMLFile (CCSContext * context, char 
*xmlName, char *xmlDirPath)
     if (usingProtobuf && xmlLoaded)
     {
        writePBFile (pbFilePath, NULL, &persistentPluginBriefPB);
-
        updatePBFilePath (context, name, pbFilePath);
+    }
 
+    if (pbFilePath)
        free (pbFilePath);
+    if (name)
        free (name);
-    }
 #endif
 }
 

commit 6202217f3efa974a55aed34bf467f0462f2cf8a0
Author: Danny Baumann <dannybaum...@web.de>
Date:   Mon Nov 24 09:40:24 2008 +0100

    Sanity check input values of ccsFindSetting.

diff --git a/src/main.c b/src/main.c
index 1747b2a..d2680eb 100644
--- a/src/main.c
+++ b/src/main.c
@@ -242,8 +242,14 @@ CCSSetting *
 ccsFindSetting (CCSPlugin * plugin, const char *name,
                Bool isScreen, unsigned int screenNum)
 {
+    if (!plugin)
+       return NULL;
+
     PLUGIN_PRIV (plugin);
 
+    if (!name)
+       name = "";
+
     if (!pPrivate->loaded)
        ccsLoadPluginSettings (plugin);
 

commit 890a30e25eb3a1499b08d69ea7b97bdc6dbc76db
Author: Erkin Bahceci <erkin...@gmail.com>
Date:   Fri Nov 7 00:39:05 2008 -0600

    Don't write .pb for ini, gconf, ccp, kconfig.
    
    Fixes these errors:
    libprotobuf ERROR google/protobuf/message.cc:110] Can't parse message of
      type "metadata.PluginBrief" because it is missing required fields: info
    libprotobuf FATAL google/protobuf/message.cc:198] CHECK failed:
      IsInitialized(): Can't serialize message of type "metadata.PluginBrief"
      because it is missing required fields: info.name

diff --git a/src/compiz.cpp b/src/compiz.cpp
index 1efabb4..ddcb82c 100644
--- a/src/compiz.cpp
+++ b/src/compiz.cpp
@@ -2480,7 +2480,8 @@ fillBasicInfoIntoPB (CCSPlugin *plugin, 
PluginInfoMetadata *pluginInfoPB)
 }
 #endif
 
-static void
+/* Returns TRUE on success. */
+static Bool
 addPluginFromXMLNode (CCSContext * context,
                      xmlNode * node,
                      char * file,
@@ -2491,7 +2492,7 @@ addPluginFromXMLNode (CCSContext * context,
     CCSPluginPrivate *pPrivate;
 
     if (!node)
-       return;
+       return FALSE;
 
     name = getStringFromXPath (node->doc, node, "@name");
 
@@ -2499,31 +2500,31 @@ addPluginFromXMLNode (CCSContext * context,
     {
        if (name)
            free (name);
-       return;
+       return FALSE;
     }
 
     if (!strcmp (name, "ini") || !strcmp (name, "gconf") ||
        !strcmp (name, "ccp") || !strcmp (name, "kconfig"))
     {
        free (name);
-       return;
+       return FALSE;
     }
 
     if (ccsFindPlugin (context, name))
     {
        free (name);
-       return;
+       return FALSE;
     }
 
     plugin = (CCSPlugin *) calloc (1, sizeof (CCSPlugin));
     if (!plugin)
-       return;
+       return FALSE;
 
     pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));
     if (!pPrivate)
     {
        free (plugin);
-       return;
+       return FALSE;
     }
 
     plugin->ccsPrivate = (void *) pPrivate;
@@ -2558,9 +2559,12 @@ addPluginFromXMLNode (CCSContext * context,
 
     context->plugins = ccsPluginListAppend (context->plugins, plugin);
     free (name);
+
+    return TRUE;
 }
 
-static void
+/* Returns TRUE on success. */
+static Bool
 addCoreSettingsFromXMLNode (CCSContext * context,
                            xmlNode * node,
                            char *file,
@@ -2570,20 +2574,20 @@ addCoreSettingsFromXMLNode (CCSContext * context,
     CCSPluginPrivate *pPrivate;
 
     if (!node)
-       return;
+       return FALSE;
 
     if (ccsFindPlugin (context, "core"))
-       return;
+       return FALSE;
 
     plugin = (CCSPlugin *) calloc (1, sizeof (CCSPlugin));
     if (!plugin)
-       return;
+       return FALSE;
 
     pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));
     if (!pPrivate)
     {
        free (plugin);
-       return;
+       return FALSE;
     }
 
     plugin->ccsPrivate = (void *) pPrivate;
@@ -2616,6 +2620,8 @@ addCoreSettingsFromXMLNode (CCSContext * context,
 
     initRulesFromRootNode (plugin, node, pluginInfoPBv);
     context->plugins = ccsPluginListAppend (context->plugins, plugin);
+
+    return TRUE;
 }
 
 /* End of XML parsing */
@@ -2711,7 +2717,8 @@ writePBFile (char *pbFilePath,
 }
 #endif
 
-static void
+/* Returns TRUE on success. */
+static Bool
 loadPluginFromXML (CCSContext * context,
                   xmlDoc * doc,
                   char *filename,
@@ -2719,20 +2726,25 @@ loadPluginFromXML (CCSContext * context,
 {
     xmlNode **nodes;
     int num;
+    Bool success = FALSE;
 
     nodes = getNodesFromXPath (doc, NULL, "/compiz/core", &num);
     if (num)
     {
-       addCoreSettingsFromXMLNode (context, nodes[0], filename, pluginInfoPBv);
+       success = addCoreSettingsFromXMLNode (context, nodes[0], filename,
+                                             pluginInfoPBv);
        free (nodes);
+       return success;
     }
 
     nodes = getNodesFromXPath (doc, NULL, "/compiz/plugin", &num);
     if (num)
     {
-       addPluginFromXMLNode (context, nodes[0], filename, pluginInfoPBv);
+       success = addPluginFromXMLNode (context, nodes[0], filename,
+                                       pluginInfoPBv);
        free (nodes);
     }
+    return success;
 }
 
 #ifdef USE_PROTOBUF
@@ -2830,6 +2842,7 @@ loadPluginFromXMLFile (CCSContext * context, char 
*xmlName, char *xmlDirPath)
 
     // Load from .xml
     FILE *fp = fopen (xmlFilePath, "r");
+    Bool xmlLoaded = FALSE;
 
     if (fp)
     {
@@ -2837,14 +2850,15 @@ loadPluginFromXMLFile (CCSContext * context, char 
*xmlName, char *xmlDirPath)
        xmlDoc *doc = xmlReadFile (xmlFilePath, NULL, 0);
        if (doc)
        {
-           loadPluginFromXML (context, doc, xmlFilePath, pluginInfoPBv);
+           xmlLoaded = loadPluginFromXML (context, doc, xmlFilePath,
+                                          pluginInfoPBv);
            xmlFreeDoc (doc);
        }
     }
     free (xmlFilePath);
 
 #ifdef USE_PROTOBUF
-    if (usingProtobuf)
+    if (usingProtobuf && xmlLoaded)
     {
        writePBFile (pbFilePath, NULL, &persistentPluginBriefPB);
 

commit f6f66a73f13b42390ecd47ab769c37debf116943
Author: Danny Baumann <dannybaum...@web.de>
Date:   Thu Nov 6 13:07:47 2008 +0100

    Fix memory leak.

diff --git a/src/compiz.cpp b/src/compiz.cpp
index f507a0f..1efabb4 100644
--- a/src/compiz.cpp
+++ b/src/compiz.cpp
@@ -2502,6 +2502,13 @@ addPluginFromXMLNode (CCSContext * context,
        return;
     }
 
+    if (!strcmp (name, "ini") || !strcmp (name, "gconf") ||
+       !strcmp (name, "ccp") || !strcmp (name, "kconfig"))
+    {
+       free (name);
+       return;
+    }
+
     if (ccsFindPlugin (context, name))
     {
        free (name);
@@ -2547,13 +2554,6 @@ addPluginFromXMLNode (CCSContext * context,
     fillBasicInfoIntoPB (plugin, (PluginInfoMetadata *) pluginInfoPBv);
 #endif
 
-    if (!strcmp (name, "ini") || !strcmp (name, "gconf") ||
-       !strcmp (name, "ccp") || !strcmp (name, "kconfig"))
-    {
-       free (name);
-       return;
-    }
-
     initRulesFromRootNode (plugin, node, pluginInfoPBv);
 
     context->plugins = ccsPluginListAppend (context->plugins, plugin);

commit 246006056a24c087112a22b3c72611f8c0683270
Author: Erkin Bahceci <erkin...@gmail.com>
Date:   Wed Oct 22 17:33:33 2008 -0500

    Create protobuf cache dir recursively.
    
    Enables using ".../x/y" as cache dir when ".../x" doesn't exist.

diff --git a/include/ccs.h b/include/ccs.h
index e9cd44e..9d886d5 100644
--- a/include/ccs.h
+++ b/include/ccs.h
@@ -715,6 +715,8 @@ void ccsIniClose (IniDictionary *dictionary);
 void ccsIniSave (IniDictionary *dictionary,
                 const char    *fileName);
 
+Bool ccsCreateDirFor (const char *fileName);
+
 Bool ccsIniGetString (IniDictionary *dictionary,
                      const char    *section,
                      const char    *entry,
diff --git a/src/compiz.cpp b/src/compiz.cpp
index 0c46ea4..f507a0f 100644
--- a/src/compiz.cpp
+++ b/src/compiz.cpp
@@ -1933,14 +1933,13 @@ createProtoBufCacheDir ()
     if (cacheBaseDir)
     {
        metadataCacheDir = cacheBaseDir;
-       metadataCacheDir += "/compizconfig";
-
-       // Create base dir
-       mkdir (cacheBaseDir, 0700);
+       if (metadataCacheDir[metadataCacheDir.length () - 1] != '/')
+           metadataCacheDir += "/";
+       metadataCacheDir += "compizconfig";
+       std::string metadataCacheFileDummy = metadataCacheDir + "/dummy";
 
        // Create cache dir
-       Bool success = !mkdir (metadataCacheDir.c_str (), 0700);
-       success |= (errno == EEXIST);
+       Bool success = ccsCreateDirFor (metadataCacheFileDummy.c_str ());
        if (!success)
            fprintf (stderr, "[ERROR]: Error creating directory \"%s\"\n",
                     metadataCacheDir.c_str ());
diff --git a/src/ini.c b/src/ini.c
index 3c3c419..5f8e2bc 100644
--- a/src/ini.c
+++ b/src/ini.c
@@ -35,7 +35,7 @@
  * @return: True if the parent directory of the file now exists
 **/
 
-static Bool
+Bool
 ccsCreateDirFor (const char *fileName)
 {
     char *path, *delim;

commit d6ecf8ae663dbac371729da70f37f8a3c8821e51
Author: Lubos Lunak <llu...@suse.cz>
Date:   Wed Oct 22 12:13:16 2008 +0200

    Fix copy'n'paste mistakes in allocation size.

diff --git a/src/lists.c b/src/lists.c
index 103f13a..5f58a2a 100644
--- a/src/lists.c
+++ b/src/lists.c
@@ -257,7 +257,7 @@ char ** ccsGetStringArrayFromValueList (CCSSettingValueList 
list, int *num)
 
     if (length)
     {
-       rv = calloc (length, sizeof (int));
+       rv = calloc (length, sizeof (char *));
        if (!rv)
            return NULL;
     }
@@ -278,7 +278,7 @@ char ** ccsGetMatchArrayFromValueList (CCSSettingValueList 
list, int *num)
 
     if (length)
     {
-       rv = calloc (length, sizeof (int));
+       rv = calloc (length, sizeof (char *));
        if (!rv)
            return NULL;
     }

commit fae747aa92479c3ff9ab62ad5aa333c175fcab7a
Author: Erkin Bahceci <erkin...@gmail.com>
Date:   Sun Oct 19 17:25:15 2008 -0500

    Disable protobuf if cache dir cannot be created.

diff --git a/src/compiz.cpp b/src/compiz.cpp
index 9e610e0..0c46ea4 100644
--- a/src/compiz.cpp
+++ b/src/compiz.cpp
@@ -1952,6 +1952,7 @@ createProtoBufCacheDir ()
        metadataCacheDir = ""; // invalidate metadataCacheDir
     }
 
+    usingProtobuf = FALSE; // Disable protobuf if cache dir cannot be created
     return FALSE;
 }
 

commit 5519ac6e74c056750eca8fb543822326fd0f43b8
Author: Erkin Bahceci <erkin...@gmail.com>
Date:   Sun Oct 19 17:04:42 2008 -0500

    Use $XDG_CACHE_HOME/compizconfig/ as protobuf cache directory.
    
    As protobuf cache dir, we now use $XDG_CACHE_HOME/compizconfig/
    if $XDG_CACHE_HOME is defined and ~/.cache/compizconfig/ otherwise,
    to conform to the standards described at
    http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html

diff --git a/src/compiz.cpp b/src/compiz.cpp
index 18db39e..9e610e0 100644
--- a/src/compiz.cpp
+++ b/src/compiz.cpp
@@ -55,8 +55,6 @@ Bool usingProtobuf = TRUE;
 
 #define PB_ABI_VERSION 20081004
 
-#define METADATA_CACHE_DIR ".config/compiz/compizconfig/cache"
-
 typedef metadata::PluginInfo PluginInfoMetadata;
 typedef metadata::PluginBrief PluginBriefMetadata;
 typedef metadata::Plugin PluginMetadata;
@@ -74,6 +72,8 @@ PluginMetadata persistentPluginPB; // Made global so that it 
gets reused,
                                         // for better performance (to avoid
                                         // mem alloc/free for each plugin)
 
+std::string metadataCacheDir = "";
+
 static char *
 getLocale ()
 {
@@ -1908,25 +1908,50 @@ checkAddGroupSubgroup (OptionMetadata *optPB,
 static Bool
 createProtoBufCacheDir ()
 {
-    char *path = NULL;
-    char *home = getenv ("HOME");
+    if (metadataCacheDir.length () > 0)
+    {
+       // Cache dir must have been created already, since otherwise it would
+       // be "". So we can return here.
+       return TRUE;
+    }
+    char *cacheBaseDir = NULL;
+    char *cacheHome = getenv ("XDG_CACHE_HOME");
 
-    if (home && strlen (home))
+    if (cacheHome && strlen (cacheHome))
     {
-       asprintf (&path, "%s/%s", home, METADATA_CACHE_DIR);
-       if (path)
+       asprintf (&cacheBaseDir, "%s", cacheHome);
+    }
+    else
+    {
+       char *home = getenv ("HOME");
+       if (home && strlen (home))
        {
-           Bool success = !mkdir (path, 0700);
-           success |= (errno == EEXIST);
-           if (!success)
-               fprintf (stderr, "[ERROR]: Error creating directory \"%s\"\n",
-                        path);
-           free (path);
-
-           if (success)
-               return TRUE;
+           asprintf (&cacheBaseDir, "%s/.cache", home);
        }
     }
+
+    if (cacheBaseDir)
+    {
+       metadataCacheDir = cacheBaseDir;
+       metadataCacheDir += "/compizconfig";
+
+       // Create base dir
+       mkdir (cacheBaseDir, 0700);
+
+       // Create cache dir
+       Bool success = !mkdir (metadataCacheDir.c_str (), 0700);
+       success |= (errno == EEXIST);
+       if (!success)
+           fprintf (stderr, "[ERROR]: Error creating directory \"%s\"\n",
+                    metadataCacheDir.c_str ());
+       free (cacheBaseDir);
+
+       if (success)
+           return TRUE; // metadataCacheDir will be used later in this case
+
+       metadataCacheDir = ""; // invalidate metadataCacheDir
+    }
+
     return FALSE;
 }
 
@@ -2764,11 +2789,10 @@ loadPluginFromXMLFile (CCSContext * context, char 
*xmlName, char *xmlDirPath)
        strncpy (name, xmlName, lenXMLName - 4);
        name[lenXMLName - 4] = '\0';
 
-       char *home = getenv ("HOME");
-       if (home && strlen (home))
+       if (createProtoBufCacheDir () &&
+           metadataCacheDir.length () > 0)
        {
-           asprintf (&pbFilePath, "%s/%s/%s.pb",
-                     home, METADATA_CACHE_DIR, name);
+           asprintf (&pbFilePath, "%s/%s.pb", metadataCacheDir.c_str (), name);
            if (!pbFilePath)
            {
                fprintf (stderr, "[ERROR]: Can't allocate memory\n");

commit afe4ed1ece82778cfcdade60057d58aeeb9818d8
Author: Erkin Bahceci <erkin...@gmail.com>
Date:   Sun Oct 19 15:55:00 2008 -0500

    Fix circular dependency error (bug 1061).

diff --git a/configure.ac b/configure.ac
index b1926c6..0ce5d31 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6,6 +6,8 @@ AC_INIT([libcompizconfig],esyscmd(. ./VERSION;echo -n 
$VERSION), [...@opencompos
 
 AM_INIT_AUTOMAKE([1.9 dist-bzip2])
 
+AC_PROG_CXX
+
 AC_CONFIG_HEADER([config.h])
 AM_MAINTAINER_MODE
 
@@ -97,7 +99,6 @@ AC_ARG_ENABLE(protobuf,
   [use_protobuf=$enableval], [use_protobuf=yes])
 
 if test "x$use_protobuf" = "xyes"; then
-  AC_LANG([C++])
   protobuf_error_msg="\nWARNING: You need to install Protocol Buffers to get 
faster program startup.\n        Sources are available at 
http://code.google.com/p/protobuf/downloads/list\n         Package names for 
Ubuntu/Debian: libprotobuf0, libprotobuf-dev, protobuf-compiler\n         
Package names for other distributions: protobuf, protobuf-devel\n        
Disabling protobuf.\n"
   AC_CHECK_PROG(have_protoc, protoc, yes, no)
   if test "x$have_protoc" = "xno"; then
@@ -106,11 +107,12 @@ if test "x$use_protobuf" = "xyes"; then
     AC_CHECK_LIB(protobuf, _ZN6google8protobuf7MessageD2Ev, [], [
       echo -e $protobuf_error_msg; use_protobuf=no ])
     if test "x$use_protobuf" = "xyes"; then
+      AC_LANG([C++])
       AC_CHECK_HEADER([google/protobuf/message.h],,[
         echo -e $protobuf_error_msg; use_protobuf=no ])
+      AC_LANG([C])
     fi
   fi
-  AC_LANG([C])
 fi
 AM_CONDITIONAL([USE_PROTOBUF], [test "x$use_protobuf" = "xyes"])
 

commit 21bda9debec54b37342eb5ee037fc81aeb32cbc8
Author: Erkin Bahceci <erkin...@gmail.com>
Date:   Sun Oct 19 10:04:02 2008 -0500

    Add source URL to protobuf warning message.

diff --git a/configure.ac b/configure.ac
index db96a78..b1926c6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -98,7 +98,7 @@ AC_ARG_ENABLE(protobuf,
 
 if test "x$use_protobuf" = "xyes"; then
   AC_LANG([C++])
-  protobuf_error_msg="\nWARNING: You need to install Protocol Buffers to get 
faster program startup.\n        Package names for Ubuntu/Debian: libprotobuf0, 
libprotobuf-dev, protobuf-compiler\n         Package names for other 
distributions: protobuf, protobuf-devel\n        Disabling protobuf.\n"
+  protobuf_error_msg="\nWARNING: You need to install Protocol Buffers to get 
faster program startup.\n        Sources are available at 
http://code.google.com/p/protobuf/downloads/list\n         Package names for 
Ubuntu/Debian: libprotobuf0, libprotobuf-dev, protobuf-compiler\n         
Package names for other distributions: protobuf, protobuf-devel\n        
Disabling protobuf.\n"
   AC_CHECK_PROG(have_protoc, protoc, yes, no)
   if test "x$have_protoc" = "xno"; then
     echo -e $protobuf_error_msg; use_protobuf=no

commit 514ba489124b029960f4d8e94cac6bd0c3205de6
Author: Erkin Bahceci <erkin...@gmail.com>
Date:   Sun Oct 19 09:23:25 2008 -0500

    Add compizconfig.proto to dist. Simplify Makefile.am.

diff --git a/src/Makefile.am b/src/Makefile.am
index 1411996..5782087 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -4,6 +4,8 @@ PROTOBUF_LIB = -lprotobuf
 PROTOBUF_DEFINES = \
        -DUSE_PROTOBUF=1
 
+EXTRA_DIST = compizconfig.proto
+
 compizconfig.pb.cc: compizconfig.proto
        protoc --cpp_out=. compizconfig.proto
 
@@ -17,11 +19,6 @@ nodist_libcompizconfig_la_SOURCES = \
 clean-local:
        rm -f compizconfig.pb.cc compizconfig.pb.h
 
-else
-
-PROTOBUF_LIB =
-nodist_libcompizconfig_la_SOURCES =
-
 endif
 
 

commit 741f99ade7e9b9d19e367253273c11519ac348f0
Author: Danny Baumann <dannybaum...@web.de>
Date:   Sun Oct 19 14:03:15 2008 +0200

    Link against libX11 because we need it for XStringToKeysym.

diff --git a/configure.ac b/configure.ac
index 1668771..1f8cbb4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -73,6 +73,7 @@ fi
 
 AC_C_BIGENDIAN
 
+PKG_CHECK_MODULES(LIBX11, "x11")
 PKG_CHECK_MODULES(COMPIZ, "compiz")
 
 if test -z "$PKG_CONFIG"; then
diff --git a/src/Makefile.am b/src/Makefile.am
index ac7424f..5dff962 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,11 +1,12 @@
-INCLUDES =                          \
-       @COMPIZ_CFLAGS@ \
-       @LIBXML2_CFLAGS@ \
-       -I$(top_srcdir)/include      \
-       -I$(top_srcdir)/src \
-       -DPLUGINDIR=\"$(PLUGINDIR)\" \
-       -DMETADATADIR=\"$(METADATADIR)\" \
-       -DLIBDIR=\"$(libdir)\" \
+INCLUDES =                                    \
+       @COMPIZ_CFLAGS@                        \
+       @LIBX11_CFLAGS@                        \
+       @LIBXML2_CFLAGS@                       \
+       -I$(top_srcdir)/include                \
+       -I$(top_srcdir)/src                    \
+       -DPLUGINDIR=\"$(PLUGINDIR)\"           \
+       -DMETADATADIR=\"$(METADATADIR)\"       \
+       -DLIBDIR=\"$(libdir)\"                 \
        -DGLOBALMETADATA=\"$(globalmetadata)\" \
        -DSYSCONFDIR=\"$(sysconfdir)\"
 
@@ -22,7 +23,7 @@ libcompizconfig_la_SOURCES = \
        ccs-private.h   \
        iniparser.h
 
-libcompizconfig_la_LIBADD = @LIBXML2_LIBS@
+libcompizconfig_la_LIBADD = @LIBXML2_LIBS@ @LIBX11_LIBS@
 
 lib_LTLIBRARIES=libcompizconfig.la
 

commit 4431eeec30226cb81ffa2df868d9bbe9b2f76145
Author: Erkin Bahceci <erkin...@gmail.com>
Date:   Sat Oct 18 15:44:50 2008 -0500

    Clean up whitespace.

diff --git a/src/compiz.cpp b/src/compiz.cpp
index d6d38d9..18db39e 100644
--- a/src/compiz.cpp
+++ b/src/compiz.cpp
@@ -999,13 +999,13 @@ getOptionType (const char *name)
        { "bool", TypeBool },
        { "int", TypeInt },
        { "float", TypeFloat },
-       { "string", TypeString },
+       { "string", TypeString },
        { "color", TypeColor },
        { "action", TypeAction },
        { "key", TypeKey },
        { "button", TypeButton },
-       { "edge", TypeEdge },
-       { "bell", TypeBell },
+       { "edge", TypeEdge },
+       { "bell", TypeBell },
        { "match", TypeMatch },
        { "list", TypeList }
     };
@@ -1448,7 +1448,7 @@ initEdgeValue (CCSSettingValue * v,
        "Right",
        "Top",
        "Bottom",
-       "TopLeft",
+       "TopLeft",
        "TopRight",
        "BottomLeft",
        "BottomRight"
@@ -1622,7 +1622,7 @@ initIntInfo (CCSSettingInfo * i, xmlNode * node, void * 
optionPBv)
                    if (val >= i->forInt.min && val <= i->forInt.max)
                    {
                        name = stringFromNodeDefTrans (nodes[j],
-                                                      "name/child::text()", 
+                                                      "name/child::text()",
                                                       NULL);
                        if (name)
                        {
@@ -1910,7 +1910,7 @@ createProtoBufCacheDir ()
 {
     char *path = NULL;
     char *home = getenv ("HOME");
-    
+
     if (home && strlen (home))
     {
        asprintf (&path, "%s/%s", home, METADATA_CACHE_DIR);
@@ -2588,7 +2588,7 @@ addCoreSettingsFromXMLNode (CCSContext * context,
 #ifdef USE_PROTOBUF
     fillBasicInfoIntoPB (plugin, (PluginInfoMetadata *) pluginInfoPBv);
 #endif
-    
+
     initRulesFromRootNode (plugin, node, pluginInfoPBv);
     context->plugins = ccsPluginListAppend (context->plugins, plugin);
 }
@@ -2743,7 +2743,7 @@ loadPluginFromXMLFile (CCSContext * context, char 
*xmlName, char *xmlDirPath)
     if (usingProtobuf)
     {
        struct stat xmlStat;
-    
+
        if (stat (xmlFilePath, &xmlStat))
        {
            free (xmlFilePath);

commit 6706b47468cb9adb8d39a891a38bd30984aab4a5
Author: Erkin Bahceci <erkin...@gmail.com>
Date:   Sat Oct 18 15:26:33 2008 -0500

    Disable protobuf automatically if not installed.

diff --git a/configure.ac b/configure.ac
index c798edb..9f9edea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -96,9 +96,20 @@ AC_ARG_ENABLE(protobuf,
   [use_protobuf=$enableval], [use_protobuf=yes])
 
 if test "x$use_protobuf" = "xyes"; then
-  AC_CHECK_PROG(have_protoc, protoc, yes)
-
-  AC_CHECK_LIB(protobuf, _ZN6google8protobuf7MessageD2Ev)
+  AC_LANG([C++])
+  protobuf_error_msg="\nWARNING: You need to install Protocol Buffers to get 
faster program startup.\n        Package names for Ubuntu/Debian: libprotobuf0, 
libprotobuf-dev, protobuf-compiler\n         Package names for other 
distributions: protobuf, protobuf-devel\n        Disabling protobuf.\n"
+  AC_CHECK_PROG(have_protoc, protoc, yes, no)
+  if test "x$have_protoc" = "xno"; then
+    echo -e $protobuf_error_msg; use_protobuf=no
+  else
+    AC_CHECK_LIB(protobuf, _ZN6google8protobuf7MessageD2Ev, [], [
+      echo -e $protobuf_error_msg; use_protobuf=no ])
+    if test "x$use_protobuf" = "xyes"; then
+      AC_CHECK_HEADER([google/protobuf/message.h],,[
+        echo -e $protobuf_error_msg; use_protobuf=no ])
+    fi
+  fi
+  AC_LANG([C])
 fi
 AM_CONDITIONAL([USE_PROTOBUF], [test "x$use_protobuf" = "xyes"])
 

commit 37dab05e44d3c8d1f75a1fa15f69a8ee7b18aed7
Author: Erkin Bahceci <erkin...@gmail.com>
Date:   Sat Oct 4 17:58:17 2008 -0500

    Speed up metadata parsing via protocol buffers.
    
    Reduces startup times for compiz, ccsm, and simple-ccsm.

diff --git a/configure.ac b/configure.ac
index 19f2e38..c798edb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -91,6 +91,17 @@ AC_SUBST(plugindir)


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to