HOWTO create RedHatish GNOME RPMs




Currently, I have been creating updated RPMs from released tarballs, I
haven't packaged anything from CVS.  Also, I'm using RedHat 6.0, I have no
idea if the RH released 5.2 RPMs have the exact same RH patches and
integration tweeks as RH 6.0.

When a new tarball gets released I go to work.

The first thing I do is go grab the stock RedHat 6.0 SRPM of that package,
my favorite location is:

ftp://ftp.cdrom.com/pub/linux/redhat/redhat-6.0/SRPMS/SRPMS/

I use a tool called "alien" to let me muck around with the SRPM without
having to install the SRPM.  "alien -t SRPM" will create a tgz of the SRPM
file that I can play with.

The easyiest senario is when there are no RedHat specific patches or
files.  You know this because in the SRPM there is only the ".spec" file
and the source tar.gz file.

Creating an updated RPM is quick and easy in this senario.  Just toss the
SPEC file into /usr/src/redhat/SPECS, and edit it.  There are basically 3
changes you make. Update the "%define ver" to the new version number, and
set the "%define rel" to 1.  And then go down to "%changelog" and add an
entry.  For example for the gtk/glib 1.2.3 updated RPM, I added this:

* Mon May 17 1999 Dax Kelson <dkelson@inconnect.com>
- version 1.2.3

Now that your spec file is updated, toss the new source tar.gz file into
/usr/src/redhat/SOURCES.

To create the new rpms type:

rpm -ba <SPECFILE>

After some crunching, your new binary RPM(s) will be in
/usr/src/redhat/RPMS/i386/, and the new source RPM in
/usr/src/redhat/SRPMS/.

Now, if when you looked in the stock RedHat 6.0 SRPM and found a bunch of
patches and/or other files this is when more work is involved.  You might
ask, why would there be any patches anyways?  Bug fixes, new
functionality, adding default configs, and RH "integration" are the main
reasons.

The main work involved is checking the source of the new package and
seeing if the patches are still applicable.  Often times many/all of the
bug fixes and new functionality patches (or a better equivalent) are now
part of the official source.  If this is the case, then you need to edit
the SPEC file and remove the reference to the patch.  Usually the patch is
defined near the top of the SPEC file, and down below there is the command
to apply the patch.  You need to remove the patch reference from both
locations.  If the RH patch isn't part of the new source, then you need to
see if it applies cleanly, if it does then toss the patch file into
/usr/src/redhat/SOURCES/.  If it doesn't, then you need to create a new
patch (or modify the old one) so that it does apply cleanly. When doing
this, be sure that you are correct.  If there were any included files (png
files, etc) toss those into /usr/src/redhat/SOURCES/ along with the new
source tar.gz file.  

Edit the 3 locations in the SPEC file and create the new RPM as described
above.

I hope this is usefull information to someone.  As always you can find the
updated RPMs that I've created at:

ftp://ftp.inconnect.com/pub/unix/linux/redhat-6.0/contrib-updates/

Dax Kelson
Internet Connect, Inc.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]