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 -=| -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list