Building my first RPM

Tim Mooney Tim.Mooney at ndsu.edu
Thu Mar 12 16:56:31 UTC 2015


In regard to: Re: Building my first RPM, Blaxton said (at 5:17am on Mar 12,...:

> Is there a directive or command in .spec file to make python understand
> these libraries already exist ?

There are other ways to do this; it shouldn't really go in the Python
spec, since it's a property of the system, not a property of Python.

I don't know if the easiest way will work with rpm 3.0.x, but it's easy
so try it:  You likely already have an /etc/rpm directory on your
system, or perhaps it's somewhere else (/opt/etc/rpm or equivalent based
on how rpm was built).  In there, create a plain text file named "sysinfo"
with the exact text of the dependencies that RPM detects as missing, one
per line.  Once you've done that, try the install again.

If that doesn't work, it likely means that rpm 3.0.x didn't use the
sysinfo files like rpm 4.x and later do.

In that case, the best (and arguably the most elegant in any case) thing
to do is to create a "virtual" package that has no actual %files, but has
a bunch of

Provides: libfoo.a(some symbol)
Provides: libbar.a(something else)

Then build the package, and install it.  This package works like a bridge
between the libraries (and other things, like /bin/sh) provided by the
base OS and what RPM needs.  You can either do one package with all the
different OS components that RPM needs or you can split things up along
the natural package boundaries that the OS packaging tools (is it still
LPP?) provide.

On my OpenIndiana (Solaris-derivative) workstation, I chose to split
things on the OS packaging boundary, and I named each package with an
"openindiana-" at the start of the name, so I have things like:

openindiana-bzip2-1.0.6-5.11.0.151.1.8.x86_64
openindiana-cairo-1.10.2-5.11.0.151.1.9.x86_64
openindiana-cups-libs-1.4.2-5.11.0.151.1.8.x86_64
openindiana-curl-7.21.1-5.11.0.151.1.8.x86_64
openindiana-expat-2.1.0-5.11.0.151.1.8.x86_64
openindiana-filesystem-base-0.5.11-5.11.0.151.1.8.x86_64
openindiana-flac-1.2.1-5.11.0.151.1.8.x86_64

and so on installed.  I do enough packaging with RPM that I wrote a script
to query the OpenIndiana native packaging system (called IPS) and
auto-generate a spec file with everything I need in it.

Tim
-- 
Tim Mooney                                             Tim.Mooney at ndsu.edu
Enterprise Computing & Infrastructure                  701-231-1076 (Voice)
Room 242-J6, Quentin Burdick Building                  701-231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164


More information about the Rpm-list mailing list