<?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>Olaf&#039;s blog &#187; System engineering</title>
	<atom:link href="http://olafsblog.sysbsb.de/category/system-engineering/feed/" rel="self" type="application/rss+xml" />
	<link>http://olafsblog.sysbsb.de</link>
	<description>Olaf&#039;s blog on software development and life</description>
	<lastBuildDate>Thu, 18 Nov 2010 07:57:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Solved: Xserver lock-ups in Ubuntu 10.04 with intel GFX</title>
		<link>http://olafsblog.sysbsb.de/solved-xserver-lock-ups-in-ubuntu-10-04-with-intel-gfx/</link>
		<comments>http://olafsblog.sysbsb.de/solved-xserver-lock-ups-in-ubuntu-10-04-with-intel-gfx/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 07:17:57 +0000</pubDate>
		<dc:creator>olaf</dc:creator>
				<category><![CDATA[System engineering]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[lucid]]></category>
		<category><![CDATA[Xserver]]></category>

		<guid isPermaLink="false">http://olafsblog.sysbsb.de/?p=116</guid>
		<description><![CDATA[After installing 10.04 I experienced a GDM lockup a couple of times a day &#8211; the symptoms varied from the window management not reacting to left mouse clicks to a complete freeze of the Xserver. This bug has caused a lot of noise across distributions, for instance in 590109 and 538563. The symptoms are log [...]]]></description>
			<content:encoded><![CDATA[<p>After installing 10.04 I experienced a GDM lockup a couple of times a day &#8211; the symptoms varied from the window management not reacting to left mouse clicks to a complete freeze of the Xserver. This bug has caused a lot of noise across distributions, for instance in <a href="https://bugs.launchpad.net/ubuntu/+bug/590109">590109</a> and <a href=" https://bugzilla.redhat.com/show_bug.cgi?id=538563">538563</a>. The symptoms are log messages such as</p>
<p><code><br />
[mi] EQ overflowing. The server is probably stuck in an infinite loop.<br />
...<br />
Backtrace:<br />
...<br />
... /usr/lib/xorg/modules/drivers/intel_drv.so<br />
...<br />
</code></p>
<p>in the :0&#8230; logfiles in /var/log/gdm when the problem occurs.</p>
<p>This is, however, <em>not</em> a kernel, XServer or GDM issue, but caused by a problem with the intel-linux driver.  The problem is apparently fixed as of version 2:2.11.0-1ubuntu1 of the xserver-xorg-video-intel driver. Since this is not (yet) an update in the official distribution repo, I did the following to solve the issue:</p>
<h2>1: Optional: Update to the latest stable kernel</h2>
<p>Reason: IMO, upstream Intel drivers are usually build against the latest stable kernel<br/><br />
Goto <a href="http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.34-lucid/">http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.34-lucid/</a> and download the headers&#8230; _all.deb, headers-generic &#8230;..deb and linux-image&#8230; .deb for your platform (in most cases, i368). install the generic headers package, then the all headers package, then the image.</p>
<p><em>A word of warning: If you install this custom kernel you will not receive security updates for it from the automatic distribution updates.</em></p>
<h2>2: Add the X Updates PPA to your sources.list</h2>
<p>In a terminal, type:</p>
<p><code><br />
sudo gedit /etc/apt/sources.list<br />
</code></p>
<p>And add at the bottom of the file (if not already present):</p>
<p><code><br />
deb http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu lucid main #X-Updates PPA<br />
deb-src http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu lucid main #X-Updates PPA<br />
</code></p>
<h3>2.1: Trust the software packages from the x-updates PPA</h3>
<p>sudo apt-key adv &#8211;recv-keys &#8211;keyserver keyserver.ubuntu.com AF1CDFA9</p>
<h3>3: Update the driver</h3>
<p><code><br />
sudo apt-get update<br />
sudo apt-get dist-upgrade<br />
</code></p>
<p>Reboot &#8211; the problem should be solved.</p>
]]></content:encoded>
			<wfw:commentRss>http://olafsblog.sysbsb.de/solved-xserver-lock-ups-in-ubuntu-10-04-with-intel-gfx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running mvn:release with Subversion 1.5.x</title>
		<link>http://olafsblog.sysbsb.de/running-mvnrelease-with-subversion-15x/</link>
		<comments>http://olafsblog.sysbsb.de/running-mvnrelease-with-subversion-15x/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 16:26:22 +0000</pubDate>
		<dc:creator>olaf</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[System engineering]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven 2]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://olafsblog.sysbsb.de/?p=73</guid>
		<description><![CDATA[When attempting to prepare a release using maven and the maven-release-plugin, you are currently very likely to see your build fail with a message such as:

[INFO] Executing: svn --non-interactive copy --file /tmp/...commit . https://subversion..../tags/...
[INFO] Working directory: ...
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to tag SCM
Provider message:
The svn tag command failed.
Command output:
svn: Commit failed (details follow):
svn: [...]]]></description>
			<content:encoded><![CDATA[<p>When attempting to prepare a release using maven and the <a href="http://maven.apache.org/plugins/maven-release-plugin/">maven-release-plugin</a>, you are currently very likely to see your build fail with a message such as:</p>
<p><code><br />
[INFO] Executing: svn --non-interactive copy --file /tmp/...commit . https://subversion..../tags/...<br />
[INFO] Working directory: ...<br />
[INFO] ------------------------------------------------------------------------<br />
[ERROR] BUILD FAILURE<br />
[INFO] ------------------------------------------------------------------------<br />
[INFO] Unable to tag SCM<br />
Provider message:<br />
The svn tag command failed.<br />
Command output:<br />
svn: Commit failed (details follow):<br />
svn: File '...' already exists<br />
</code></p>
<p>If you do, you are using subversion 1.5.x which no longer supports tagging from a local working copy, thus causing the unfortunately very misleading error message.</p>
<p>This is a <a href="http://jira.codehaus.org/browse/SCM-406"> known issue of the subversion sourcecode management  (SCM)</a> and there is a simple workaround:<br />
<span id="more-73"></span><br />
Use the latest 2.x snapshot version of the maven release plugin and configure it to use remote tagging (on the subversion server) rather than tagging from your local copy.</p>
<p>You can do so by </p>
<h3>1.) Adding the apache snapshots repository to your plugin repositories list</h3>
<pre class="brush: xml;">
    &lt;pluginRepositories&gt;
        &lt;pluginRepository&gt;
            &lt;id&gt;apache-snapshots&lt;/id&gt;
            &lt;name&gt;Apache Snapshot Repository&lt;/name&gt;
            &lt;url&gt;http://repository.apache.org/snapshots/&lt;/url&gt;
            &lt;snapshots&gt;
                &lt;enabled&gt;true&lt;/enabled&gt;
            &lt;/snapshots&gt;
        &lt;/pluginRepository&gt;
        ...
    &lt;/pluginRepositories&gt;
</pre>
<h3>2.) Configuring the release plugin&#8217;s version and tagging</h3>
<pre class="brush: xml;">
        ...
        &lt;build&gt;
        ...
        &lt;pluginManagement&gt;
            &lt;plugins&gt;
                &lt;plugin&gt;
                    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                    &lt;artifactId&gt;maven-release-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.0-beta-9-SNAPSHOT&lt;/version&gt;
                    &lt;configuration&gt;
                        &lt;tagBase&gt;full url to the tags directory on the svn server&lt;/tagBase&gt;
                        &lt;!-- See http://jira.codehaus.org/browse/SCM-406 --&gt;
                        &lt;remoteTagging&gt;true&lt;/remoteTagging&gt;
                        &lt;!-- Further non-mandatory but useful settings... --&gt;
                        &lt;preparationGoals&gt;clean install&lt;/preparationGoals&gt;
                        &lt;autoVersionSubmodules&gt;true&lt;/autoVersionSubmodules&gt;
                    &lt;/configuration&gt;
                &lt;/plugin&gt;
            &lt;/plugins&gt;
        &lt;/pluginManagement&gt;
        ...
        &lt;/build&gt;
        ...
</pre>
<p>This fixed it for me.</p>
<p>Note: i had problems getting this to function with the scp:// protocol (provider) for my distribution repository. It seems logic, tough, that the choosen provider must support remote tagging, thus i choose the scpexe:// protocol (using a local scp executable) instead, that worked:</p>
<pre class="brush: xml;">
...
&lt;distributionManagement&gt;
&lt;repository&gt;
  &lt;id&gt;myReo&lt;/id&gt;
  &lt;name&gt;myreo&lt;/name&gt;
  &lt;url&gt;scpexe://...&lt;/url&gt;
 &lt;/repository&gt;
...
&lt;/distributionManagement&gt;
...
</pre>
<p>Apparently, the upcoming 2.0 release of the maven-release-plugin will have remote tagging as default, so if you read this and the 2.0 version has been released, simply using it should do the job.</p>
]]></content:encoded>
			<wfw:commentRss>http://olafsblog.sysbsb.de/running-mvnrelease-with-subversion-15x/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Debian etch and &#8220;The following packages have been kept back&#8230;&#8221;</title>
		<link>http://olafsblog.sysbsb.de/debian-etch-and-the-following-packages-have-been-kept-back/</link>
		<comments>http://olafsblog.sysbsb.de/debian-etch-and-the-following-packages-have-been-kept-back/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 00:31:53 +0000</pubDate>
		<dc:creator>olaf</dc:creator>
				<category><![CDATA[System engineering]]></category>
		<category><![CDATA[debian 4]]></category>
		<category><![CDATA[lenny]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://olafsblog.sysbsb.de/?p=71</guid>
		<description><![CDATA[
Update: Debian 5.0 Lenny was indeed released shortly after this post and will hopefully make it into all the mirror repositories today.

Just for the record: It seems the new Debian Lenny release is close at hand.
Apparently a few packages for the lenny release already made it into the productive repositories, which causes them to be [...]]]></description>
			<content:encoded><![CDATA[<div class="updateinfo">
Update: <a href="http://www.debian.org/News/2009/20090214">Debian 5.0 Lenny was indeed released</a> shortly after this post and will hopefully make it into all the mirror repositories today.
</div>
<p>Just for the record: It seems the new <a href="http://www.debian.org/releases/lenny/">Debian Lenny release</a> is close at hand.<br />
Apparently a few packages for the lenny release already made it into the productive repositories, which causes them to be held back by apt-get upgrade:</p>
<p><code><br />
apt-get dist-upgrade -V<br />
Reading package lists... Done<br />
Building dependency tree... Done<br />
Calculating upgrade... Done<br />
The following packages have been kept back:<br />
   libapache2-mod-php5 (... => 5.2.6.dfsg.1-1+lenny2)<br />
   libperl5.8 (... => 5.8.8-11.1+lenny1)<br />
   php-pear (... => 5.2.6.dfsg.1-1+lenny2)<br />
   ...<br />
</code></p>
<p><a href="http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.de.html#s-dist-upgrade">apt-get dist-upgrade</a>, which usually resolves this issue by upgrading the system to the most recent release does not work yet, since lenny was not released so far.</p>
]]></content:encoded>
			<wfw:commentRss>http://olafsblog.sysbsb.de/debian-etch-and-the-following-packages-have-been-kept-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a PPTP VPN connection in Ubuntu 8.10 (Intrepid)</title>
		<link>http://olafsblog.sysbsb.de/creating-a-pptp-vpn-connection-in-ubuntu-810-intrepid/</link>
		<comments>http://olafsblog.sysbsb.de/creating-a-pptp-vpn-connection-in-ubuntu-810-intrepid/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 11:43:52 +0000</pubDate>
		<dc:creator>olaf</dc:creator>
				<category><![CDATA[System engineering]]></category>
		<category><![CDATA[intrepid]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://olafsblog.sysbsb.de/?p=68</guid>
		<description><![CDATA[
Update June 22, 2010
The configuration described below is still valid up to the most recent Ubuntu release (10.04) !


Update December 8, 2008
The following solution does not work for everybody as there are multiple issues with VPN connections, the network manager etc. Bug fixing is in progress and it appears a number of patches where already [...]]]></description>
			<content:encoded><![CDATA[<div class="updateinfo">
<h3>Update June 22, 2010</h3>
<p>The configuration described below is still valid up to the most recent Ubuntu release (10.04) !
</p></div>
<div class="updateinfo">
<h3>Update December 8, 2008</h3>
<p>The following solution does not work for everybody as there are multiple issues with VPN connections, the network manager etc. Bug fixing is in progress and it appears a number of patches where already included in recent ubuntu updates.</p>
<p>I recommend checking the ubuntu bug database for the latest state of the VPN issues:</p>
<p><a href="https://bugs.launchpad.net/ubuntu/+bugs?field.searchtext=VPN&#038;orderby=-importance&#038;search=Search&#038;field.status%3Alist=NEW&#038;field.status%3Alist=INCOMPLETE_WITH_RESPONSE&#038;field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE&#038;field.status%3Alist=CONFIRMED&#038;field.status%3Alist=TRIAGED&#038;field.status%3Alist=INPROGRESS&#038;field.status%3Alist=FIXCOMMITTED&#038;field.assignee=&#038;field.bug_reporter=&#038;field.omit_dupes=on&#038;field.has_patch=&#038;field.has_no_package=">Search for &#8220;VPN&#8221; in the ubuntu bug database (launchpad.net)</a>
</div>
<p>This monday was sweet. I finally had the time to make a fresh install of ubuntu 8.10 on my thinkpad r52, and what can i say, just as all the other releases before, things got better.</p>
<p>I am especially happy about the re-programmed network manager, which works a whole lot better than in hardy.<br />
Except that i didn&#8217;t get the PPTP VPN connection to my office to work instantly.<br />
<span id="more-68"></span><br />
Turns out there is some kind of problem that prevents the network manager from obtaining the configured password, resulting in the error message:</p>
<p><code><br />
The vpn connection X failed because there were no valid VPN secrets.<br />
</code></p>
<p>Furthermore, point-to-point encryption is not enabled by default any more. Here is how i got it to work:</p>
<h3>1: Prerequisites: Install the required packages</h3>
<p>If you don&#8217;t have pptp VPN support for network manager yet, install it&#8230;</p>
<p><code><br />
sudo apt-get install network-manager-pptp<br />
</code></p>
<p>&#8230; and configure your VPN connection using the network manager.</p>
<h3>2: Clear the password field in the vpn settings dialog</h3>
<p><img id="image66" src="http://olafsblog.sysbsb.de/wp-content/uploads/2008/11/editing_pptp_connection.jpg" alt="Editing an existing PPTP VPN connection" /></p>
<p>This should make the manager prompt you for the password.</p>
<h3>3: Enable point-to-point encryption on the &#8220;Advanced&#8221; settings page</h3>
<p><img id="image67" src="http://olafsblog.sysbsb.de/wp-content/uploads/2008/11/pptp_advanced.jpg" alt="The advanced PPTP VPN dialoge" /></p>
<p>This should do! Now the PPTP settings should be about the same they where in hardy.</p>
<p>If you still experience problems, you might want to check the syslog for messages from the network manager, like so:</p>
<p><code><br />
 tail -f /var/log/syslog<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://olafsblog.sysbsb.de/creating-a-pptp-vpn-connection-in-ubuntu-810-intrepid/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Configuring Eclipse Ganymede with subversion in Ubuntu 8.04</title>
		<link>http://olafsblog.sysbsb.de/configuring-eclipse-ganymede-with-subversion-in-ubuntu-804/</link>
		<comments>http://olafsblog.sysbsb.de/configuring-eclipse-ganymede-with-subversion-in-ubuntu-804/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 10:23:39 +0000</pubDate>
		<dc:creator>olaf</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[System engineering]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[subclipse]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[subversive]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://olafsblog.sysbsb.de/?p=53</guid>
		<description><![CDATA[After installing the all-new Eclipse ganymede (by downloading it from the eclipse site) under ubuntu 8.04 i ran into some trouble after installing version 1.4.1 of the subclipse subversion plugin.
Long story short, subclipse requires subversion 1.5, but ubuntu 8.04 provides 1.4.x.
If you still want to use subclipse with ganymede in ubuntu, there are only two [...]]]></description>
			<content:encoded><![CDATA[<p>After installing the all-new <a href="http://www.eclipse.org/ganymede/">Eclipse ganymede</a> (by downloading it from the eclipse site) under ubuntu 8.04 i ran into some trouble after installing version 1.4.1 of the <a href="http://subclipse.tigris.org/">subclipse subversion plugin</a>.</p>
<p>Long story short, subclipse requires subversion 1.5, but ubuntu 8.04 provides 1.4.x.<br />
If you still want to use subclipse with ganymede in ubuntu, there are only two ways two achieve this &#8211; both of which i cannot recommend because they are hacks or bad compromises.<br />
<span id="more-53"></span><br />
a.) You could add the the ubuntu package source of the upcoming ubuntu release (i.e. <code>deb http://fr.archive.ubuntu.com/ubuntu intrepid main</code>) and install subversion 1.5 and the package <code>libsvn-java</code> from it. This is a bad idea since it will also install a bunch of transitive dependencies not designed for ubuntu 8.04. It might in fact damage your installation.<br />
b.) You could not use the java hl API but a software connector completely written in JAVA (SVNKit client). This will work at first sight, but will convert your svn repository into 1.5 format. As a consequence, you can no longer use the svn command line client, since it does not support this format.</p>
<h3>Subversive as an alternative to subclipse</h3>
<p>Facing the above problems, i looked for an alternative and tried <a href="http://www.polarion.org/index.php?page=download&#038;project=subversive">subversive</a>. It&#8217;s an official and free eclipse plugin. The developers intend to make it the default subversion support plugin for eclipse.<br />
It installed without any problem and worked really well with the javaHL api shipped with ubuntu 8.04. Look and feel of the plugin do not differ much from subclipse &#8211; subversive even offers a couple of additional useful options.</p>
<p>Here is how i installed and configured subversive:</p>
<ol>
<li>
Follow the installation instructions on the <a href="http://www.polarion.org/index.php?page=download&#038;project=subversive">subversive download site</a>.<br />
Since you will use the native javaHL connector implementation, be sure to choose the javaHL implementation from the update site:<br />
<img id="image56" src="http://olafsblog.sysbsb.de/wp-content/uploads/2008/08/subversive-javahl-selection.jpg" alt="javaHL implementation selection in eclipse update site" />
</li>
<li>Install the java HL API on ubuntu: <code>sudo apt-get install libsvn-javahl</code>.</li>
<li>Add the library directory where javahl resides to your <code>eclipse.ini</code> (located in the root folder of your eclipse installation). Just add the following line into it: <br /><code>-Djava.library.path=/usr/lib/jni</code>.</li>
<li>Restart eclipse</li>
<li>Verify your setup. <br />
   Goto Window>Preferences>Team>SVN and click the &#8220;SVN Connector&#8221; tab.<br />
   The native javaHL connector should be selected<br />
  <img id="image58" src="http://olafsblog.sysbsb.de/wp-content/uploads/2008/08/subversive-javahl-connector-selected.jpg" alt="Eclipse SVN Team view with javaHL connector selected" />
</li>
</ol>
<p>I&#8217;m working with it since about a week, it&#8217;s fast, has not failed on my a single time and is easy to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://olafsblog.sysbsb.de/configuring-eclipse-ganymede-with-subversion-in-ubuntu-804/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Critical security vulnerability in debian openssl package</title>
		<link>http://olafsblog.sysbsb.de/critical-security-vulnerability-in-debian-openssl-package/</link>
		<comments>http://olafsblog.sysbsb.de/critical-security-vulnerability-in-debian-openssl-package/#comments</comments>
		<pubDate>Wed, 14 May 2008 09:44:17 +0000</pubDate>
		<dc:creator>olaf</dc:creator>
				<category><![CDATA[System engineering]]></category>
		<category><![CDATA[debian 4]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://olafsblog.sysbsb.de/?p=49</guid>
		<description><![CDATA[Debians security advisory has reported a critical security issue with debian-based openssl packages.
As a result,generated keys might be weak and breakable, since the random number generator appears to have created predictable results.
The exact nature of this predictability was not made public by now, but it is strongly recommendet to regenerate keys created with kryptographic tools [...]]]></description>
			<content:encoded><![CDATA[<p>Debians security advisory has reported a critical security issue with debian-based openssl packages.<br />
As a result,<em>generated keys might be weak and breakable</em>, since the random number generator appears to have created predictable results.<br />
The exact nature of this predictability was not made public by now, but it is <em>strongly recommendet to regenerate keys created with kryptographic tools affected by the issue and to re-enroll all corresponding certificates</em>.</p>
<p>Note that his issue affects all debian-based systems, including <a href="http://http://www.ubuntu.com/">ubuntu 8.04</a>.</p>
<p>Source: <a href="http://lists.debian.org/debian-security-announce/2008/msg00152.html">http://lists.debian.org/debian-security-announce/2008/msg00152.html</a></p>
<p>Seems i&#8217;ll have a somewhat busy weekend.</p>
]]></content:encoded>
			<wfw:commentRss>http://olafsblog.sysbsb.de/critical-security-vulnerability-in-debian-openssl-package/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring custom username for maven&#8217;s scm with subversion and ssh</title>
		<link>http://olafsblog.sysbsb.de/configuring-custom-username-for-mavens-scm-with-subversion-and-ssh/</link>
		<comments>http://olafsblog.sysbsb.de/configuring-custom-username-for-mavens-scm-with-subversion-and-ssh/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 23:25:57 +0000</pubDate>
		<dc:creator>olaf</dc:creator>
				<category><![CDATA[System engineering]]></category>
		<category><![CDATA[continuum]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven 2]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://olafsblog.sysbsb.de/?p=42</guid>
		<description><![CDATA[I just stumbled over a nice little problem: When using the maven 2 changelog plugin, it automatically uses the configured &#60;scm&#62; settings and attempts to fetch the change history with them.
Unfortunately, such a setting usually does not contain a username, since this has to be provided by the actual team member connecting to version control.
Neither [...]]]></description>
			<content:encoded><![CDATA[<p>I just stumbled over a nice little problem: When using the <a href="http://maven.apache.org/plugins/maven-changelog-plugin/">maven 2 changelog plugin</a>, it automatically uses the configured &lt;scm&gt; settings and attempts to fetch the change history with them.</p>
<p>Unfortunately, such a setting usually does not contain a username, since this has to be provided by the actual team member connecting to version control.<br />
Neither did i have any intention to configure a placeholder into the scm section, forcing the developers to mess with the maven settings.xml in order to provide their own username.</p>
<p>Luckily, after searching a while, i found a proper solution.<br />
SSH allows an optional per-host specific username setting to be placed in a file called &#8220;config&#8221; located in the user&#8217;s .ssh directory, for example</p>
<p>File: ~/.ssh/config</p>
<p><code><br />
Host my.host.name<br />
User myusername<br />
</code></p>
<p>Thanks to <a href="http://programmingishard.com/users/spicycode">Chad Humphries</a>  for posting <a href="http://programmingishard.com/code/434">the Solution on programming is hard</a>.<br />
It really wasn&#8217;t&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://olafsblog.sysbsb.de/configuring-custom-username-for-mavens-scm-with-subversion-and-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>maven autocompletion für die shell (und windows)</title>
		<link>http://olafsblog.sysbsb.de/maven-autocompletion-fur-die-shell-und-windows/</link>
		<comments>http://olafsblog.sysbsb.de/maven-autocompletion-fur-die-shell-und-windows/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 13:23:09 +0000</pubDate>
		<dc:creator>olaf</dc:creator>
				<category><![CDATA[System engineering]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven 2]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://olafsblog.sysbsb.de/?p=34</guid>
		<description><![CDATA[Beim Arbeiten mit maven stört die fehlende automatische Vervollständigung auf der Kommadozeile, insbesondere wenn man den Komfort einer ordentlichen unix-shell gewähnt ist. Doch dem kann abgeholfen werden. Aktuelle Linux-Distributionen (und unter Windows CYGWIN) besitzen mit bash-completion eine einfache Schnittstelle zum Erweitern der Autocompletion.

mvn-Vervollständigung unter Ubuntu 7.10 (Gutsy Gibbon)
Unter der ubuntu-Distribution 7.10 (Gutsy Gibbon) aktiviert man [...]]]></description>
			<content:encoded><![CDATA[<p>Beim Arbeiten mit <a href="http://maven.apache.org">maven</a> stört die fehlende automatische Vervollständigung auf der Kommadozeile, insbesondere wenn man den Komfort einer ordentlichen unix-shell gewähnt ist. Doch dem kann abgeholfen werden. Aktuelle Linux-Distributionen (und unter Windows <a href="http://www.cygwin.com/">CYGWIN</a>) besitzen mit bash-completion eine einfache Schnittstelle zum Erweitern der Autocompletion.<br />
<span id="more-34"></span></p>
<h3>mvn-Vervollständigung unter Ubuntu 7.10 (Gutsy Gibbon)</h3>
<p>Unter der <a href="http://wiki.ubuntuusers.de/Gutsy_Gibbon">ubuntu-Distribution 7.10 (Gutsy Gibbon)</a> aktiviert man die autocompletion durch Anlegen einer completion-Datei im Verzeichnis <code>/etc/bash_completion.d</code>, beispielsweise mit folgenden Inhalt:</p>
<pre class="brush: php;">
#!/bin/bash

_m2_make_goals()
{
  plugin=$1
  mojos=$2
  for mojo in $mojos
  do
    export goals=&quot;$goals $plugin:$mojo&quot;
  done
}

_m2_complete()
{
  local cur goals

  COMPREPLY=()
  cur=${COMP_WORDS[COMP_CWORD]}
  goals='clean compile test install package deploy site'
  goals=$goals _m2_make_goals &quot;eclipse&quot; &quot;eclipse&quot;
  goals=$goals _m2_make_goals &quot;idea&quot; &quot;idea&quot;
  goals=$goals _m2_make_goals &quot;project-info-reports&quot; &quot;dependencies&quot;
  goals=$goals _m2_make_goals &quot;assembly&quot; &quot;assembly&quot;
  goals=$goals _m2_make_goals &quot;plexus&quot; &quot;app bundle-application bundle-runtime descriptor runtime service&quot;
  cur=`echo $cur | sed 's/\\\\//g'`
  COMPREPLY=($(compgen -W &quot;${goals}&quot; ${cur} | sed 's/\\\\//g') )
}
</pre>
<p>Quelle: <a href="http://www.caliban.org/bash/index.shtml">Working more productively with bash 2.x/3.x</a></p>
<p><a href="http://willcode4beer.com/tips.jsp?set=tabMaven">Wie das ganze für Windows und MAC eingerichtet wird, steht auf willcodeforbeer</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://olafsblog.sysbsb.de/maven-autocompletion-fur-die-shell-und-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuum-1.1 aufsetzen</title>
		<link>http://olafsblog.sysbsb.de/java-entwicklungsarchitektur-teil-1-continuum-11-aufsetzen/</link>
		<comments>http://olafsblog.sysbsb.de/java-entwicklungsarchitektur-teil-1-continuum-11-aufsetzen/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 18:11:19 +0000</pubDate>
		<dc:creator>olaf</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[System architecture]]></category>
		<category><![CDATA[System engineering]]></category>
		<category><![CDATA[continuum]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven 2]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://olafsblog.sysbsb.de/?p=15</guid>
		<description><![CDATA[In diesem Post zeige ich, wie der Continuous-Integration Server Continuum mit tomcat 6     und MYSQL aufgesetzt und konfiguriert werden kann. 
Hin und wieder ist man in der Universität mit der vergnüglichen Tatsache konfrontiert, dass es weder eine brauchbare vorhandene Anzahl an Entwicklungswerkzeugen gibt, noch dass sich irgend jemand &#8211; ausserhalb von [...]]]></description>
			<content:encoded><![CDATA[<p>In diesem Post zeige ich, wie der Continuous-Integration Server <a href="http://maven.apache.org/continuum/ ">Continuum</a> mit <a href="http://tomcat.apache.org/">tomcat 6</a>     und MYSQL aufgesetzt und konfiguriert werden kann. </p>
<p>Hin und wieder ist man in der Universität mit der vergnüglichen Tatsache konfrontiert, dass es weder eine brauchbare vorhandene Anzahl an Entwicklungswerkzeugen gibt, noch dass sich irgend jemand &#8211; ausserhalb von Lehrveranstaltungen &#8211; um Prozesse in der Softwareentwicklung kümmert.</p>
<p>Sprich: Ein Projekt soll umgesetzt werden, und auÃŸer einem SVN-Account gibt&#8217;s nichts.</p>
<p>Bei einem Team von 8 Leuten ist das völlig unzureichend. Neben einem ordentlichen <a href="http://en.wikipedia.org/wiki/Issue_tracking">Issue tracking</a> bin ich auch daran gewöhnt,<span id="more-15"></span> mittels eines <a href="http://en.wikipedia.org/wiki/Continuous_integration">Continous Integration-Systems</a> aktuelle Buildstände abzurufen und den Stand der Dinge im Auge behalten zu können. Von einem ordentlichen WIKI zur Projektdoku ganz zu schweigen.</p>
<p>Da der Code an sich mittels Maven2 verwaltet wird, hatte ich sofort <a href="http://maven.apache.org/continuum/">continuum</a> ins Auge gefasst &#8211; schlieÃŸlich ist continuum selbst Java-basiert und speziell für maven &#8211; Projekte entwickelt.</p>
<h3>1.1: Voraussetzungen</h3>
<p>Da Continuum eine J2EE-Webapplikation ist, muss zunächst einmal ein entsprechender Servletcontainer her.<br />
Im recht schwachbrüstigen <a href="http://docs.codehaus.org/display/CONTINUUMUSER/Home">WIKI</a> werden Resin, JBOSS, tomcat und glassfish als Referenzen angeführt.<br />
Da ich mich gut mit <a href="http://tomcat.apache.org">Tomcat</a> auskenne entschloss ich mich, continuum mit diesem zu installieren. als JDK entschied ich mich für Sun&#8217;s <a href="http://java.sun.com/javase/downloads/index.jsp">JDK 1.6.3</a>, Datenbank sollte nicht die integrierte Derby, sondern ein vorhandenes MYSQL werden.</p>
<h3>1.2: Die richtige Distribution herunterladen</h3>
<p>Auf der <a href="http://maven.apache.org/continuum/download.html">continuum-Downloadseite</a> stehen unterschiedliche Arten des 1.1-Releases zur Verfügung:<br />
Die etwas schräge standalone-Distribution (Warum sollte man so etwas benutzen, wo es ein schönes, Standardkonformes WAR-Deployment gibt?), und die webapp-Distribution.<br />
Ich empfehle in jedem Fall letztere zu verwenden, da somit kein Herumgefrickel in irgendwelchen Scripten notwendig wird.</p>
<h3>1.3: continuum deployen und konfigurieren</h3>
<h4>1.3.1: Tomcat installieren</h4>
<p>Der gute Tomcat lässt sich sehr einfach installieren. Ist das JDK vorhanden muss lediglich die Umgebungsvariable JAVA_HOME gesetzt sein.<br />
Dann reicht es, wenn man keine weiteren Anpassungen braucht, die <a href="http://tomcat.apache.org/download-60.cgi#6.0.16">tomcat 6 core-distribution herunterzuladen</a> und zu entpacken. Unix-typisch sind unter <em>bin/</em> die ausführbaren Dateien, sprich start-Scripts (auch das weiter unten erwähnte catalina.sh &#8211; Script).<br />
Unter <em>conf/</em> findet man die <em>server.xml</em>, in welcher man die unten angeführten Anpassungen für die mysql-Anbindung durchführen kann.</p>
<h4>1.3.2: continuum-Parameter in Umgebungsvariablen</h4>
<p>Aus einem mir unklaren Grund brauch die continuum-webapp zwei JVM-Parameter um sich &#8220;zu orientieren&#8221;:<br />
appserver.home und appserver.base sollten entsprechend auf das CATALINA_HOME und CATALINA_BASE Verzeichnis zeigen.<br />
Bei einer sauberen default- Installation sind diese Verzeichnisse identisch. Ich habe das durch einen Eintrag am Anfang der <em>catalina.sh</em> erledigt:</p>
<pre class="brush: java;">
export CATALINA_OPTS=&quot;-Dappserver.home=$CATALINA_HOME -Dappserver.base=$CATALINA_HOME&quot;
</pre>
<h4>1.3.3: MYSQL anbinden</h4>
<p>Out-Of-The-Box verwendet Continuum Derby als Datenbank. Da ich MYSQL verwenden wollte war es notwendig, eigene <em>DataSource</em>-Konfigurationen vorzunehmen.<br />
DataSources können Global oder Kontext-spezifisch in Tomcat Konfiguriert werden. Ich entschied mich, sie im <code>&lt;Context&gt;</code> Element der server.xml zu konfigurieren:</p>
<pre class="brush: xml;">
&lt;Context path=&quot;/continuum&quot; docBase=&quot;continuum&quot;&gt;
&lt;Resource name=&quot;jdbc/users&quot;
            auth=&quot;Container&quot;
            type=&quot;javax.sql.DataSource&quot;
            username=&quot;...&quot;
            password=&quot;...&quot;
            driverClassName=&quot;com.mysql.jdbc.Driver&quot;
            url=&quot;jdbc:mysql://localhost/...?autoReconnect=true&quot; /&gt;

  &lt;Resource name=&quot;jdbc/continuum&quot;
            auth=&quot;Container&quot;
            type=&quot;javax.sql.DataSource&quot;
            username=&quot;...&quot;
            password=&quot;...&quot;
            driverClassName=&quot;com.mysql.jdbc.Driver&quot;
            url=&quot;jdbc:mysql://localhost/...?autoReconnect=true&quot; /&gt;

  &lt;Resource name=&quot;mail/Session&quot;
            auth=&quot;Container&quot;
            type=&quot;javax.mail.Session&quot;
            mail.smtp.host=&quot;localhost&quot;/&gt;
&lt;/Context&gt;
</pre>
<p>Dazu muss der passende mysql-connector natürlich im lib-Verzeichnis des Tomcats platziert werden. (Bei 5&#8242;er Tomcats unter common/lib, ab 6 einfach &#8220;lib&#8221;).<br />
Wichtig ist, dass der Datenbanknutzer Tabellen etc. anlegen darf. Zudem ist bei der Anbindung von continuum an MYSQL oft folgende Fehlermeldung zu sehen:</p>
<p><code><br />
Error thrown executing CREATE TABLE '.....'<br />
...<br />
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Specified key was too long; max key length is 765 bytes<br />
</code></p>
<p>Das Problem existiert, da Continuum PRIMARY KEY-Constraints über mehrere varchar-Felder (als composite primary key) verwendet und tritt auf, wenn für<br />
das Encoding der für continuum verwendeten Datenbank ein Encoding gewählt wurde, wass mehr als ein Byte pro Character verwendet &#8211; Beispielsweise &#8220;utf8_general_ci&#8221;.<br />
Ich habe aus diesem Grund ein latin1-Encoding verwendet &#8211; Danach lief alles glatt.</p>
<h4>1.3.4: Richtiges ablegen der .war-Datei</h4>
<p>Extrem wichtig ist, dass Verzeichnis der continuum webapp unter &#8220;webapps&#8221; genau so zu nennen wie den Contextnamen:</p>
<pre class="brush: xml;">
&lt;Context path=&quot;/continuum&quot; docBase=&quot;continuum&quot;&gt;
</pre>
<p>Da es ansonsten zu unangenehmen Fehlern bei der Auflösung der konfigurierten Datasource kommt.<br />
Das continuumâ€¦.war-File sollte also unter &#8220;webapps&#8221; am besten als &#8220;continuum.war&#8221; gespeichert werden.</p>
<h4>1.3.5: Start!</h4>
<p>Mit diesen Einstellungen sollte die Continuum webapp starten. Der Startvorgang wird recht ausführlich im logs-verzeichnis von catalina protokolliert.</p>
<h3 id="improveconf">1.4: Konfiguration verbessern</h3>
<p>Die Out-Of-The-Box Konfiguration hat noch ein paar Defizite, welche in der application.xml der ausgepackten .war-Datei verbessert werden können.<br />
Diese findet sich unter â€¦/webapps/continuum/WEb-INF/classes/META-INF/plexus.</p>
<p>Unter</p>
<pre class="brush: xml;">
    &lt;!--
    | The mail notifier
    |--&gt;
    &lt;component&gt;
      &lt;role&gt;org.codehaus.plexus.notification.notifier.Notifier&lt;/role&gt;
      &lt;role-hint&gt;mail&lt;/role-hint&gt;
      &lt;implementation&gt;org.apache.maven.continuum.notification.mail.MailContinuumNotifier&lt;/implementation&gt;
    ...
</pre>
<p>Sollte beispielsweise die sender-mailbox konfiguriert werden, da continuum sonst als continuum@localhost Nachrichten per SMTP versendet:</p>
<pre class="brush: xml;">
    &lt;configuration&gt;
        &lt;from-mailbox&gt;continuum@myhost.domain&lt;/from-mailbox&gt;
        &lt;from-name&gt;Continuum Server&lt;/from-name&gt;
</pre>
<h3>1.5: Problem mit Jsch beheben</h3>
<p>In der mit Continuum ausgelieferten Version enthält die <a href="http://www.jcraft.com/jsch/">java secure channel-Blibliothek</a> Noch einen Nullpointer-Fehler, der sich<br />
allerdings erst dann zeigt, wenn tatsächlich ein build in continuum durchgeführt wird. Dann erscheint folgendes im build-log:</p>
<p><code><br />
...<br />
java.lang.NullPointerException<br />
at com.jcraft.jsch.ChannelSession.run(Unknown Source)<br />
...<br />
</code></p>
<p>Zum Beheben einfach das jsch&#8230;.jar File aus dem WEB-INF/lib Verzeichnes der continuum webapp mit einer aktuelleren Version, in meinem Fall jsch-0.1.36.jar, ersetzen.</p>
<p>Weiter geht es in <a href="http://olafsblog.sysbsb.de/?p=5">Maven2-Projekt in Continuum konfigurieren</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://olafsblog.sysbsb.de/java-entwicklungsarchitektur-teil-1-continuum-11-aufsetzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

