[lsb-discuss] Adding dependency on "lsb" causes huge downloads

Johannes Meixner jsmeix at suse.de
Fri Feb 26 08:48:31 PST 2010


On Feb 26 08:30 Dennis Gilmore wrote (shortened):
> On Friday 26 February 2010 03:48:30 am Johannes Meixner wrote:
>> On Feb 25 19:26 Craig Scott wrote (shortened):
>>> ... is it possible to improve/use RPM itself to
>>> work out package dependencies based on actual files that need to be
>>> present rather than higher level package names?
>>    Requires: /usr/share/doc/packages/cups/help/man-cupsd.html
> rpms can be installed using any file provided by it however on fedora
> and so rhel and centos and other derivatives you will find the
> man-cupsd.html file at /usr/share/cups/www/help/man-cupsd.html

A very good example how different file locations could be!

In particular for cups because of
   ./configure --with-docdir=/any/path/what/the/packager/likes
it is totally unpredictable for another package
which is to be installed on a particular run-time system
in which directory CUPS' help/man-cupsd.html file
will be actually installed (by the way: cups-config
doesn't help regarding CUPS' documentation directory).

>> I would be interested in a RPM query option which
>> lists truthfully _all_ capabilities a package provides.
> there is a difference between capabilities and the files provided
> what you want is
> rpm -ql --provides cups
> this will give you all the capabilities and all the files.  everything
> in that output is valid and a Requires

Many thanks for the info!

>> Even "dependencies based on actual files" do not fully solve
>> the issue because even the actual file locations differ from
>> Linux distribution to Linux distribution.
>> For example see above
>>    Requires: /usr/share/doc/packages/cups/help/man-cupsd.html
> what you need is to have a common provides
> for instance in fedora all mailservers provide server(smtp)
> so this means a package needing to send email can
> "Require: server(smtp)" and know that the users favourite
> smtp server will be available.

Yes, the mailserver is the standard example for some kind
of "virtual" provides for whole packages or services.

As far as I see our Novell/openSUSE sendmail and postfix RPMs
use "smtp_daemon" as "virtual" provides for the smtp service
so that it seems there is even no common "virtual" provides
for the standard case of the mailserver.

But I was mainly thinking about Craig Scott's question
regarding "dependencies based on actual files".

Assume - here only as a theoretical example - that a
third-party LSB compliant software must read the
man-cupsd.html file, otherwise it just cannot work.

What should the third-party software packager require
in his RPM in such a case?

Kind Regards
Johannes Meixner
SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
AG Nuernberg, HRB 16746, GF: Markus Rex

More information about the lsb-discuss mailing list