yum and rpm packaging

David Timms dtimms at iinet.net.au
Fri Oct 23 23:37:58 UTC 2009


On 10/24/2009 03:13 AM, Richard Ryniker wrote:
> A couple of years ago, I was so frustrated by multiple, failed attempts
> to build applications because some<your_name_here>-devel package had not
> been installed that I wrote a program to iterate over every installed
> package name and report any matching, uninstalled "-devel" package
> available in a repository.  After I told yum to install all those
...
1. you had serious overkill
2. if you didn't have the 'base' package installed, you still didn't get 
the needed -devel package installed to build your app.

RPM is about reproducible package building. To this end, it gives the 
opportunity to list both runtime and build time requirements. Usually an 
upstream author will (should) mention, in some text note, that to 
compile her program, install x,y,z

The .spec formalizes this. It doesn't help when that upstream note 
missed things.

The Fedora build systems (via mock) enforce this by preparing a chroot 
that contains only the build-requires written into the spec. If the 
package fails to build you haven't included all requires yet.

Additionally, if the package builds but didn't have some optional 
capabilities, then a build requires might be missing for that optional 
feature.

...
> One place useful information might be added, without risk of
> instability, is in package descriptions.  For example, F12 moved GNOME
> preferences for windows from the control-center package into a
> control-center-extra package.  If some pointer had been put into the
> description for control-center, users might have an easier time to
> learn this - especially if this sort of track were provided often so
> one easily learned to look for it.  (The F12 Release Notes lists
> control-center-extra, but says nothing about why it exists.)  If we
The RPM packager can already do this, by adding provides in the package. 
When a tool like yum whatprovides /x/y/z or a capability, the package 
that provides it is returned. Usually, the new package also provides an 
obsoletes (with version), to inform package managers that this new 
package takes over some roles of the original package.




More information about the fedora-test-list mailing list