[Fedora-packaging] Single package directory ownership

Mike A. Harris mharris at redhat.com
Tue Jul 11 15:33:45 UTC 2006


Tom 'spot' Callaway wrote:
> On Tue, 2006-07-11 at 10:30 -0400, Jesse Keating wrote:
>> I'm running into a situation with this rule.
>>
>> The xorg package set.  There is xorg-x11-server-Xorg, and a lot of 
>> xorg-x11-drv-foo packages.  The drv packages drop files 
>> in /usr/lib/xorg/modules and /usr/lib/xorg/modules/drivers  (lib64 for 
>> obvious places).  However, xorg-x11-server-Xorg also puts files there.  
>> Normally we'd say that xorg-x11-server-Xorg must own those directories and 
>> not the drivers.  BUT xorg-x11-server-Xorg requires drivers, drivers require 
>> Xorg, insert dep loop here.
> 
> I'm no expert on Xorg, but I'm not sure why the Xorg server requires any
> drivers. While this is certainly the most common use case, is this
> really a hard requires? This looks to be a nasty dependency loop.

Yep.  The drivers require the server, at least in order to be useful
for something.  Technically the drivers do not use the server of
course though.  One could argue that the drivers do not /require/
the server, but that they just don't do anything useful if it is
not around.

The anaconda team requested that the X server rpm have some hard
dependencies on certain specific drivers, to ensure that at least
basic mouse/keyboard works even if all drivers are not installed.
I don't remember the specifics of it, but jeremy could provide
details.

>> The X folks think that when RPM is faced with this, it will make an arbitrary 
>> decision at where to do the transaction, and there could be a case where 
>> xorg-x11-server-Xorg is removed before a drv package, and unless all the drv 
>> packages own the modules and drivers dirs, those directories could get left 
>> behind.
> 
> Every single driver package requires xorg-x11-server-Xorg. RPM should
> never remove it before all the driver packages are gone.
>
> Even still, erase ordering is not properly implemented in any shipping
> version of RPM. This rule is designed to aid such code if it is ever
> written.

If you uninstall all of X entirely in one rpm transaction, I think rpm
just uninstalls them in whatever order they're specified, or some other
random order.  This could result in the X server rpm which owns the
dirs being removed before the driver packages which put files in them.

Based on this understanding (which may or may not be correct, I haven't
tested as of late), you could end up with the directory left behind
after uninstallation of all of X.  Not that that's a major issue,
but it is a bit sloppy.

If someone feels strong enough about the modules dir ownership being
a problem though, it's easy to change the packages to comply with any
Fedora packaging policies.  Doesn't matter to me either way.




-- 
Mike A. Harris,
Systems Engineer, X11 Development team,
Red Hat Canada, Ltd.




More information about the Fedora-packaging mailing list