<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>
<channel>
	<title>G-Loaded Journal &#187; RPM</title>
	<atom:link href="http://www.g-loaded.eu/tag/rpm/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.g-loaded.eu</link>
	<description>An open-source software and technology related journal</description>
	<lastBuildDate>Mon, 05 Dec 2011 19:55:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
		<item>
		<title>Running supervisor 3 on CentOS 5</title>
		<link>http://www.g-loaded.eu/2011/05/12/running-supervisor-3-on-centos-5/</link>
		<comments>http://www.g-loaded.eu/2011/05/12/running-supervisor-3-on-centos-5/#comments</comments>
		<pubDate>Thu, 12 May 2011 04:56:52 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[RHEL]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[Servers]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2263</guid>
		<description><![CDATA[It&#8217;s been a long time since the last time I checked the available software for managing long running processes. Software in this particular area has evolved and, after some research and testing on a virtual machine, I tried to install supervisord in a CentOS 5.6 box. Unfortunately, no RPM package exists for the latest 3.X [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long time since the last time I checked the available software for managing long running processes. Software in this particular area has evolved and, after some research and testing on a virtual machine, I tried to install <a href="http://supervisord.org/">supervisord</a> in a CentOS 5.6 box. Unfortunately, no RPM package exists for the latest 3.X version, so I decided to go through the procedure to rebuild the <em>supervisor RPM</em> from the Fedora development tree, since v3.X has some really cool features I cannot do without.<br />
<span id="more-2263"></span><br />
If you haven&#8217;t built an RPM package before, you will need to go through a simple procedure in order to <a href="http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/">prepare an RPM building environment</a>. It is highly recommended that you build your packages in a separate box, dedicated to this kind of work, and also use a typical user and not <em>root</em> for building. So, let&#8217;s get the source RPM of <strong>supervisord</strong> from a Fedora Rawhide mirror:</p>
<pre class="console">
wget ftp://ftp.cc.uoc.gr/mirrors/linux/fedora/linux/development/rawhide/source/SRPMS/supervisor-3.0-0.4.a10.fc16.src.rpm
</pre>
<p>The simplest way to build an RPM for our CentOS release is to use the <code>--rebuild</code> option of <code>rpmbuild</code>:</p>
<pre class="console">
rpmbuild --rebuild supervisor-3.0-0.4.a10.fc16.src.rpm
</pre>
<p>Wait a few seconds for it to finish and then your binary RPM package will be in <code>~/&lt;your_building_env&gt;/RPMS/...</code>. </p>
<p>To satisfy dependencies, you will also need the package <strong>python-meld3</strong>. So, download and rebuild it:</p>
<pre class="console">
wget ftp://ftp.cc.uoc.gr/mirrors/linux/fedora/linux/development/rawhide/source/SRPMS/python-meld3-0.6.7-4.fc16.src.rpm
rpmbuild --rebuild python-meld3-0.6.7-4.fc16.src.rpm
</pre>
<p>Having built RPM packages for <strong>supervisor</strong> and <strong>python-meld3</strong>, you can now transfer them to a testing box and install them:</p>
<pre class="console">
yum localinstall /path/to/supervisor.rpm /path/to/python-meld3
yum install python-elementtree
</pre>
<p>We also installed <strong>elementtree</strong> as this is a dependency missing from the supervisor spec file (note to self: file a bug report).</p>
<p>Finally, try to start supervisord:</p>
<pre class="console">
/etc/init.d/supervisord start
</pre>
<p>Surprisingly, it complains about the missing elementtree!</p>
<pre class="codesnp">
Starting supervisord: Traceback (most recent call last):
  File "/usr/bin/supervisord", line 5, in ?
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 2479, in ?
    working_set.require(__requires__)
  File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 585, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 483, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: elementtree
</pre>
<p>Checking the requirements file at: <code>/usr/lib/python2.4/site-packages/supervisor-3.0a10-py2.4.egg-info/requires.txt</code> there are no special version requirements:</p>
<pre class="codesnp">
meld3 >= 0.6.5
elementtree
[iterparse]
cElementTree >= 1.0.2
</pre>
<p>After some investigation on the supervisor-users mailing list, I found a message that <a href="http://lists.supervisord.org/pipermail/supervisor-users/2007-October/000106.html">indicated</a> that <em>setuptools.setup()</em> should be used instead of <em>distutils.core.setup()</em> in the <strong>setup.py</strong> script.</p>
<p>So, the dependency resolution depends on the way the package has been installed! I didn&#8217;t even bother to patch setup.py&#8230; Knowing that the dependencies are correctly installed, I commented out the <code>elementtree</code> line and also the <code>meld3</code> line as this caused the same error.</p>
<p>So, my <code>/usr/lib/python2.4/site-packages/supervisor-3.0a10-py2.4.egg-info/requires.txt</code> file looks like this:</p>
<pre class="codesnp">
#meld3 >= 0.6.5
#elementtree
[iterparse]
cElementTree >= 1.0.2
</pre>
<p>Now supervisor starts without errors:</p>
<pre class="console">
# /etc/init.d/supervisord start
Starting supervisord:                                      [  OK  ]
# cat /var/log/supervisor/supervisord.log
2011-05-12 02:56:08,221 CRIT Supervisor running as root (no user in config file)
2011-05-12 02:56:08,267 INFO RPC interface 'supervisor' initialized
2011-05-12 02:56:08,267 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2011-05-12 02:56:08,271 INFO daemonizing the supervisord process
2011-05-12 02:56:08,272 INFO supervisord started with pid 21337
</pre>
<p>This is what it takes to run <strong>supervisord 3</strong> in CentOS 5 or RHEL 5. If you have any comments and suggestions, please let me know in the comments below.</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2011/05/12/running-supervisor-3-on-centos-5/">Running supervisor 3 on CentOS 5</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2009/12/18/high-cpu-usage-centos-guest-virtualbox-vmware/" rel="bookmark">High CPU usage while running CentOS as guest on Virtualbox or VMware</a></li>
<li><a href="http://www.g-loaded.eu/2009/04/07/sticking-with-centos-rpmforge-and-yum-priorities-for-now/" rel="bookmark">Sticking with CentOS, RPMforge and yum-priorities for now</a></li>
<li><a href="http://www.g-loaded.eu/2009/04/09/yum-priorities-configuration-for-a-centos-desktop/" rel="bookmark">YUM-Priorities Configuration for a CentOS Desktop</a></li>
<li><a href="http://www.g-loaded.eu/2011/02/28/awaiting-centos-6/" rel="bookmark">Awaiting CentOS 6</a></li>
<li><a href="http://www.g-loaded.eu/2006/11/20/my-running-dog/" rel="bookmark">My running dog</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2011/05/12/running-supervisor-3-on-centos-5/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>RHEL kernel source released with patches already applied</title>
		<link>http://www.g-loaded.eu/2011/03/02/rhel-kernel-source-released-with-patches-already-applied/</link>
		<comments>http://www.g-loaded.eu/2011/03/02/rhel-kernel-source-released-with-patches-already-applied/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 14:06:00 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Red Hat]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[Scientific Linux]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2183</guid>
		<description><![CDATA[Red Hat used to release its kernel SRPM package including a tarball of the vanilla kernel sources and a set of custom patches. This made it possible to rebuild the kernel with or without patches or with a custom selection of patches. It seems that things have changed and Red Hat now releases the Red [...]]]></description>
			<content:encoded><![CDATA[<p>Red Hat used to release its kernel SRPM package including a tarball of the vanilla kernel sources and a set of custom patches. This made it possible to rebuild the kernel with or without patches or with a custom selection of patches. It seems that things have changed and Red Hat now releases the Red Hat Enterprise Linux kernel source already patched. This basically makes things less flexible for those who wish to apply a custom selection of Red Hat patches to the vanilla kernel source or build upon Red Hat&#8217;s patches and create derivative works.<br />
<span id="more-2183"></span><br />
It is quite clear why Red Hat makes this move. It doesn&#8217;t want to provide its work on the kernel free of cost to those companies that make commercial rebuilds (see Oracle Enterprise Linux). I won&#8217;t try to criticize this move because I don&#8217;t see any valid reason for criticizing this business decision. Personally, I don&#8217;t think it complicates things more for <a href="http://centos.org/">CentOS</a> and <a href="https://www.scientificlinux.org/">Scientific Linux</a>, since there is no kernel development taking place in these projects. On the other hand, it might have a negative impact on any cooperation on the kernel development among the various Linux distributions.</p>
<p>There is an <a href="http://lwn.net/Articles/430098/">ongoing discussion</a> about it at LWN you might find interesting.</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2011/03/02/rhel-kernel-source-released-with-patches-already-applied/">RHEL kernel source released with patches already applied</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2005/12/14/the-complete-fedora-kernel-headers/" rel="bookmark">The Complete Fedora Kernel Headers</a></li>
<li><a href="http://www.g-loaded.eu/2005/12/20/build-a-single-native-kernel-module/" rel="bookmark">Build a single native kernel module</a></li>
<li><a href="http://www.g-loaded.eu/2010/04/16/software-that-detects-violations-of-open-source-licenses/" rel="bookmark">Software that detects violations of open source licenses</a></li>
<li><a href="http://www.g-loaded.eu/2006/09/09/kernel-2617-and-lirc_gpio-driver/" rel="bookmark">Kernel 2.6.17 and lirc_gpio driver</a></li>
<li><a href="http://www.g-loaded.eu/2005/12/15/get-my-kernel-headers-script/" rel="bookmark">Get my kernel headers script</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2011/03/02/rhel-kernel-source-released-with-patches-already-applied/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Manually Prepare the RPM Building Environment</title>
		<link>http://www.g-loaded.eu/2009/04/24/manually-prepare-the-rpm-building-environment/</link>
		<comments>http://www.g-loaded.eu/2009/04/24/manually-prepare-the-rpm-building-environment/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 09:43:48 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Compiling]]></category>
		<category><![CDATA[RPM]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/?p=1088</guid>
		<description><![CDATA[About three years ago I had posted a general guide on how to create RPM packages. According to that guide the RPM building environment was prepared using the handy utility rpmdev-setuptree (part of the rpmdevtools package in Fedora). This post describes the manual preparation of the RPM building environment. As an unprivileged user create the [...]]]></description>
			<content:encoded><![CDATA[<p>About three years ago I had posted a general guide on <a href="http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/">how to create RPM packages</a>. According to that guide the RPM building environment was prepared using the handy utility <strong>rpmdev-setuptree</strong> (part of the <strong>rpmdevtools</strong> package in Fedora). This post describes the <strong>manual preparation</strong> of the RPM building environment.<br />
<span id="more-1088"></span><br />
As an <strong>unprivileged user</strong> create the following directory tree:</p>
<pre class="console">
mkdir ~/rpmbuild \
    ~/rpmbuild/BUILD \
    ~/rpmbuild/RPMS \
    ~/rpmbuild/SOURCES \
    ~/rpmbuild/SPECS \
    ~/rpmbuild/SRPMS
</pre>
<p>Now, create the file <strong>~/.rpmmacros</strong> and put the following <strong>basic macros</strong> in it:</p>
<pre class="codesnp">
%_topdir      %(echo $HOME)/rpmbuild
%_smp_mflags  -j3
%__arch_install_post   /usr/lib/rpm/check-rpaths   /usr/lib/rpm/check-buildroot
</pre>
<p>The <strong>%_topdir</strong> macro is set to the path of the root directory of your RPM building environment, <code>/home/[user]/rpmbuild</code> in this case.</p>
<p>The <strong>%_smp_mflags</strong> macro usually contains only the <strong>-j</strong> (<strong>&#8211;jobs</strong>) option for the <strong>make</strong> command, which defines the number of jobs (<em>make</em> commands) that may run simultaneously. Usually, this is set to the number of CPU cores plus one. So, on a dual core CPU, the smp flags are set to <strong>-j3</strong>.</p>
<p>The <strong>%__arch_install_post</strong> macro contains various checks that should be run on the files in the BUILDROOT location. I trust Fedora guys and use the defaults <em>check-rpaths</em> and <em>check-buildroot</em> on Fedora and CentOS. This macro is optional.</p>
<p>All macros that are set in <strong>~/.rpmmacros</strong> <em>override</em> the <strong>system-wide macros</strong> that have been set in other locations. To check which paths are checked for macro files, enter the following command:</p>
<pre class="console">
rpm --showrc | grep macrofiles
</pre>
<p>The following command shows the current configuration for RPM building:</p>
<pre class="console">
rpm --showrc
</pre>
<p>All the available macros can be found in <strong>/usr/lib/rpm/macros</strong>.</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2009/04/24/manually-prepare-the-rpm-building-environment/">Manually Prepare the RPM Building Environment</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/" rel="bookmark">How To Build RPM Packages on Fedora</a></li>
<li><a href="http://www.g-loaded.eu/2007/02/21/chroot-environment-howto/" rel="bookmark">chroot Environment Howto</a></li>
<li><a href="http://www.g-loaded.eu/2006/09/10/spec-file-directory/" rel="bookmark">SPEC File Directory</a></li>
<li><a href="http://www.g-loaded.eu/2011/05/12/running-supervisor-3-on-centos-5/" rel="bookmark">Running supervisor 3 on CentOS 5</a></li>
<li><a href="http://www.g-loaded.eu/2005/12/20/build-a-single-native-kernel-module/" rel="bookmark">Build a single native kernel module</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2009/04/24/manually-prepare-the-rpm-building-environment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>YUM-Priorities Configuration for a CentOS Desktop</title>
		<link>http://www.g-loaded.eu/2009/04/09/yum-priorities-configuration-for-a-centos-desktop/</link>
		<comments>http://www.g-loaded.eu/2009/04/09/yum-priorities-configuration-for-a-centos-desktop/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 22:06:57 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[YUM]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/?p=1028</guid>
		<description><![CDATA[When it comes to software for your CentOS installation, there is no such thing as a good yum configuration, but a configuration that can bring you the software you need, while, at the same time, causing the least possible trouble regarding core package upgrades. This small article goes into the details of configuring YUM using [...]]]></description>
			<content:encoded><![CDATA[<p>When it comes to software for your CentOS installation, there is no such thing as a <em>good yum configuration</em>, but a configuration that can bring you the software you need, while, at the same time, causing the least possible trouble regarding core package upgrades. This small article goes into the details of configuring YUM using the <strong>yum-priorities</strong> plugin. I use the following yum configuration on my desktop running CentOS 5.3 (at the moment of writing), but i do not mean to advertise specific 3rd party repositories and undervalue the rest. I mainly focus on setting priorities for them, so to avoid the trouble later.<br />
<span id="more-1028"></span><br />
First of all, some notes about the <strong>yum-priorities</strong> plugin and why it is important. By default, YUM installs or upgrades the latest version of an RPM package, regardless of the repository it (the package) exists in. This is normal and complies with yum&#8217;s role, which is to update your system with newer versions of software. But, this behavior could easily result in many core packages being overridden by 3rd party RPMs. This may not seem like trouble at first, but there is high probability that, when you upgrade your system at a later time, the upgrade procedure might get stuck because of dependency issues. These issues might even happen to the packages of the same repository. So, imagine how easy it is to happen to packages created by two or more different vendors and how difficult the resolution might be in the latter case. Mixing different yum repositories avoiding as much dependency-related trouble as possible is what yum-priorities does. Here is the official description of the plugin:</p>
<blockquote><p>
This plugin allows repositories to have different priorities. Packages in a repository with a lower priority can&#8217;t be overridden by packages from a repository with a higher priority even if repo has a later version.
</p></blockquote>
<p>Here follows my yum repositories configuration:</p>
<pre class="codesnp">
# Custom builds
[local-rpms]
name=Local Yum Repository
baseurl=ftp://192.168.0.70/pub/linux/centos/$releasever/$basearch/
enabled=1
gpgcheck=0
#gpgkey=
priority=1
# core packages
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=10
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=10
#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=10
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=10
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=20
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=20
[adobe-linux-i386]
name=Adobe Systems Incorporated
baseurl=http://linuxdownload.adobe.com/linux/i386/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
priority=30
# Name: RPMforge RPM Repository for Red Hat Enterprise 5 - dag
# URL: http://rpmforge.net/
[rpmforge]
name = Red Hat Enterprise $releasever - RPMforge.net - dag
#baseurl = http://apt.sw.be/redhat/el5/en/$basearch/dag
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
priority=40
</pre>
<p>Here are some notes:</p>
<ul>
<li>A repository&#8217;s priority is rated like this:<em> the smaller the priority number, the higher the priority of the repository</em>. Packages from a specific repository cannot override (upgrade) packages of a repository with higher priority (smaller priority number).</li>
<li>In the above setup, the repository with the highest priority is my <strong>Local RPM repository</strong>. This repo contains custom builds of packages. <em>Custom builds</em> means that I have enabled or disabled specific compilation-time switches or that I have used a patch that is not yet used in the mainstream package. Usually, when I create custom builds of RPMs, I know what I am doing and, of course, I do not want my custom RPMs to be overridden by packages from other repositories, even official ones. So, this repository has the highest priority (<strong>priority=1</strong>).</li>
<li><strong>base</strong>, <strong>updates</strong>, <strong>addons</strong>, <strong>extras</strong> are the official CentOS repositories and they all have <strong>priority 10</strong>.</li>
<li>As you can see in the above setup, <strong>centosplus</strong> and <strong>contrib</strong> repositories are not enabled. However, I have set a priority number that is between (<strong>priority=20</strong>) the priority number of the official repositories and the priority number of the 3rd party repositories.</li>
<li>Next comes <strong>Adobe</strong>&#8216;s yum repository (<strong>priority=30</strong>) and finally <strong>RPMforge</strong> (<strong>priority=40</strong>). These are both <em>3rd party repositories</em>. I highly recommend that you choose your 3rd party repositories carefully and set their priorities wisely. I would also advise against setting the same priority on two or more 3rd party repositories, unless you are 100% certain that they complement each other. If I ever use any other 3rd party repository, it will get a priority higher than 40 and so on.</li>
</ul>
<p>So, this is how I have configured priorities on yum repositories at the moment. Note that this configuration is used on my desktop. On my Xen Dom0 and the four DomUs, which by the way all run CentOS, I use EPEL instead of RPMforge. Remember, it&#8217;s your own software needs that govern the use of 3rd party repositories.</p>
<p>Your feedback is welcome.</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2009/04/09/yum-priorities-configuration-for-a-centos-desktop/">YUM-Priorities Configuration for a CentOS Desktop</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2009/04/07/sticking-with-centos-rpmforge-and-yum-priorities-for-now/" rel="bookmark">Sticking with CentOS, RPMforge and yum-priorities for now</a></li>
<li><a href="http://www.g-loaded.eu/2005/12/11/local-yum-repository/" rel="bookmark">Local YUM Repository</a></li>
<li><a href="http://www.g-loaded.eu/2009/10/05/fedora-server-vs-centos/" rel="bookmark">Fedora Server vs CentOS</a></li>
<li><a href="http://www.g-loaded.eu/2011/05/12/running-supervisor-3-on-centos-5/" rel="bookmark">Running supervisor 3 on CentOS 5</a></li>
<li><a href="http://www.g-loaded.eu/2007/10/19/zim-a-desktop-wiki/" rel="bookmark">Zim &#8211; a Desktop Wiki</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2009/04/09/yum-priorities-configuration-for-a-centos-desktop/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Sticking with CentOS, RPMforge and yum-priorities for now</title>
		<link>http://www.g-loaded.eu/2009/04/07/sticking-with-centos-rpmforge-and-yum-priorities-for-now/</link>
		<comments>http://www.g-loaded.eu/2009/04/07/sticking-with-centos-rpmforge-and-yum-priorities-for-now/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 14:14:22 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[RHEL]]></category>
		<category><![CDATA[RPM]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/?p=1018</guid>
		<description><![CDATA[Having spent some days with CentOS on my desktop and having tried several 3rd party RPM repositories, I&#8217;ve finally decided to mix the official repos (base, updates, addons, extras) with RPMforge and also make use of the priorities yum plugin. Read on if you care about the details&#8230; My initial effort involved using EPEL and [...]]]></description>
			<content:encoded><![CDATA[<p>Having spent some days with <a href="http://centos.org/">CentOS</a> on my desktop and having tried several 3rd party RPM repositories, I&#8217;ve finally decided to <strong>mix</strong> the official repos (<em>base</em>, <em>updates</em>, <em>addons</em>, <em>extras</em>) with <a href="http://rpmforge.net/">RPMforge</a> and also make use of the <em>priorities</em> yum plugin. Read on if you care about the details&#8230;<br />
<span id="more-1018"></span><br />
My initial effort involved using <a href="http://fedoraproject.org/wiki/EPEL">EPEL</a> and <a href="http://rpmfusion.org/">RPMfusion</a>, which contains stuff that does not &#8220;fit&#8221; into EPEL and, of course, is built on top of EPEL. What I like about EPEL is the fact that RPMs are being built using Fedora&#8217;s <a href="http://fedoraproject.org/wiki/Packaging/Guidelines">RPM packaging standards</a>, which I can say, from my 4 year experience with Fedora, results in very high quality RPMs. Currently, the problem with the <em>EPEL+RPMfusion</em> combination is that the number of the available packages for <em>Red Hat Enterprise Linux</em> (RHEL) and its compatible distributions <em>CentOS</em> and <em>Scientific Linux</em> (SL) is rather limited when compared to the number of the available RPMs in the RPMforge repository.</p>
<p>While using EPEL+RPMfusion I tried to rebuild several Fedora SRPMs for use in CentOS. Many of them were built without dependency issues, but soon I came to a dead-end with some packages (also known as <em>Dependency Hell</em>&trade;) which required me to upgrade some core CentOS packages which in turn required the upgrade of some other core packages, which is generally considered a <em>Very Bad Thing</em>&trade; to do. This was an expected thing to happen, since Fedora uses newer versions of software than RHEL. Also, this somehow reminded me the reason why I had switched to CentOS; <em>spending the least possible time hacking around the operating system</em>, that is. So, I quickly abandoned EPEL and RPMfusion. I liked the idea behind that effort though, so it won&#8217;t be a surprise if you find me in #epel.</p>
<p>Having read the above two paragraphs, one might think that I somehow do not value RPMforge as much as EPEL. This is not correct. While EPEL sticks to the Fedora procedures, thus leaving almost no room for collaboration with other 3rd party repositories, RPMforge is the result of the collaborative work of some well-known RPM <a href="https://rpmrepo.org/RPMforge/FAQ">packagers</a> for RHEL and compatible linux distributions and also provides high quality RPMs. BTW, there are times that I prefer projects driven by a small community rather than a very big one, such as the Fedora Community.</p>
<p>Apart from the above repositories, I also use <a href="http://www.adobe.com/">Adobe</a>&#8216;s yum repository for the <em>Flash</em> plugin and the official <em>Open Office</em> RPM distribution (excluding JRE) from <a href="http://openoffice.org">OpenOffice.org</a>.</p>
<p>So, I&#8217;ve found myself happy with CentOS and I think I&#8217;ll stick with it for a while. Hopefully, not having to deal with so many bugs like it happened in Fedora will leave me with some more free time to get some things done in my <a href="http://www.codetrax.org/">own open-source projects</a> or contribute to other projects.</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2009/04/07/sticking-with-centos-rpmforge-and-yum-priorities-for-now/">Sticking with CentOS, RPMforge and yum-priorities for now</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2009/04/09/yum-priorities-configuration-for-a-centos-desktop/" rel="bookmark">YUM-Priorities Configuration for a CentOS Desktop</a></li>
<li><a href="http://www.g-loaded.eu/2011/02/28/awaiting-centos-6/" rel="bookmark">Awaiting CentOS 6</a></li>
<li><a href="http://www.g-loaded.eu/2009/10/05/fedora-server-vs-centos/" rel="bookmark">Fedora Server vs CentOS</a></li>
<li><a href="http://www.g-loaded.eu/2011/05/12/running-supervisor-3-on-centos-5/" rel="bookmark">Running supervisor 3 on CentOS 5</a></li>
<li><a href="http://www.g-loaded.eu/2008/12/10/almost-saying-goodbye-to-innovation/" rel="bookmark">Almost saying goodbye to innovation</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2009/04/07/sticking-with-centos-rpmforge-and-yum-priorities-for-now/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>How to extract RPM or DEB packages</title>
		<link>http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/</link>
		<comments>http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 00:30:32 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[DEB]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Packaging]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[Shell]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/</guid>
		<description><![CDATA[RPM and DEB packages are both containers for other files. An RPM is some sort of cpio archive. On the other hand, a DEB file is a pure ar archive. So, it should be possible to unpack their contents using standard archiving tools, regardless of your distribution&#8217;s package format. Under normal conditions, you should use [...]]]></description>
			<content:encoded><![CDATA[<p>RPM and DEB packages are both containers for other files. An RPM is some sort of <strong>cpio</strong> archive. On the other hand, a DEB file is a pure <strong>ar</strong> archive. So, it should be possible to unpack their contents using standard archiving tools, regardless of your distribution&#8217;s package format. Under normal conditions, you should use your distribution&#8217;s standard package manager, <strong>rpm</strong> or <strong>dpkg</strong> and their frontends, to manage those files. But, if you need to be more generic, here is how to do it.<br />
<span id="more-482"></span></p>
<h4>RPM</h4>
<p>For RPMs you need two command line utilities, <strong>rpm2cpio</strong> and <strong>cpio</strong>. Extracting the contents of the RPM package is a <em>one step</em> process:</p>
<pre class="console">rpm2cpio mypackage.rpm | cpio -vid</pre>
<p>If you just need to list the contents of the package without extracting them, use the following:</p>
<pre class="console">rpm2cpio mypackage.rpm | cpio -vt</pre>
<p>The <strong>-v</strong> option is used in order to get verbose output to the stdout. If you don&#8217;t need it, you can safely omit this switch. For more information about the <code>cpio</code> options, please refer to the <code>cpio(1)</code> manual page.</p>
<h4>DEB</h4>
<p>DEB files are <em>ar archives</em>, which contain three files:</p>
<ul>
<li>debian-binary</li>
<li>control.tar.gz</li>
<li>data.tar.gz</li>
</ul>
<p>As you might have already guessed, the needed archived files exist in <code>data.tar.gz</code>. It is also obvious that unpacking this file is a <em>two-step</em> process.</p>
<p>First, extract the aforementioned three files from the DEB file (<strong>ar</strong> archive):</p>
<pre class="console">ar vx mypackage.deb</pre>
<p>Then extract the contents of <code>data.tar.gz</code> using <strong>tar</strong>:</p>
<pre class="console">tar -xzvf data.tar.gz</pre>
<p>Or, if you just need to get a <em>listing</em> of the files:</p>
<pre class="console">tar -tzvf data.tar.gz</pre>
<p>Again the <strong>-v</strong> option in both <strong>ar</strong> and <strong>tar</strong> is used in order to get verbose output. It is safe not to use it. For more information, read the man pages: <code>tar(1)</code> and <code>ar(1)</code>.</p>
<p><strike>If anyone knows a <em>one step process</em> to extract the contents of the <code>data.tar.gz</code>, I&#8217;d be very interested in it!</strike></p>
<p><strong>Update</strong></p>
<p>As Jon <a href="http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/comment-page-1/#comment-11671">suggested</a> in the comment area, the contents of data.tar.gz can be extracted from the DEB package in a one step process as shown below:</p>
<pre class="console">
ar p mypackage.deb data.tar.gz | tar zx
</pre>
<p>That will do it.</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/">How to extract RPM or DEB packages</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2007/12/01/choosing-a-format-for-data-backups-tar-vs-cpio/" rel="bookmark">Choosing a format for data backups &#8211; tar vs cpio</a></li>
<li><a href="http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/" rel="bookmark">How To Build RPM Packages on Fedora</a></li>
<li><a href="http://www.g-loaded.eu/2007/12/01/veritar-verify-checksums-of-files-within-a-tar-archive/" rel="bookmark">VeriTAR &#8211; Verify checksums of files within a TAR archive</a></li>
<li><a href="http://www.g-loaded.eu/2006/10/07/verify-a-burned-cddvd-image-on-linux/" rel="bookmark">Verify a burned CD/DVD image on Linux</a></li>
<li><a href="http://www.g-loaded.eu/2006/04/08/linux-tips-pack-i/" rel="bookmark">Linux Tips &#8211; Pack I</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>SPEC File Directory</title>
		<link>http://www.g-loaded.eu/2006/09/10/spec-file-directory/</link>
		<comments>http://www.g-loaded.eu/2006/09/10/spec-file-directory/#comments</comments>
		<pubDate>Sat, 09 Sep 2006 22:45:47 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Compiling]]></category>
		<category><![CDATA[Packaging]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2006/09/10/spec-file-directory/</guid>
		<description><![CDATA[I started packaging linux software for my Fedora machines from the time I was using Fedora Rawhide (development version) as my primary system. There is no repository that is synced with Rawhide, so there was a huge amount of software I had to compile (mostly multimedia related). This is a very time-consuming task, so I [...]]]></description>
			<content:encoded><![CDATA[<p>I started packaging linux software for my Fedora machines from the time I was using Fedora Rawhide (development version) as my primary system. There is no repository that is synced with Rawhide, so there was a huge amount of software I had to compile (mostly multimedia related). This is a very time-consuming task, so I decided to end it. Now, I use Base, Extras and Livna repos for my system updates and I vowed never to use a development distro release as my primary system again (mainly because of lack of free time and performance issues).</p>
<p>Anyway, I still package a bunch of RPMs for my systems. I decided to upload some of the spec files. These are available in <a href="http://www.g-loaded.eu/packages/specs/">this directory</a>. There are many more, but they need a bit of polishing.</p>
<p>Some notes:</p>
<ul>
<li>The nvidia-legacy spec file generates RPMs for the OpenGL libraries and the NVidia Legacy driver (for GF2 for example). These packages <strong>do not</strong> replace any core Fedora files. The official installation script from NVidia replaces some files and it should not be used.</li>
<li>These spec files are completely unsupported. Don&#8217;t send me emails about them, unless you find any mistakes in them. For information about building RPMs on Fedora refer to my relevant <a href="http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/">small article</a>.</li>
<li>The spec files are for software that does not exist in the repos mentioned above (except for kernel modules, for which I don&#8217;t wish to wait until Livna releases new versions). I haven&#8217;t submitted any of them to Extras or Livna because I don&#8217;t have the time to update them in time. The files comply with the Fedora packaging guidelines and naming schemes.</li>
<li>Dependencies in the alexandria and ruby-related spec files were updated by Leeksoup for FC5. I don&#8217;t use this software anymore, so I appreciate it :-)</li>
</ul>
<p>Packaging is art :-)</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2006/09/10/spec-file-directory/">SPEC File Directory</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2006/04/02/fedora-core-5/" rel="bookmark">Fedora Core 5</a></li>
<li><a href="http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/" rel="bookmark">How To Build RPM Packages on Fedora</a></li>
<li><a href="http://www.g-loaded.eu/2007/08/06/file-and-directory-diff-in-color-in-midnight-commander/" rel="bookmark">File and Directory diff in color in Midnight Commander</a></li>
<li><a href="http://www.g-loaded.eu/2006/02/20/gnome-214-rawhide-suse-and-more/" rel="bookmark">GNOME 2.14, Rawhide, SUSE and more&#8230;</a></li>
<li><a href="http://www.g-loaded.eu/2009/04/07/sticking-with-centos-rpmforge-and-yum-priorities-for-now/" rel="bookmark">Sticking with CentOS, RPMforge and yum-priorities for now</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2006/09/10/spec-file-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>How To Build RPM Packages on Fedora</title>
		<link>http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/</link>
		<comments>http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/#comments</comments>
		<pubDate>Wed, 05 Apr 2006 00:37:42 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Compiling]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Packaging]]></category>
		<category><![CDATA[RPM]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/</guid>
		<description><![CDATA[These are some general guidelines and notes in order to assist the adventurous first-time Fedora user to get started with RPM package building on Fedora Core.]]></description>
			<content:encoded><![CDATA[<p>These are some general guidelines and notes in order to assist the adventurous first-time Fedora user to get started with RPM package building.<br />
<span id="more-182"></span></p>
<h4>What Is An RPM Package?</h4>
<p>In simple terms, an <abbr title="Red Hat Package Manager">RPM</abbr> package is an advanced form of a container for other files. Generally, it includes:</p>
<ol>
<li>The program to be installed plus all the necessary files that accompany this program.</li>
<li>Information about the program and the RPM package itself.</li>
<li>Information about the program&#8217;s dependencies, which means info about what other software needs to be installed, so your program to function correctly in the system.</li>
<li>Information about potential conflicts between the program and other software that is currently installed in the system.</li>
<li>Actions that need to be performed when the program is installed/upgraded/removed.</li>
</ol>
<p>But, this is enough with the theory. For more information, refer to the links at the <em>Further Reading</em> section of this article.</p>
<h4>Prerequisites</h4>
<p>The following are needed in order to build RPM Packages.</p>
<ul>
<li>The development tools. All the utilities that are needed to compile a program, including the compiler itself.</li>
<li>A <abbr title="Specification File">SPEC</abbr> file for the particular program you want to create an RPM package for. A SPEC file contains all the information regarding the program&#8217;s details, its dependencies, the compilation options etc. For more info on writing SPEC files, refer to the links at the <em>Further Reading</em> section of this article.</li>
</ul>
<h4>Things You Need To Do Once</h4>
<p>There are a couple of thing you need to do before starting building your RPMs. These mainly include the installation of the core development tools and the creation of the building environment for your <em>user</em>.</p>
<p>Install the core development tools using <abbr title="YellowDog Updater Modified">YUM</abbr>. As <em>root</em>:</p>
<pre class="console"># yum groupinstall "Development Tools"</pre>
<p>Next, create the building environment for your user. Fortunately, Fedora includes some neat utilities that greatly simplify this procedure. First, use YUM to install them (as <em>root</em>):</p>
<pre class="console"># yum install rpmdevtools</pre>
<p>Then, create the directory structure in your home directory by issuing the command (as a user):</p>
<pre class="console">$ rpmdev-setuptree</pre>
<p>That&#8217;s it.</p>
<h4>Build That RPM!</h4>
<p>Provided that you have a SPEC file for your program, you can build the binary RPM package by issuing the command:</p>
<pre class="console">$ rpmbuild -bb --clean myprogram.spec</pre>
<p>If you need to build the package for a different architecture, you can set the <code>--target</code> option, like in the example below:</p>
<pre class="console">$ rpmbuild -bb --clean --target i686 myprogram.spec</pre>
<p>Please note that you should never build RPM packages using <em>root</em>.</p>
<h5>Dependencies</h5>
<p>Some programs may need additional development libraries in order to be compiled. You can use YUM to install these needed libraries (<code>-devel</code> packages) or programs. If the operation finishes succesfully, you&#8217;ll find your RPM package in the <code>~/rpmbuild/RPMS/</code> directory.</p>
<h4>Further Reading</h4>
<p>This small article&#8217;s goal was to get you started with art of RPM packaging by setting up the environment for RPM building. It&#8217;s a &quot;<em>Batteries Not Included!</em>&quot; article though. Information about how to write SPEC files is not available here. It would be pointless, as there are some excellent resources for this purpose. So, prepare for some real reading ladies and gentlemen:</p>
<ol>
<li><a href="http://fedora.redhat.com/docs/developers-guide/ch-rpm-building.html">Chapter 4. Building RPM Packages</a> of the <a href="http://fedora.redhat.com/docs/developers-guide/index.html">Fedora Core Developer&#8217;s Guide</a> by Tammy Fox, Havoc Pennington &#8211; General information about the SPEC file sections.</li>
<li><a href="http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/">Chapter 8. Creating RPMs: An Overview</a> of the <a href="http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/">RPM Guide</a> by Eric Foster-Johnson &#8211; In depth information about SPEC files.</li>
<li><a href="http://fedoraproject.org/wiki/Packaging/Guidelines">Packaging Guidelines</a> by <a href="http://fedoraproject.org/wiki/TomCallaway">Tom &#8216;spot&#8217; Callaway</a> &#8211; Information specific to writing SPEC files for Fedora Core.</li>
<li><a href="http://fedoraproject.org/wiki/Packaging/NamingGuidelines">Package Naming Guidelines</a> by <a href="http://fedoraproject.org/wiki/TomCallaway">Tom &#8216;spot&#8217; Callaway</a> &#8211; Information specific to Fedora RPM naming scheme.</li>
<li><a href="http://fedoraproject.org/wiki/Packaging/ScriptletSnippets">RPM scriptlet recipes</a> &#8211; Some extremely useful notes regarding the actions that need to be performed when a package is installed/upgraded/removed from the system, which should be included in the relevant sections of the SPEC file.</li>
<li><a href="http://www.rpm.org/max-rpm-snapshot/">Maximum RPM &#8211; Taking the RPM Package Manager to the Limit</a> &#8211; An excellent book about the RPM Package Manager, by Edward C. Bailey, Paul Nasrat, Matthias Saou, Ville Skyttä.</li>
</ol>
<h4>Changes</h4>
<dl>
<dt>Wed 23 Jan, 2008</dt>
<dd>This article has been updated to reflect the changes in the package names for rpmdevtools. The old package, named <code>fedora-rpmdevtools</code>, is now known as <code>rpmdevtools</code>. Also, the utility that sets up the initial rpmbuild directory tree is now called <code>rpmdev-setuptree</code> (old name was: <code>fedora-buildrpmtree</code>).</dd>
</dl>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/">How To Build RPM Packages on Fedora</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2005/12/20/build-a-single-native-kernel-module/" rel="bookmark">Build a single native kernel module</a></li>
<li><a href="http://www.g-loaded.eu/2006/09/10/spec-file-directory/" rel="bookmark">SPEC File Directory</a></li>
<li><a href="http://www.g-loaded.eu/2005/12/14/the-complete-fedora-kernel-headers/" rel="bookmark">The Complete Fedora Kernel Headers</a></li>
<li><a href="http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/" rel="bookmark">How to extract RPM or DEB packages</a></li>
<li><a href="http://www.g-loaded.eu/2005/10/11/the-road-to-alexandria/" rel="bookmark">The road to Alexandria&#8230;</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
	</channel>
</rss>

