Discussion:
Building rpms with make
Richard Siddall
2007-12-18 14:06:35 UTC
Permalink
I'm trying to automate building a set of RPMs for a yum repository and
am kicking around the idea of using 'make'.

I'm having trouble figuring out the generic RPM build rule. I'm
guessing that having the version and release numbers, and the
architecture encoded in the RPM name is going to complicate building
such a rule. Presumably it's not as simple as:

%.rpm : %.spec %.tar
rpmbuild -ba $*

Could someone point me at a makefile that does this kind of repo
management (i.e. builds dozens of RPMs from dozens of spec files)?

Regards,

Richard Siddall
Jeff Johnson
2007-12-18 14:24:27 UTC
Permalink
Post by Richard Siddall
I'm trying to automate building a set of RPMs for a yum repository and
am kicking around the idea of using 'make'.
I'm having trouble figuring out the generic RPM build rule. I'm
guessing that having the version and release numbers, and the
architecture encoded in the RPM name is going to complicate building
%.rpm : %.spec %.tar
rpmbuild -ba $*
Could someone point me at a makefile that does this kind of repo
management (i.e. builds dozens of RPMs from dozens of spec files)?
The fundamental problem is that make rules use a timestamp
on files to determine "newer". That's great for .c.o rules, but
insufficient to handle other side-effects.

PLD has been using CVS for building rpm packages since <2000,

Connectiva had a nice SVN package building repository ~2003.

Red Hat exposed there CVS system in Fedora ~2004.

(all dates from memory) I'm sure there are other systems.

Silly to reinvent square wheels imho.

73 de Jeff
Richard Siddall
2007-12-19 14:59:08 UTC
Permalink
Post by Jeff Johnson
PLD has been using CVS for building rpm packages since <2000,
Connectiva had a nice SVN package building repository ~2003.
Red Hat exposed there CVS system in Fedora ~2004.
Jeff,

Thanks. koji looks promising. I haven't found out much about the PLD
or Connectiva build systems yet, but I'm still looking.

Regards,

Richard Siddall
Tony Earnshaw
2007-12-19 16:25:18 UTC
Permalink
Richard Siddall skrev, o> Jeff Johnson wrote:

[...]
Post by Richard Siddall
Post by Jeff Johnson
Red Hat exposed there CVS system in Fedora ~2004.
s/there/their/g but never mind, I prefer "its" anyway, being Dutch and
conforming strongly to Dutch grammar conventions (no plurals where
singular is implied, no collective plurals allowed) :)
Post by Richard Siddall
Thanks. koji looks promising. I haven't found out much about the PLD
or Connectiva build systems yet, but I'm still looking.
What on earth is wrong with Cervisia, standard Gnome CVS frontend, which
is what I use on all FCs?

You still have to gen up on CVS, notwithstanding, but once done,
Cervisia is still the front end you'll need to use in Gnome.

--Tonni
--
Tony Earnshaw
Email: tonni at hetnet dot nl
Jeff Johnson
2007-12-19 16:38:49 UTC
Permalink
Post by Tony Earnshaw
[...]
Post by Richard Siddall
Post by Jeff Johnson
Red Hat exposed there CVS system in Fedora ~2004.
s/there/their/g but never mind, I prefer "its" anyway, being Dutch and
conforming strongly to Dutch grammar conventions (no plurals where
singular is implied, no collective plurals allowed) :)
Yah, noted by me, but too late to change. Years of typing in an IRC window
has destroyed my grammar.
Post by Tony Earnshaw
Post by Richard Siddall
Thanks. koji looks promising. I haven't found out much about the PLD
or Connectiva build systems yet, but I'm still looking.
What on earth is wrong with Cervisia, standard Gnome CVS frontend, which
is what I use on all FCs?
You still have to gen up on CVS, notwithstanding, but once done,
Cervisia is still the front end you'll need to use in Gnome.
Lots and lots of square wheels around, I certainly don't claim
to have a complete list.

73 de Jeff
Richard Siddall
2007-12-19 16:51:15 UTC
Permalink
Post by Tony Earnshaw
What on earth is wrong with Cervisia, standard Gnome CVS frontend, which
is what I use on all FCs?
You still have to gen up on CVS, notwithstanding, but once done,
Cervisia is still the front end you'll need to use in Gnome.
Well, I never mentioned CVS, or SVN. Or Gnome. Or Fedora. I just want
to build a set of RPMs for various distros as painlessly and efficiently
as possible.

As it happens, I am interested in doing (almost) daily repo updates out
of CVS. Although that may change to SVN at some point.

I just took a look at the contents page for the Cervisia manual, and it
doesn't mention RPM at all.

The RPMs happen to be of a mod_perl/HTML::Mason application and all the
supporting Perl modules.

