spec.in

Havoc Pennington hp at redhat.com
Mon Oct 16 17:46:58 PDT 2006


John (J5) Palmieri wrote:
> I still don't understand what the differences between distros is right
> now.  I haven't looked at anyone's spec files besides my own but from
> evidence across upstream projects which don't particularly care about
> distros and will happily run on any one, it all just works. 

You can write a spec file that's moderately portable if you avoid 
detailed dependencies and things like that, just using RPM as a 
glorified tar/zip. Not likely to get a spec file like that accepted in 
Fedora though.

Fedora specifics would include dependencies with epoch or RPM release 
involved, sounds like these selinux audit patches are Fedora specific, 
-debuginfo is Fedora specific, there are lots of little things.

There's nothing wrong with this. The whole design of RPM is to be the 
way you assemble a bunch of upstream packages into an integrated 
distribution. i.e. the idea of a spec file is to describe how to convert 
the upstream tarball into a distribution-specific binary build.

If the spec file contains nothing distribution-specific, the spec file 
should also be incredibly short.

A lot of people confuse RPM with a format for third-party installers, 
like a Windows .msi. IMHO it sucks in that role, though it can be forced 
into it if you try hard enough (and keep your RPM usage dumb and 
tar/zip-like).

Also just purely as a logistical issue, when maintaining a package in 
Fedora or RHEL you want to be able to have the spec file in the 
distribution CVS, and be able to branch it when the whole distribution 
branches and apply security backports without upgrading to upstream.
I imagine the same is true for Novell or Ubuntu.

It isn't really practical to maintain the spec file upstream until you 
need it different and then move it, then move it back, then move it 
again, etc. Instead distributions keep a pretty empty spec file if they 
have no changes, and they can insert changes as required.

I know I'm probably telling you what you know, but for the benefit of 
people who haven't been distribution package maintainers I thought I'd 
write it out ;-)

> In any case the way to fix it is not to have a universal spec file which
> will just go unmaintained (I have seen this happen in a lot of
> projects).  The fix is to identify what in particular is causing real
> differences in the distros and resolve this by coming to a consensus and
> setting agreeable standards.

Exactly, we should strive to have no patches in distribution RPMs, 
unless those patches really are distribution-specific for whatever reason.

I still haven't heard a concrete example of dbus differing among 
distributions from an application perspective, though (other than 
version skew, which is just unavoidable until 1.0 arrives).

Havoc


More information about the dbus mailing list