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