<?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>freedom blog reloaded &#187; nwu</title>
	<atom:link href="http://blog.peijnik.at/topics/nwu/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.peijnik.at</link>
	<description>Stephan's Free Software blog</description>
	<lastBuildDate>Tue, 10 Nov 2009 18:04:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Autoconf and Python: checking for modules</title>
		<link>http://blog.peijnik.at/2008/08/31/autoconf-and-python-checking-for-modules/</link>
		<comments>http://blog.peijnik.at/2008/08/31/autoconf-and-python-checking-for-modules/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 10:04:38 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[foss]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[nwu]]></category>
		<category><![CDATA[observations]]></category>

		<guid isPermaLink="false">http://espi86.wordpress.com/?p=33</guid>
		<description><![CDATA[I am currently writing a Python application that makes use of GNU Autotools as build system and noticed that determining whether a specific Python module is installed is not that easy and no usable Autoconf macro exists. So I came up with my own solution, which I would like to share with you.
The AC_CHECK_PYTHON_MODULE macro [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently writing a Python application that makes use of GNU Autotools as build system and noticed that determining whether a specific Python module is installed is not that easy and no usable Autoconf macro exists. So I came up with <a title="python_module.m4" href="http://blog.peijnik.at/wp-content/uploads/2008/08/python_module.m4">my own solution</a>, which I would like to share with you.</p>
<p>The <em>AC_CHECK_PYTHON_MODULE</em> macro takes two arguments: The module name and optionally the variable name holding version information. This way it is not only possible to determine whether a module is installed (ie. loads in Python) on the current system, but also retrieve version information from that module.</p>
<p>The following examples checks whether the Crypto module is installed and retrieves its version information from Crypto.__version__:</p>
<blockquote><p>AC_CHECK_PYTHON_MODULE(Crypto, __version__)</p></blockquote>
<p>The macro itself does never report and error, but rather only a found/not found result. Error checking is up to the user and can be done via these two Autoconf variables:</p>
<ul>
<li>PYTHON_<em>&lt;MODULE_NAME&gt;</em></li>
<li>PYTHON_<em>&lt;MODULE_NAME&gt;</em>_VERSION</li>
</ul>
<p>PYTHON_<em>&lt;MODULE_NAME&gt;</em> is set to <em>&#8220;1&#8243;</em> if the module is present and <em>&#8220;0&#8243;</em> if not present.<br />
PYTHON_<em>&lt;MODULE_NAME&gt;</em>_VERSION is only set when the version variable argument has been set and contains the version information of the module, if the module been found. If the module is not present this variable is also set to <em>&#8220;0&#8243;</em>.</p>
<p>The version variable argument is optional as I wrote, so the following invocation works too and only checks whether the distutils module is present:</p>
<blockquote><p>AC_CHECK_PYTHON_MODULE(distutils)</p></blockquote>
<p>As I wrote earlier in this article I would like to share this macro with you. You can download it <a title="python_module.m4" href="http://blog.peijnik.at/wp-content/uploads/2008/08/python_module.m4">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2008/08/31/autoconf-and-python-checking-for-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nwu development news #0</title>
		<link>http://blog.peijnik.at/2008/01/16/nwu-development-news-0/</link>
		<comments>http://blog.peijnik.at/2008/01/16/nwu-development-news-0/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 20:49:19 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[free software]]></category>
		<category><![CDATA[nwu]]></category>

		<guid isPermaLink="false">http://www.sp.or.at/blog/2008/01/16/nwu-development-news-0/</guid>
		<description><![CDATA[So, today I am starting off with a new story series. The nwu development news.
Now what is this series about? Well, to make a long story short, it is about what has recently changed in nwu&#8217;s codebase and how nwu is coming along.
Just a sidenote, the first story in this series is of course number [...]]]></description>
			<content:encoded><![CDATA[<p>So, today I am starting off with a new story series. The <a href="http://cetico.org/nwu">nwu</a> development news.<br />
Now what is this series about? Well, to make a long story short, it is about what has recently changed in nwu&#8217;s codebase and how nwu is coming along.<br />
Just a sidenote, the first story in this series is of course number 0, as real programmers start counting at 0. <img src='http://blog.peijnik.at/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>For those of you who are now wondering what nwu is or could be, I did write about nwu on this weblog already and the &#8216;nwu &#8211; an introduction&#8217; post should give you a good idea of what it is.</p>
<p>So, what has changed recently? Basically I merged my changes back into trunk, which means that most of these things are going to be used now. This means that the <strong>application framework</strong>, the <strong>scheduler</strong>, the <strong>APT &#8220;Packages&#8221; file parser</strong>, <strong>support for gzip compression</strong> in both the SecureXMLRPC client and server and the brand-new <strong>RPC framework</strong> are either already being used, or are going to be used soon.</p>
<p>Except for the RPC framework, which would need to be adapted, and the application framework, which depends on nwu.common.config, all these pieces of code also work stand-alone and can be used in other python applications too.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2008/01/16/nwu-development-news-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using parts of nwu in your project</title>
		<link>http://blog.peijnik.at/2008/01/13/using-parts-of-nwu-in-your-project/</link>
		<comments>http://blog.peijnik.at/2008/01/13/using-parts-of-nwu-in-your-project/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 16:43:37 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[free software]]></category>
		<category><![CDATA[nwu]]></category>

		<guid isPermaLink="false">http://www.sp.or.at/blog/2008/01/13/using-parts-of-nwu-in-your-project/</guid>
		<description><![CDATA[As I promised I am writing about nwu again. But instead of reporting on recent development efforts I would rather like to point something else out today: The nwu.common Python module contains code which can be used stand-alone in your applications. Some of the functions the module provides could come in handy, so I thought [...]]]></description>
			<content:encoded><![CDATA[<p>As I promised I am writing about <a href="http://cetico.org/nwu" title="network wide updates">nwu</a> again. But instead of reporting on recent development efforts I would rather like to point something else out today: The <a href="http://cetico.org/nwu/browser/branches/stephan/nwu/common" title="nwu.common module">nwu.common</a> Python module contains code which can be used stand-alone in your applications. Some of the functions the module provides could come in handy, so I thought it was a good idea to let you know.</p>
<p>This article is going to explain the stand-alone nwu.common.* modules and their function.</p>
<p><span id="more-54"></span><strong> nwu.common.SecureXMLRPC</strong></p>
<p>I would like to start out introducing my &#8220;baby&#8221;: SecureXMLRPC. As the name suggests it provides support for XML-RPC over https. You might think &#8220;but that&#8217;s present in Python&#8217;s SimpleXMLRPCServer and xmlrpclib already&#8221; and you are right about that. However, the Python implementation uses <a href="http://openssl.org/" title="OpenSSL homepage">OpenSSL</a>, whilst SecureXMLRPC provides both a server and client implementation using <a href="http://www.gnu.org/software/gnutls/" title="GnuTLS homepage">GnuTLS</a>. Even though the OpenSSL version works perfectly fine you cannot link it to GPL-licensed code due to the OpenSSL license being <a href="http://gnu.org/licenses/license-list.html" title="license list">incompatible to the GPL</a>.<br />
Furthermore SecureXMLRPC supports compression of the XML-RPC payload and as of today is aware of multi-threading.</p>
<p><strong>nwu.common.config</strong></p>
<p>The config module provides a single class, &#8220;Config&#8221;. It basically is a slightly improved version of Python&#8217;s SafeConfigParser class and allows passing a &#8220;default value&#8221; argument to its get() method which is returned in case the setting is not present in the config.</p>
<p><strong>nwu.common.app</strong></p>
<p>This is a simple application framework. It makes use of &#8220;nwu.common.config&#8221; for reading the config file. However, its main feature is a simple-to-use command-line parser, which parses not only arguments from the command-line (such as &#8211;do-something, -d or &#8211;configfile=filename), but also supports &#8220;commands&#8221; as they can be found in several applications, such as aptitude. This way it is easy to not only create top-level commands (like &#8220;aptitude <em>search</em> &lt;package name&gt;&#8221;), but also nested command structures (like &#8220;program <em>computer get</em> &lt;computer name&gt;&#8221;, &#8220;program <em>computer list</em>&#8220;, etc.).</p>
<p><strong>nwu.common.certtool</strong></p>
<p>The certtool module is a wrapper around GnuTLS&#8217; certtool application. It allows you to create private keys, certificate authorities, sign certificates, created certificate-signing-requests (CSRs)  and sign such.<br />
However, please note that it currently does not implement the full functionality certtool provides but rather only the pieces nwu needs.</p>
<p><strong>nwu.common.aptmethod</strong></p>
<p>nwu.common.aptmethod simplifies implementation of an APT transport/method in Python. It takes care of all communication done with apt itself and thus gives you the opportunity to implement a new method in a simple way.</p>
<p><strong>nwu.common.apt</strong></p>
<p>Finally there is also the apt module. This module currently contains code to parse APT Packages files.</p>
<p><strong>nwu.common.scheduler</strong></p>
<p>One of the latest additions to the common module. It provides a way of scheduling tasks for execution at a certain date/time and executing a task in a given interval.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2008/01/13/using-parts-of-nwu-in-your-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nwu &#8211; an introduction</title>
		<link>http://blog.peijnik.at/2008/01/13/nwu-an-introduction/</link>
		<comments>http://blog.peijnik.at/2008/01/13/nwu-an-introduction/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 09:57:34 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[free software]]></category>
		<category><![CDATA[nwu]]></category>

		<guid isPermaLink="false">http://www.sp.or.at/blog/2008/01/13/nwu-an-introduction/</guid>
		<description><![CDATA[This article should give you a brief overview of what network-wide updates, one of my projects, is about.
Network wide updates, or nwu, is a free software package licensed under the GPL (version 3 or later). It allows an administrator to remotely install software on and roll out security upgrades to managed computers. It is targeted [...]]]></description>
			<content:encoded><![CDATA[<p>This article should give you a brief overview of what <a href="http://cetico.org/nwu" target="_blank">network-wide updates</a>, one of my projects, is about.</p>
<p>Network wide updates, or nwu, is a <a href="http://www.gnu.org/philosophy/free-sw.html">free software</a> package licensed under the <a href="http://gnu.org/licenses/gpl.html" target="_blank">GPL</a> (version 3 or later). It allows an administrator to remotely install software on and roll out security upgrades to managed computers. It is targeted at GNU/Linux systems using the <a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool">Advanced Packaging Tool</a> (APT) for package management and thus should run fine on all GNU/Linux distributions based on <a href="http://debian.org">Debian GNU/Linux</a> (such as <a href="http://gnewsense.org">gNewSense</a> and all <a href="http://ubuntu.com">Ubuntu</a> flavors).</p>
<p><span id="more-4"></span>It further gathers data about all managed computers in a database, which gives the administrator an overview about which systems are managed, the hardware configurations they have, the software installed on them and pending security updates.</p>
<p>The system is split into two major components: the server, which is the central management point, and the clients, usually referred to as agents, which report to the server.</p>
<p>Now let&#8217;s go into nasty technical details. nwu is implemented in <a href="http://python.org">Python</a>, using XML-RPC and python-gnutls (and this way the <a href="http://gnu.org/software/gnutls">GnuTLS</a> library) for secure communication between the server and its agents. It further makes use of X.509-certificate authentication and provides an integrated CA-system which simplifies use of this method a great deal.</p>
<p>Currently nwu is in an alpha development stage, but moving forward quite fast. We are expecting to be able to release a stable version quite soon.</p>
<p>The development team is made up of <a href="http://cetico.org/tech" class="ext-link"><span class="icon">Yves Junqueira</span></a> and myself right now, but we would be happy to accept contributions from others.</p>
<p>If you are interested in nwu development you should probably watch this blog, as I am going to write about recent developments here.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2008/01/13/nwu-an-introduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