Regards,

Richard.
Jeff Johnson
2007-12-19 17:07:25 UTC
Permalink
Post by Richard Siddall
Well, I never mentioned CVS, or SVN. Or Gnome. Or Fedora. I just want
to build a set of RPMs for various distros as painlessly and efficiently
as possible.
Yes. Look closely at how RH uses make.common. There are other
peripheral issues like tagging and fetching that are reasonably solved
in RH's make.common. I think PLD uses a build script, not make.
Connectiva's old build system likely does something elegant, perhaps
with make. Too bad Connectiva is no more ...

Sorry for not saying that explicitly.

73 de Jeff
Tony Earnshaw
2007-12-19 17:09:59 UTC
Permalink
Post by Richard Siddall
Post by Tony Earnshaw
What on earth is wrong with Cervisia, standard Gnome CVS frontend,
which is what I use on all FCs?
You still have to gen up on CVS, notwithstanding, but once done,
Cervisia is still the front end you'll need to use in Gnome.
Well, I never mentioned CVS, or SVN. Or Gnome. Or Fedora. I just want
to build a set of RPMs for various distros as painlessly and efficiently
as possible.
As it happens, I am interested in doing (almost) daily repo updates out
of CVS. Although that may change to SVN at some point.
I just took a look at the contents page for the Cervisia manual, and it
doesn't mention RPM at all.
No, well it wouldn't, it's for version control. Like it keeps track of
changes to *source*. It can also do its stuff in $HOME/rpm/SPECS, for
example.
Post by Richard Siddall
The RPMs happen to be of a mod_perl/HTML::Mason application and all the
supporting Perl modules.
Well, this is where I give up on this thread ...

Best,

--Tonni
--
Tony Earnshaw
Email: tonni at hetnet dot nl
Michael Jennings
2007-12-21 01:36:08 UTC
Permalink
On Wednesday, 19 December 2007, at 11:51:15 (-0500),
Post by Richard Siddall
Well, I never mentioned CVS, or SVN. Or Gnome. Or Fedora. I just
want to build a set of RPMs for various distros as painlessly and
efficiently as possible.
You may be interested in Mezzanine:

http://beta.kainx.org/wiki/view/Mezzanine

It handles both CVS and SVN (the latter only in 1.9, though) and is
used as the sole build and package maintenance tool for the entire
Caos Linux distro (www.caoslinux.org). It was designed specifically
for doing package and distro maintenance under version control.
Post by Richard Siddall
I just took a look at the contents page for the Cervisia manual, and
it doesn't mention RPM at all.
That's because it's a front end to CVS, not a build tool.
Post by Richard Siddall
The RPMs happen to be of a mod_perl/HTML::Mason application and all
the supporting Perl modules.
Mezzanine contains perlpkg which makes it quite easy to package CPAN
modules.

Michael
--
Michael Jennings (a.k.a. KainX) http://www.kainx.org/ <***@kainx.org>
Linux Server/Cluster Admin, LBL.gov Author, Eterm (www.eterm.org)
-----------------------------------------------------------------------
"I don't know where you came from, but I know you got out climbing a
ladder made out of those command lines. You figure computer code
saved your life, and maybe it did. But somewhere along the line
you've got to let people back in. Otherwise you're just numbers
and hate." -- Mark-Paul Gosselaar, "Hyperion Bay"
Richard Siddall
2007-12-21 02:07:39 UTC
Permalink
Post by Michael Jennings
http://beta.kainx.org/wiki/view/Mezzanine
It handles both CVS and SVN (the latter only in 1.9, though) and is
used as the sole build and package maintenance tool for the entire
Caos Linux distro (www.caoslinux.org). It was designed specifically
for doing package and distro maintenance under version control.
Thanks. Is there a download link on that page? (The one on freshmeat
seems to work.)

Regards,

Richard.

Michael Jennings
2007-12-21 01:32:37 UTC
Permalink
On Wednesday, 19 December 2007, at 17:25:18 (+0100),
Post by Richard Siddall
Thanks. koji looks promising. I haven't found out much about the
PLD or Connectiva build systems yet, but I'm still looking.
What on earth is wrong with Cervisia, standard Gnome CVS frontend, which is
what I use on all FCs?
You mean other than the fact that he was asking for a build system
tool, not a GUI for CVS? :)

Michael
--
Michael Jennings (a.k.a. KainX) http://www.kainx.org/ <***@kainx.org>
Linux Server/Cluster Admin, LBL.gov Author, Eterm (www.eterm.org)
-----------------------------------------------------------------------
"But I dumped her. My motto is, 'Get out before they go down.'"
"That is so *not* my motto."
-- Monica Geller and Joey Tribbiani, "Friends"
Loading...