<?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>The Developer Day &#187; SVN</title>
	<atom:link href="http://www.thedeveloperday.com/category/svn/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thedeveloperday.com</link>
	<description>Staying Curious</description>
	<lastBuildDate>Fri, 03 Feb 2012 12:03:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Subversion Self Signed Certificates</title>
		<link>http://www.thedeveloperday.com/subversion-self-signed-certificates/</link>
		<comments>http://www.thedeveloperday.com/subversion-self-signed-certificates/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 17:37:19 +0000</pubDate>
		<dc:creator>Žilvinas Šaltys</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[self-signed]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.thedeveloperday.com/?p=433</guid>
		<description><![CDATA[When connecting to Subversion repositories using SSL connections the SVN client checks the server certificate if it is not expired, if it&#8217;s host description matches the host of the repository and if the authority which signed the certificate is trusted. If the certificate fails to comply with any of the above rules the SVN client [...]]]></description>
			<content:encoded><![CDATA[<p>When connecting to <strong>Subversion</strong> repositories using <strong>SSL</strong> connections the SVN client checks the <strong>server certificate</strong> if it is not expired, if it&#8217;s host description matches the host of the repository and if the authority which signed the certificate is trusted.</p>
<p>If the <strong>certificate</strong> fails to comply with any of the above rules the SVN client will respond with a message such as this one:</p>
<blockquote style="background: #444; color: #fff; padding-left: 2px;"><p>Error validating server certificate for &#8216;https://hostname:443&#8242;:<br />
 &#8211; The certificate is not issued by a trusted authority. Use the<br />
   fingerprint to validate the certificate manually!<br />
Certificate information:<br />
 &#8211; Hostname: hostname<br />
 &#8211; Valid: from Tue, 16 Feb 2010 16:58:39 GMT until Fri, 14 Feb 2020 16:58:39 GMT<br />
 &#8211; Issuer: company.com, London, Berkshire, GB<br />
 &#8211; Fingerprint: d5:4e:d8:12:33:12:a5:f1:18:91:77:40:c4:77:3b:0b:f8:51:71:cd<br />
(R)eject, accept (t)emporarily or accept (p)ermanently?</p></blockquote>
<p>The certificate can still be accepted permanently manually. It may not be a solution if SVN commands are issued by non <strong>interactive processes</strong>. For example a PHP script run by apache trying to export a branch from the repository.</p>
<p>Certificates signed by trusted authorities such as Verisign should not have any problems. But <strong>self signed certificates</strong> will not be recognized by the SVN client which in turn will respond with the response above. Self signed certificates can be be made trusted by the SVN client by using the <strong>ssl-authority-files</strong> configuration option:</p>
<blockquote style="background: #444; color: #fff; padding-left: 2px;"><p>ssl-authority-files = /home/void/.subversion/company.crt</p></blockquote>
<p>The configuration file named <strong>servers</strong> which holds this configuration option can be stored in multiple locations on the filesystem. First the Subversion client will try to look for it in the home folder of the user that is executing the SVN command. Users such as <strong>apache</strong> will most likely not have a home folder. In such cases SVN tries to look for the servers file in the <strong>/etc/subversion</strong> directory. It may or may not exist depending on the OS distribution flavour. For example it exits on Ubuntu but does not exist on <strong>CentOS</strong> a flavour of <strong>RedHat</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thedeveloperday.com/subversion-self-signed-certificates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Starting services in a clean environment</title>
		<link>http://www.thedeveloperday.com/starting-services-in-a-clean-environment/</link>
		<comments>http://www.thedeveloperday.com/starting-services-in-a-clean-environment/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 22:35:50 +0000</pubDate>
		<dc:creator>Žilvinas Šaltys</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[services]]></category>

		<guid isPermaLink="false">http://www.thedeveloperday.com/?p=482</guid>
		<description><![CDATA[I was working on a small web application that creates Subversion branches and tags. In short it just executes SVN commands on the repository. Whenever a user executes an SVN command the SVN client tries to check user&#8217;s local home folder for the .subversion configuration directory. The issue that I was running into was that [...]]]></description>
			<content:encoded><![CDATA[<p>I was working on a small web application that creates Subversion branches and tags. In short it just executes SVN commands on the repository. Whenever a user executes an SVN command the SVN client tries to check user&#8217;s local home folder for the <strong>.subversion</strong> configuration directory. The issue that I was running into was that for some reason apache&#8217;s home folder was pointing to our system&#8217;s administrator <strong>home folder</strong> which in turn would result in a <strong>permission denied</strong> error when apache would try to access the .subversion folder.</p>
<p>It just didn&#8217;t make any sense. Turns out if you start a service through <strong>/etc/init.d/</strong> it starts that service with environment variables belonging to the user that started the service. In this case our system&#8217;s administrator started the service using his own user.</p>
<p>To start services in a clean environment a special utility called <strong>service</strong> should be used. It usually resides in the <strong>/sbin</strong> directory. So for example instead of starting apache like this:</p>
<blockquote style="background: #444; color: #fff; padding-left: 2px;"><p><em>$ sudo /etc/init.d/httpd start</em></p></blockquote>
<p>It should be started like this:</p>
<blockquote style="background: #444; color: #fff; padding-left: 2px;"><p><em>$ sudo /sbin/service httpd start</em></p></blockquote>
<p>Which will result in <strong>$HOME</strong> <strong>environment variable</strong> being empty and the SVN client not getting a <strong>permission denied</strong> error.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thedeveloperday.com/starting-services-in-a-clean-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

