[Cluster-devel] [RFC] make rpm and make srpm for master branches (call for votes ;))

Fabio M. Di Nitto fdinitto at redhat.com
Mon Jun 22 05:22:54 UTC 2009


Hi all,

the patch in attachment adds $subject to cluster.git master branch as a
PoC.

The spec file that we are adding at this point in time is "simple".
By simple I mean that it doesn't handle upgrades from STABLE3 rpm yet
(it will once the whole split tree is converted to autotools and will
have rpm targets) and it does assume and install bits as you were
downloading rpm from any fedora repository. AKA no custom prefixes or
path are supported (I don't plan to add them either as they introduce a
level of complexity I am not sure we even care to handle).
The versioning of the package is basic and needs to improve to include
information such as git commit and set alpha tags. This is just a PoC
for now, so keep that in mind.

I strongly believe this change will have different positive effects:

1) people developing bits higher up in the split tree (for example
gfs2-utils), will not be required to build, install and manually keep
updated the dependency trees (at least the process is highly simplified
for them).

2) we will have spec files ready for review for F13.

3) people that want to remove bits, will be able to do it easily with
rpm instead of manual rm of files or have to remember to run make
uninstall.

4) upgrades from git trees in high development phase won't leave
leftovers on the system because rpm will do the right thing for them.

5) at somepoint we might be able to generate new rpm in an automatic
fashion either on a daily or per commit base.

Possible cons:

1) the spec file needs to be updated as changes go in the tree. This
could be a little bit of overhead but for experience I know is minimal.

2) in order to use the make rpm/srpm targes, more developer tools are
required on the system (note that those targets are NOT invoked by
default. So you need those tools only if you want to build rpm).

How to use it (assuming you have the default set of autotools
installed):

yum install fedora-packager (to pull in all rpmbuild bits or make sure
to have rpmbuild and git installed)

cd cluster
./autogen.sh && ./configure
(note that no options are required to configure)
make rpm (or srpm)

building the rpm _could_ fail if the rpm build dependencies are missing
(but so would building from the git tree). Nothing I can automate
here...

the results will be stored in the git tree directory:

.build-....log contains the full build log
x86_64/ contains the RPM (or i586 or..)
cluster-$(VERSION).tar.gz is the source tarball at that specific point
in time
cluster-$(VERSION)...src.rpm is the srpm of course.
cluster-$(VERSION)/ directory contains the build tree/objects from the
rpm build process. Useful to investigate failures.

NOTE that none of those bits are part of any make clean target.

Please let me know if we should keep moving on this front, or just skip
it.

Cheers
Fabio
-------------- next part --------------
A non-text attachment was scrubbed...
Name: spec.diff
Type: text/x-patch
Size: 7430 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/cluster-devel/attachments/20090622/30e61fb3/attachment.bin>


More information about the Cluster-devel mailing list