Software Management call for RFEs

Adam Williamson awilliam at redhat.com
Fri May 24 17:08:06 UTC 2013


On Fri, 2013-05-24 at 10:37 +0000, Petr Pisar wrote:
> On 2013-05-24, Jonathan Dieter <jdieter at lesbg.com> wrote:
> > On Fri, 2013-05-24 at 08:03 +0000, Petr Pisar wrote:
> >> Do you know virtual packages are forbidden in Fedora?
> >
> > Sorry, I just scanned through the guidelines and didn't see this
> > anywhere.  Do you mind citing a reference, please?
> >
> Well it's probably not forbidden by guidelines, but I've heard this rule
> many times. There exists a thread on fedora-packaging mailing list
> <http://lists.fedoraproject.org/pipermail/packaging/2009-January/005481.html>.

Well, I think there's a bit of conflation going on here. 'Virtual
packages', 'metapackages', and 'virtual provides' are somewhat different
things, and what has historically been discouraged in Fedora is one
specific form. Let's call this form specifically a 'metapackage', to be
clear.

A 'metapackage' is an actual package shipped in the repositories which
contains no files, and whose raison d'etre is to express some
dependencies. There are a few of these in Fedora, xorg-x11-drivers being
the classic example, but they are generally strongly discouraged. The
idea is that Fedora uses comps groups to express the concept 'this group
of packages forms some kind of cohesive set and can be installed
together', not metapackages.

What was being discussed in this sub-thread was not a metapackage at
all, only the use of virtual Provides:. A virtual Provide is kind of a
slithery concept when you sit down and start thinking about it, but I
guess I'd say it's when a package Provides: something that is a kind of
abstract concept (in order that multiple packages can provide the same
thing, and other packages can express 'I need some capability that all
of these packages provide'). Really, almost any Provides: statement that
actually has to be written into the spec file by the packager is a
'virtual provide'.

There's certainly nothing in the guidelines that restricts the use of
virtual provides, and it even specifically requires them in one
scenario:

"Static libraries only. When a package only provides static libraries
you can place all the static library files in the *-devel subpackage.
When doing this you also must have a virtual Provide for the *-static
package: 

%package devel
Provides: foo-static = %{version}-%{release}"

I don't think there's any problem with the use of 'virtual provides' in
Fedora policy or tradition, it's 'metapackages' that are usually
discouraged.
-- 
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | identi.ca: adamwfedora
http://www.happyassassin.net



More information about the devel mailing list