[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#412737: avoiding circular dependenies



I have been trying to install xserver-xorg along with just the
xserver-xorg-input-* and xserver-xorg-video-* packages required
for my hardware. However, no matter what my actual selections were,
apt-get always tried to pull in all the depenencies in
xserver-xorg-input-all and xserver-xorg-video-all.

So I tried to do it step by step. Some of the dependencies may be met
without introducing circular dependencies, such as installing
xbase-clients and xkb-data. But as soon as any of the xserver-xorg-*
packages are involved, various circular dependencies cause apt-get to
install many more packages than actually required or desired.

I have read through #362313. I don't follow the argument that drivers
should depend on the server, even if they would be of little use
otherwise. This would be like having libraries depend on the programs
that make use of them. Libraries installed but not used by other
packages are orphaned and may be removed any time. Same with drivers
for the xserver. Of couse, there must be drivers for the server to
work, but which ones depends on the hardware. "Recommends" to take
care of this were already mentioned in #362313.

Circular dependencies between two packages make logically absolutely no
sense. As any of such two packages may never be install without the other,
they might as well be merged into a single package. This is not to say
that xserver-xorg and xserver-xorg-core should be merged but that their
circular dependencies should be removed. This still applies to
xserver-xorg-core (2:1.2.0-4) from experimental.

Any circular dependencies between two or more packages should be avoided
wherever possible. In case of xserver-xorg* I don't see a reason why
circular dependencies should be required.

Here is my suggestion (dependencies of packages other than xserver-xorg-*
are not included):

xserver-xorg
  Depends: xserver-xorg-core, xserver-xorg-video-1.0, xserver-xorg-input, ...
  Recommends: xserver-xorg-video-all, xserver-xorg-input-all, ...
  
xserver-xorg-core
  Depends: ...

xserver-xorg-video-*
  Depends: (empty)
  Provides: xserver-xorg-video-1.0

xserver-xorg-input-*
  Depends: (empty)
    Provides: xserver-xorg-input

None of xserver-xorg-video-* and xserver-xorg-input-* should depend on
xserver-xorg.

This provides a clean dependency hierarchy. Drivers required to provide
a working xserver for most machines are pulled in via "Recommends". At
the same time this should allow individual drivers to be pulled in with
apt-get to fulfill dependencies for a minimal install for existing
hardware.

Hope I haven't overlooked something important.


Regards
Andreas




Reply to: