about php-qa, phpUnderControl and meta packages

Adam Williamson awilliam at redhat.com
Wed Jun 2 21:52:20 UTC 2010

On Wed, 2010-06-02 at 18:31 +0200, Christof Damian wrote:
> I am reposting this from fedora php-devel list to get a bigger
> audience. My questions are not that PHP specific:

Good, because neither are my answers =) I know nothing about the area in
question, so bear that in mind.

> I got two questions regarding my effort to package more of the php-qa
> packages for fedora.
> I have made a package for phpUnderControl now, but to use it you still
> have to install CruiseControl by hand. 

The obvious response here is 'so, package CruiseControl too!' If you
can't package CruiseControl, then you shouldn't package phpUnderControl;
it's frowned upon / not allowed (I can never remember which) to package
something which requires something that can't go into Fedora for some

> phpUnderControl also patches
> the CruisceControl installation, so it isn't something that can easily
> packaged as an RPM.

The first obvious response here is 'ew, why does it do that?' The second
is 'then package the modified CruiseControl that phpUnderControl
requires under a different name, to make it clear it's been modified'.

> Does it still make sense to bring phpUnderControl into Fedora even
> though it requires an external software package?

In general, no - see above. Fedora should be internally complete. But
again, the obvious response is 'so, package CruiseControl'.

> Second question: I would love to have a meta package which brings all
> of these packages ( phpunit, phpmd, phpcpd, phpdoc, phpcs, Mockery,
> ...) together and allows installation with one yum command. But as far
> as I could detect from the random posts it seems that meta packages
> are not really wanted on Fedora. An alternative is the comps list, but
> that doesn't allow for rapid changes and phpqa would be a bit
> specific.

For whatever reason, We Don't Like Metapackages and the 'recommended'
way to do it is with a package group. I've never seen a particularly
coherent reason given for this, but never mind. Some packagers _have_
done metapackages, and none of them have been shot yet. Just sayin'.

> A third option would be to make something like phpUnderControl require
> all of these. The pear package already suggests some of them, but it
> isn't a hard require.

Generally speaking, requirements should be *requirements*; you should
only have your phpUC package require those other things if it just
wouldn't work without them, or if no sane person would ever actually
want to run it without them.

Soft dependencies (suggests) are the 'obvious' solution there, but
whenever anyone suggests soft dependencies, Seth posts his handy laundry
list of corner cases and says 'sure, we'll do it as soon as you can come
up with the right way to do all of these', and no-one ever *can* come up
with a right way to do them. So we don't get soft deps. =)
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Fedora Talk: adamwill AT fedoraproject DOT org

More information about the devel mailing list