Re: [pkg-nvidia-devel] Moving diversions between packages
Ian Jackson <firstname.lastname@example.org> writes:
> Goswin von Brederlow writes:
>> Russ Allbery <email@example.com> writes:
>>> Oh, huh, I hadn't thought of that. But wouldn't this cause the
>>> library to temporarily disappear, which would be contrary to the last
>>> paragraph of Policy 8.1? Am I being too conservative about that?
> Maybe. The point of policy 8.1 is so that the package can be upgraded
> without rendering all of the things which depend on it unable to start.
> If you do as I suggest you'll undo the diversion and link in the prerm,
> and thus every time the package is upgraded it will revert back to the
> previous version and (presumably) all the things which are linked
> against it will stop working.
I was planning on not removing the link and diversion until the postrm,
actually, just as if it had been managed with the preinst file. The
package Conflicts with the older version of nvidia-glx, so there shouldn't
be a need for it to be unconfigured but not removed with the old
nvidia-glx installed. So basically it's the same window between two
commands in both the postinst and the postrm.
The idea would be to, after the squeeze release, switch back to managing
the diversion in the preinst file in the traditional way.
> Perhaps it would be possible to somehow design an arrangement where the
> first time you install the new library package it waits until the
> postinst to do its diversion, but otherwise it leaves it be and doesn't
> mess with the links.
I think that's what the above accomplishes, although the code to remove
the diversion will need to cope with the possibility that it was never
created since the postinst never ran (since postrm can be run for packages
whose postinst was never executed).
Russ Allbery (firstname.lastname@example.org) <http://www.eyrie.org/~eagle/>