<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zero_Dogg's blog &#187; CCP</title>
	<atom:link href="http://blog.zerodogg.org/category/projects/ccp/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zerodogg.org</link>
	<description>Geeky comments on geeky things</description>
	<lastBuildDate>Mon, 27 Sep 2010 16:37:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Why GNA! is better than Savannah</title>
		<link>http://blog.zerodogg.org/2006/04/23/why-gna-is-better-than-savannah/</link>
		<comments>http://blog.zerodogg.org/2006/04/23/why-gna-is-better-than-savannah/#comments</comments>
		<pubDate>Sun, 23 Apr 2006 21:18:36 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[CCP]]></category>
		<category><![CDATA[GFSGL]]></category>
		<category><![CDATA[GFSI]]></category>
		<category><![CDATA[GoldenBackup]]></category>
		<category><![CDATA[Goldenfiles]]></category>
		<category><![CDATA[GoldenPod]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.iamaturtle.org/?p=62</guid>
		<description><![CDATA[In the beginning there was&#8230;blah, okay I won&#8217;t go that far. Though, the first host provider I used was SourceForge.net. I used that for three projects: GFSGL, GFSI and GoldenFiles. Mostly random stuff there, not too large projects. Then one day I thought about this and well, using a proprietary website to produce and manage [...]]]></description>
			<content:encoded><![CDATA[<p>In the beginning there was&#8230;blah, okay I won&#8217;t go that far. Though, the first  host provider I used was <a href="http://sourceforge.net">SourceForge.net</a>. I used that for three projects:<br />
<a href="http://gfsgl.sf.net/">GFSGL</a>, <a href="http://gfsi.sf.net/">GFSI</a> and <a href="http://goldenfiles.sf.net/">GoldenFiles</a>. Mostly random stuff there, not too large projects.</p>
<p>Then one day I thought about this and well, using a proprietary website to produce and manage a free software project makes&#8230;well&#8230;no sense. So then I started looking at the alternatives. I landed on <a href="http://savannah.nongnu.org/">Savannah</a>. My first Savannah project was <a href="http://goldenpod.nongnu.org/">GoldenPod</a>. Followed by the (mostly dead) GoldenBackup (no link due to no website nor release, it does have a CVS though). Then followed by the <a href="http://ccp.nongnu.org">common configuration parser</a>. Then I had my <a href="http://blog.iamaturtle.org/?p=49">disagreements with Savannah</a> (as some of you might remember).</p>
<p>Then I started looking at <a href="http://gna.org/">GNA!</a> which I am now using for my most active project, <a href="http://home.gna.org/dayplanner/">Day planner</a>. Now what does GNA! have to offer that Savannah doesn&#8217;t?<br />
Well, it offers easier access to the downloads directory, I can simply rsync/scp stuff from my box to the GNA! download directory. It also has SVN which is imho MUCH better than CVS (I&#8217;ve never used Arch, so I won&#8217;t say anything about that). They also offer download/website statistics, something Savannah doesn&#8217;t. The only plus of Savannah I can find is some of their admins. I&#8217;ve spoken with a few of them and they where very nice, savannah also has an IRC channel (<i>#savannah</i> on freenode) which is rather nice. Though currently, I&#8217;ll take my GNA! without my Savannah if that is possible thank you very much.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2006/04/23/why-gna-is-better-than-savannah/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CCP 0.3</title>
		<link>http://blog.zerodogg.org/2006/01/23/ccp-03/</link>
		<comments>http://blog.zerodogg.org/2006/01/23/ccp-03/#comments</comments>
		<pubDate>Sun, 22 Jan 2006 23:59:59 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[CCP]]></category>

		<guid isPermaLink="false">http://blog.iamaturtle.org/?p=48</guid>
		<description><![CDATA[CCP 0.3 is out! The major new feature in this release is the addition of automatic uncommenting support. CCP will now try to detect which options the user has uncommented from &#8211;oldfile and automatically uncomment them in the resulting &#8211;newfile. This should *greatly* decrease the amount of oprhaned options that occurs. Also added is an [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ccp.nongnu.org/">CCP</a> 0.3 is out! The major new feature in this release is the addition of automatic uncommenting support.<br />
<a href="http://ccp.nongnu.org/">CCP</a> will now try to detect which options the user has uncommented from &#8211;oldfile and automatically uncomment them in the resulting &#8211;newfile. This should *greatly* decrease the amount of oprhaned options that occurs. Also added is an automatic testsuite to avoid regressions between versions and a &#8211;bug option that outputs a file containing useful information that can help fix a bug or solve a problem.</p>
<p><a href="http://ccp.nongnu.org/">CCP</a> can be downloaded from <a href="http://ccp.nongnu.org/download.html">http://ccp.nongnu.org/download.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2006/01/23/ccp-03/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CCP 0.2 released</title>
		<link>http://blog.zerodogg.org/2006/01/07/ccp-02-released/</link>
		<comments>http://blog.zerodogg.org/2006/01/07/ccp-02-released/#comments</comments>
		<pubDate>Fri, 06 Jan 2006 23:09:13 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[CCP]]></category>

		<guid isPermaLink="false">http://blog.iamaturtle.org/?p=45</guid>
		<description><![CDATA[This version contains multiple bugfixes, some which could cause various configuration files to not upgrade correctly. Among others, it fixes bug #15364. In other news, the first package using CCP in Mandriva is out &#8211; which is squirrelmail :)]]></description>
			<content:encoded><![CDATA[<p>This version contains multiple bugfixes, some which could cause various configuration files to not upgrade correctly. Among others, it fixes bug <a href="https://savannah.nongnu.org/bugs/?func=detailitem&#038;item_id=15364">#15364</a>.<br />
In other news, the first package using CCP in Mandriva is out &#8211; which is squirrelmail :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2006/01/07/ccp-02-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CCP 0.1 released</title>
		<link>http://blog.zerodogg.org/2006/01/03/ccp-01-released/</link>
		<comments>http://blog.zerodogg.org/2006/01/03/ccp-01-released/#comments</comments>
		<pubDate>Tue, 03 Jan 2006 16:39:01 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[CCP]]></category>

		<guid isPermaLink="false">http://blog.iamaturtle.org/?p=43</guid>
		<description><![CDATA[CCP version 0.1 has been released! It can be downloaded from http://ccp.nongnu.org/download.html. It&#8217;s also in Mandriva Linux (cooker) contrib. The first package to use it is squirrelmail, which I updated today.]]></description>
			<content:encoded><![CDATA[<p>CCP version 0.1 has been released!<br />
It can be downloaded from <a href="http://ccp.nongnu.org/download.html">http://ccp.nongnu.org/download.html</a>.</p>
<p>It&#8217;s also in Mandriva Linux (cooker) contrib.<br />
The first package to use it is squirrelmail, which I updated today.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2006/01/03/ccp-01-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CCP can now autogenerate templates :)</title>
		<link>http://blog.zerodogg.org/2006/01/02/ccp-can-now-autogenerate-templates/</link>
		<comments>http://blog.zerodogg.org/2006/01/02/ccp-can-now-autogenerate-templates/#comments</comments>
		<pubDate>Sun, 01 Jan 2006 22:30:56 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[CCP]]></category>

		<guid isPermaLink="false">http://blog.iamaturtle.org/?p=42</guid>
		<description><![CDATA[CCP can now autogenerate the templates, so it&#8217;s pretty much ready for real-life testing. Here&#8217;s the same example used in earlier posts. [0 zerodogg@drizzt ccp]$ cat example.conf # Example configuration file SystemVersion = 0.1 Mode = public Extensions = off [0 zerodogg@drizzt ccp]$ cat example.conf.rpmnew # Example configuration file SystemVersion = 0.1 Mode = private [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ccp.nongnu.org/">CCP</a> can now autogenerate the templates, so it&#8217;s pretty much ready for real-life testing.<br />
Here&#8217;s the same example used in <a href="http://blog.iamaturtle.org/?p=40">earlier</a> <a href="http://blog.iamaturtle.org/?p=16">posts</a>.</p>
<pre>
[0 zerodogg@drizzt ccp]$ cat example.conf
# Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off

[0 zerodogg@drizzt ccp]$ cat example.conf.rpmnew
# Example configuration file
SystemVersion = 0.1
Mode = private
Extensions = on
AllowUsers = yes

[0 zerodogg@drizzt ccp]$ ./ccp --oldfile example.conf --newfile example.conf.rpmnew
Merging changes between "example.conf" and "example.conf.rpmnew"...done

[0 zerodogg@drizzt ccp]$ cat example.conf
# Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off
AllowUsers = yes
[0 zerodogg@drizzt ccp]$
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2006/01/02/ccp-can-now-autogenerate-templates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A working copy of CCP</title>
		<link>http://blog.zerodogg.org/2005/12/29/a-working-copy-of-ccp/</link>
		<comments>http://blog.zerodogg.org/2005/12/29/a-working-copy-of-ccp/#comments</comments>
		<pubDate>Thu, 29 Dec 2005 14:56:26 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[CCP]]></category>

		<guid isPermaLink="false">http://blog.iamaturtle.org/?p=40</guid>
		<description><![CDATA[CCP (as I wrote about earlier) now has a project on savannah. It now works! It can be downloaded from the CVS repository. However, it doesn&#8217;t use libconf yet, and thus only supports key = value files. It also doesn&#8217;t know how to create the templates by itself so those have to be written by [...]]]></description>
			<content:encoded><![CDATA[<p>CCP (as I wrote about <a href="http://blog.iamaturtle.org/?p=16">earlier</a>) now has a project on <a href="http://savannah.nongnu.org/projects/ccp/">savannah</a>. It now works! It can be downloaded from the <a href="http://cvs.savannah.nongnu.org/viewcvs/ccp/?root=ccp">CVS repository</a>.<br />
However, it doesn&#8217;t use <a href="http://www.libconf.net/">libconf</a> yet, and thus only supports key = value files. It also doesn&#8217;t know how to create the templates by itself so those have to be written by hand for now (but this should be easy(ish) to implement I <i>think</i>).</p>
<p>Like i said it currently supports <i>key = value</i> files. Any format will do. It can for instance handle any of the following:</p>
<pre>$Key = Value;
$Key=Value
$Key='Value'
$Key="Value"
$Key ="Value"
Key = Value
Key=Value
# Comment
: Comment
; Comment
[Section header that gets ignored]</pre>
<p>It doesn&#8217;t support comments on the same line as a config option, but this can probably be added at some later time.<br />
I haven&#8217;t written any documentation yet &#8211; but here&#8217;s the same usage sample I used before (edited to suit the way ccp now works).</p>
<p>/etc/example.conf:</p>
<pre># Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off</pre>
<p>/etc/example.conf.rpmnew:</p>
<pre># Example configuration file
SystemVersion = 0.1
Mode = private
Extensions = on
AllowUsers = yes</pre>
<p>/usr/share/example/config.ccptemplate:</p>
<pre># Example configuration file
SystemVersion = {CCP::CONFIG:SystemVersion}
Mode = {CCP::CONFIG::Mode}
Extensions = {CCP::CONFIG::Extensions}
AllowUsers = {CCP::CONFIG::AllowUsers}</pre>
<p>Command:</p>
<pre>$ ccp --template /usr/share/example/config.ccptemplate --oldfile /etc/example.conf --newfile /etc/example.conf.rpmnew
Merging changes between "/etc/example.conf" and "/etc/example.conf.rpmnew"...done</pre>
<p>Resulting /etc/example.conf:</p>
<pre># Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off
AllowUsers = yes</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2005/12/29/a-working-copy-of-ccp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Common configuration parser (CCP)</title>
		<link>http://blog.zerodogg.org/2005/09/29/common-configuration-parser-ccp/</link>
		<comments>http://blog.zerodogg.org/2005/09/29/common-configuration-parser-ccp/#comments</comments>
		<pubDate>Thu, 29 Sep 2005 17:48:56 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[CCP]]></category>
		<category><![CDATA[Mandriva]]></category>

		<guid isPermaLink="false">http://blog.iamaturtle.org/?p=16</guid>
		<description><![CDATA[I&#8217;ve been thinking about ways to upgrade configuration files lately and I&#8217;ve come up with the idea for CCP (common configuration parser). The idea is to take one template file, one old configuration file, one definition file and one mode. To give a better example of how this would work: ccp --type basic --mode rpmnew [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking about ways to upgrade configuration files lately and I&#8217;ve come up with the idea for CCP (common configuration parser). The idea is to take one template file, one old configuration file, one definition file and one mode. To give a better example of how this would work:<br />
<code>ccp --type basic --mode rpmnew --template /usr/share/example/config.ccptemplate --oldfile /etc/example.conf</code><br />
This here would tell ccp to work with the configuration type &#8220;basic&#8221;, in the mode rpmnew (upgrade if a rpmnew file is found), use the template file /usr/share/example/config.ccptemplate and upgrade the old configuration file /etc/example.conf. Settings not found in /etc/example.conf would then be taken from /etc/example.conf.rpmnew. For an even better understanding of the idea lets look at it some more. For example before the upgrade /etc/example.conf could look like this:</p>
<p><code># Example configuration file<br />
SystemVersion = 0.1<br />
Mode = public<br />
Extensions = off</code></p>
<p>/etc/example.conf.rpmnew could look like this:<br />
<code># Example configuration file<br />
SystemVersion = 0.1<br />
Mode = private<br />
Extensions = on<br />
AllowUsers = yes</code></p>
<p>/usr/share/example/config.ccptemplate could look something like this:<br />
<code># Example configuration file<br />
SystemVersion = $CCP::CONF:SystemVersion<br />
Mode = $CCP::CONF::Mode<br />
Extensions = $CCP::CONF::Extensions<br />
AllowUsers = $CCP::CONF::AllowUsers</code></p>
<p>ccp would read these files and write the new /etc/example.conf as:<br />
<code># Example configuration file<br />
SystemVersion = 0.1<br />
Mode = public<br />
Extensions = off<br />
AllowUsers = yes</code></p>
<p>More advanced files could be supported by different &#8211;type&#8217;s. This is still mostly an idea that&#8217;s growing in my head but this is the basic thought of it. Quite possibly &#8211;template wouldn&#8217;t be needed and it would autogenerate a template on-the-fly by using the .rpmnew (or whichever file is the new one &#8211; ccp is not rpm specific, it is just one of multiple modes it would be able to run in).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2005/09/29/common-configuration-parser-ccp/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

