RPM Community Forums

Mailing List Message of <rpm-devel>

Re: Converting *.spec to Makefiles

From: Anders F Björklund <afb@rpm5.org>
Date: Tue 09 Sep 2008 - 09:28:57 CEST
Message-Id: <EC93C604-91B9-4B99-A036-E20315F34AFB@rpm5.org>
Tim Mooney wrote:

> In regard to: Re: Converting *.spec to Makefiles, Jeff Johnson said  
> (at...:
>
>> make has the advantage that its universal, and one can take a  
>> Makefile
>> and run it.
>
> That's probably true if you're talking about Linux, where every
> distribution uses some recent version of GNU Make.  It's not as true
> when you consider other platforms like Solaris or HP-UX.  I don't  
> think
> it's necessarily true even for the BSD-derivatives, but I haven't  
> looked
> at one in a while.

GNU Make even competes with itself, I have at least a few items  
requiring
me to use "MAKE=make-3.81" because the system one wouldn't cut it  
anymore.

BSD Make isn't fully "compatible" either, but you can usually make a  
file
that works in both... (Same thing goes for GNU sh by the way, vs. BSD  
sh)

> I also think that there wouldn't be so many alternatives to  
> "make" (cmake,
> smake, ant, etc.) if everyone agreed that it was the right solution to
> most build problems.  autoconf + make works just great for my  
> needs, but
> apparently not everyone agrees.

Autoconf + make can work for making packages too (that is: "make rpm"),
it's just that it comes with quite some overhead compared to a  
"recipe" ?

Usually it also involves messing with or competing with the upstream
build system, which half of the time leads to disappointing results...

>> That's not true with dialects of spec files.
>
> I support any effort you'll undertake to regularize spec files or  
> provide
> an alternative, either of which hopefully will result in more
> cross-distribution interoperatiblity (I'm not convinced that will  
> actually
> happen, but hope springs eternal, as they say).

I have doubts that regularizing is possible using "make" syntax, it is
just too liberal (hard to "validate") and has too many ancient dialects.

But I like the yamlspec idea as it is turning out in RPM5 (and in  
OpenPKG),
where it's similar to the existing spec but yet validatable and  
extendible.

> I have had very few experiences with ant, but I have to say that those
> experiences have so far left me hating it.  Hopefully whatever  
> comes out
> of this doesn't end up with 1000+ line XML files just to build the
> simplest package.

Sounds just like xmlspec then, which had the same problem too :-)

http://xmlsucks.org/but_you_have_to_use_it_anyway/coping-with-xml.pdf

>>> Maybe something like http://bee.rubyforge.org/ would keep more  
>>> within
>>> the existing YAML-ish syntax, while still allowing for a Real  
>>> Language ?
>
> Oh good.  Another competing build system.  ;-)

I'm using this new build system (which was already done, bugs are fixed)
to experiment with getting the YAML "export" right from the old specs...

Then those'll serve as the prototype for yamlspec, that can later be
ported to C and rpmbuild. It shouldn't be much harder to use than spec.

--anders

PS.
1.1M    make-3.81.tar.bz2
  28K    bee-0.4.0.gem
Received on Tue Sep 9 09:28:58 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.