<?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>Everything technical &#187; Pinax</title>
	<atom:link href="http://www.lbotti.net/blog/tag/pinax/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lbotti.net/blog</link>
	<description>Linux, Java, Python...just techie blogging</description>
	<lastBuildDate>Mon, 30 Aug 2010 12:45:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Pinax Dependencies &#8211; django-extensions</title>
		<link>http://www.lbotti.net/blog/2009/08/24/pinax-dependencies/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://www.lbotti.net/blog/2009/08/24/pinax-dependencies/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 03:55:44 +0000</pubDate>
		<dc:creator>lucabotti</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Packaging]]></category>
		<category><![CDATA[Pinax]]></category>

		<guid isPermaLink="false">http://www.lbotti.net/blog/?p=184</guid>
		<description><![CDATA[Ok, so I checked Pinax dependencies and found some external libs to be packaged before being able to completely package Pinax. This packages will form the &#8220;depends&#8221; line of Pinax itself. Looking carefully, the first one is named django_extensions, but really the name should be &#8220;django-extensions&#8221;, and you can find the project with the not [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, so I checked <a title='Original Link: http://pinaxproject.com/docs/0.5.1/dependencies.html'  href="http://www.lbotti.net/blog/?aZmfuYB8" target="_blank">Pinax dependencies</a> and found some external libs to be packaged before being able to completely package Pinax. This packages will form the &#8220;depends&#8221; line of Pinax itself.</p>
<p>Looking carefully, the first one is named django_extensions, but really the name should be &#8220;django-extensions&#8221;, and you can find the project with the not intuitive name of &#8220;django-commandline-extensions&#8221; <a title='Original Link: http://code.google.com/p/django-command-extensions/'  href="http://www.lbotti.net/blog/?qJ3QnbdI" target="_blank">here</a> at googlecode.</p>
<p>Ok, let&#8217;s see the spec file:</p>
<blockquote><p>%{!?python_sitelib: %define python_sitelib %(%{__python} -c &#8220;from distutils.sysconfig import get_python_lib; print get_python_lib()&#8221;)}</p>
<p>Name:           django-extensions<br />
Version:        0.4.1<br />
Release:        1%{?dist}<br />
Summary:        Django command line extensions</p></blockquote>
<p>Up to this point, standard stuff. The {?dist} should stand for &#8220;current distribution&#8221;, so it will end in a &#8220;fc11&#8243; package.</p>
<blockquote><p>Group:          Development/Languages<br />
License:        BSD<br />
URL:            http://code.google.com/p/django-command-extensions/<br />
Source0:        %{name}-%{version}.tar.gz<br />
Source1:        %{name}-docs-%{version}.tar.gz</p></blockquote>
<p>The Group is standard for Python / Django libraries. License is taken from the project&#8217;s homepage, source is the standard .tar.gz file which is downloaded from the front page of the project. Source1 is extracted from the <a title='Original Link: http://github.com/django-extensions/django-extensions/tree/master'  href="http://www.lbotti.net/blog/?WXOwTwJJ" target="_blank">github</a> 0.4.1 tag of the project and contains just the documentation to be built.</p>
<blockquote><p>BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)</p>
<p>BuildArch:      noarch<br />
BuildRequires:  python-devel python-sphinx<br />
Requires:       Django</p>
<p>%description<br />
This is a repository for collecting global custom management extensions<br />
for the Django Framework</p></blockquote>
<p>The buildroot path is standard, arch is noarch (just python code&#8230;), the build requires gets the addition of <a title='Original Link: http://sphinx.pocoo.org/'  href="http://www.lbotti.net/blog/?UJUcmz33" target="_blank">python-sphinx</a> (python documentation generator) which, at buildtime, generates html documentation from .rst files. Obviously runtime requirements are Django, while the description is a copy and paste from the project home page.</p>
<blockquote><p>%package doc<br />
Summary:        Documentation for django-extensions<br />
Group:          Documentation<br />
Requires:       %{name} = %{version}-%{release}<br />
Provides:       %{name}-docs = %{version}-%{release}<br />
Obsoletes:      %{name}-docs &lt; %{version}-%{release}</p>
<p>%description doc<br />
This package contains the documentation for the django-extension library</p></blockquote>
<p>Wait a minute, what is this? Exactly, we are building not one but two packages. One for code, one for doc.</p>
<blockquote><p>%prep<br />
%setup -q -n %{name}-%{version}<br />
%setup -a 1</p></blockquote>
<p>Ok, now things become interesting. According to both the <a title='Original Link: http://docs.fedoraproject.org/drafts/rpm-guide-en/ch21s02.html'  href="http://www.lbotti.net/blog/?mc7Hmlsx" target="_blank">Fedora Project RPM Guide</a> and the <a title='Original Link: http://www.rpm.org/max-rpm-snapshot'  href="http://www.lbotti.net/blog/?9kuJskde">Maximum RPM</a> book on rpm.org, the above section reads as: prepare environment; extract first source file silently in a directory named $name-$version (e.g. django-extension-0.4.1), then extract the second source file after changing directory to the newly created directory. This is necessary because I compressed just the docs directory level in the git-donwloaded file.</p>
<blockquote><p>%build<br />
%{__python} setup.py build</p>
<p>%install<br />
rm -rf $RPM_BUILD_ROOT<br />
%{__python} setup.py install -O1 &#8211;skip-build &#8211;root $RPM_BUILD_ROOT</p>
<p>(cd docs &amp;&amp; make html)</p></blockquote>
<p>All this stuff comes standard creating an empty python spec file, apart from the last line, which builds the html documentation. This is suggested also by Django spec file (go get it with a yumdownloader &#8211;source Django and rpm -ivh the src.rpm).</p>
<blockquote><p>%clean<br />
rm -rf $RPM_BUILD_ROOT</p>
<p>%files<br />
%defattr(-,root,root,-)<br />
%{python_sitelib}/*</p></blockquote>
<p>Standard stuff again.</p>
<blockquote><p>%files doc<br />
%doc docs</p></blockquote>
<p>doc packages files</p>
<blockquote><p>%changelog<br />
* Sun Aug 23 2009 Luca Botti &lt;lucabotti&#8230;fedoraproject.org&gt;<br />
- Initial RPM Release</p></blockquote>
<p>changelog description.</p>
<p>This file is uploaded at my <a title='Original Link: http://lucabotti.fedorapeople.org/'  href="http://www.lbotti.net/blog/?8SAQd_pX" target="_blank">fedorapeople.org</a>&#8216;s address and is submitted in bugzilla for review <a title='Original Link: https://bugzilla.redhat.com/show_bug.cgi?id=518857'  href="http://www.lbotti.net/blog/?J9ZWySOK" target="_blank">here</a>. I am waiting for sponsorship. Thanks.</p>
<p>More packages will follow. Stay tuned.</p>
  
<div class="wp_license">
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img src="http://i.creativecommons.org/l/by-sa/3.0//88x31.png" alt="Creative Commons Attribution-ShareAlike 3.0 Unported" class="alignleft" style="margin-top:4px;" />
</a>This work  is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported</a>.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.lbotti.net/blog/2009/08/24/pinax-dependencies/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
