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

Re: dkms needs a pre-depends entry (Policy 3.5)



Ian Jackson <ijackson@chiark.greenend.org.uk> writes:

> Packages which are awaiting trigger processing are not "configured"[1]
> and do not satisfy dependencies.  Triggers-supporting tools (which
> includes those in lenny) always try to process triggers just as hard as
> they try to do other configuration steps.

The problem here is that the package that's being triggered isn't either
of the packages that are involved, I believe.  The package being triggered
is python-support, which is a dependency of lsb-release, but the package
failing is dkms, which has no dependency on python-support, only on
lsb-release.  What's happening, as I understand it, is:

* nvidia-kernel-dkms is requested to be installed.
* dkms is added due to dependency.
* lsb-release is added due to dkms dependency.
* python-support is already installed.
* lsb-release, dkms, and nvidia-kernel-dkms are unpacked.
* Pending trigger added for python-support.
* lsb-release is configured.
     <== does this force python-support's trigger to run?
* dkms is configured.
* nvidia-kernel-dkms is configured and attempts to build the module.

Now, this was definitely broken before because dkms only recommended
lsb-release and didn't depend on it.  But does this work properly if
there's an actual dependency?

Right now, it's pre-depending, it looks like, which should be too strong
and not required.

> [1] Well, strictly "configured" isn't a term with a well-defined meaning
> for dpkg, but loosely we mean "configured" to mean "not just unpacked,
> half-configured, or some other state that involves the files being on
> the system but the package not working" .

> A package awaiting trigger processing (that is, a triggering package
> which has activated a trigger in some other package but the other
> package's postinst hasn't been run to deal with it yet) are not in state
> "installed", even though its own postinst has completed.

> The _triggered_ package may satisfy dependencies, but that makes sense.
> If a python addon module triggers python, then the module is not working
> properly until the python trigger has been dealt with, but the rest of
> python is.

So, nvidia-kernel-dkms's postinst shouldn't run until all of its
dependencies are configured, so I think my question is: does dpkg wait to
call the postinst of nvidia-kernel-dkms until after python-support's
trigger runs, when python-support is a dependency of lsb-release and
lsb-release is in turn a dependency of dkms, which is a dependency of
nvidia-kernel-dkms?

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>


Reply to: