[Python-Dev] Proposal -- makefile patches and scripts to generate python RPMs
Eric S. Raymond
esr@thyrsus.com
Wed, 4 Oct 2000 17:56:38 -0400
Jeremy Hylton <jeremy@beopen.com>:
> We are now distributing RPMs for RH 6 with Python and have plans to
> support other distributions we have access to, namely those available
> on the SF compile farm.
>
> This page has the RPMs:
> http://www.pythonlabs.com/products/python2.0/download_python2.0b2.html
>
> Can you compare this approach to using a hand-crafted .spec file for
> the RPMs? It took a little while to figure out how to generate the
> .spec, but now that it has been created it does not seem hard to
> maintain.
>
> I imagine, without knowing any details of what you propose, that this
> is primarily beneficial for people who do not know how to build RPMs.
Actually, the point of my approach is *not* to hand-craft the spec file.
What I normally do is write a specfile generator script in shell, which
takes the release version as an argument. Most of the point of the generator
script is so the file list part of the specfile never has to be handhacked.
So, for example, a specfile generator script for Python would know that for
each library file foo.py in the Python X.Y release tree, it needs to generate
a file entry /usr/lib/pythonX.Y/foo.py -- that way whenever a module is
added to the library it will automatically ripple through to the RPM.
Then I embed something like this in the Makefile:
# Make RPMs. You need to be root to make this work
RPMROOT=/usr/src/redhat
RPM = rpm
RPMFLAGS = -ba
rpm: dist
cp foo-$(VERSION).tar.gz foo.xpm $(RPMROOT)/SOURCES;
$(srcdir)/specgen.sh $(VERSION) >$(RPMROOT)/SPECS/foo.spec
cd $(RPMROOT)/SPECS; $(RPM) $(RPMFLAGS) foo.spec
cp $(RPMROOT)/RPMS/`arch|sed 's/i[4-9]86/i386/'`/foo*-$(VERSION)*.rpm $(srcdir)
cp $(RPMROOT)/SRPMS/foo*-$(VERSION)*.src.rpm $(srcdir)
Hey presto! Instant RPMs. I use this approach for several of my projects.
--
<a href="http://www.tuxedo.org/~esr/">Eric S. Raymond</a>
The most foolish mistake we could possibly make would be to permit
the conquered Eastern peoples to have arms. History teaches that all
conquerors who have allowed their subject races to carry arms have
prepared their own downfall by doing so.
-- Hitler, April 11 1942, revealing the real agenda of "gun control"