spec file changes: removing Release: and %changelog

Daniel P. Berrange berrange at redhat.com
Thu Mar 6 00:32:22 UTC 2008


On Wed, Mar 05, 2008 at 01:37:47PM -0500, Colin Walters wrote:
> On Wed, 2008-03-05 at 21:23 +0300, Dmitry Butskoy wrote:
> > Oh, no...
> > >
> > > I've spent a little bit of time on the shuttle to/from work hacking on
> > > Makefile.common.  The general idea is to remove the Release: and %
> > > changelog fields from spec files,
> > 
> > And then I have to maintain two versions of the spec file -- one for 
> > Fedora build system, other for: another distros, another Fedora-related 
> > distros, local builds etc...
> 
> In my experience, everyone has slightly forked versions of spec files
> because they mandate different macros, etc.
> 
> I do in fact want to enable cross-distribution sharing of build scripts,
> but I see that as a separate, longer term project from improving
> Fedora's build process.
> 
> I actually started translating some spec files into a new build system
> to solve other problems that Fedora has like rampant copy+paste of
> scriptlets, etc.  You can see some examples of my thoughts here:
> 
> A simple one:
> http://cdn.verbum.org/hotwire.py
> A lot more complex:
> http://cdn.verbum.org/hal.py

The hal example is utterly disgusting

> 
> The idea is that you'd compile that into a spec file - we're not talking
> about changing the binary formats in any way. 

This looks like completely the wrong way to solve the copy+paste scriptlets
problem. Turning a declarative configuration format into a programming
language simply to eliminate common config is just nuts. 

If we want to eliminate the common scriptlets, then RPM should get richer 
metadata. By auto-generating the spec files from python you're just pushing
the problem elsewhere & whenever the python wrapper needs to change the
scriptlets you need to re-generate all the distro's spec files / RPMS.

The vast majority of scriptlets can be eliminated if RPM knew what the
file type is - eg, if it sees an ELF library, it should automatically
run ldconfig. If it see a desktop file it should automatically run
the desktop file install script, etc, etc. If done right you can add
more scriptlets / change existing scriptlets for any existing RPM
without needing to re-generate the RPM / spec.

Dan.
-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 




More information about the fedora-devel-list mailing list