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

Re: tech-ctte: More specific advice regarding merged-/usr and implications of #978636



Hi,

     + One example of a migration path that might be used is for an
       Essential package to add a dependency on the usrmerge package, so
       that it will be installed automatically during upgrades. We do not
       require this to be the migration path that is chosen; it is
       presented here merely to demonstrate that such a migration path
       can exist.

This looks like a good plan. I am not sure that alternative ones
which fit the other requirements have ever been proposed, but I would
still like to hear about them if anybody has better ideas.

I have proposed one in the past that can avoid bypassing dpkg, and that includes a mechanism for making the dpkg database consistent with reality again (which is a requirement for lifting the moratorium on moving files).

The latter cannot be achieved from any package besides dpkg anyway, so any solution needs to be implemented there; this also obviates the need for the usrmerge package going forward.

I've since found a complication during the unpack phase of a new installation with my proposal, so I've modified it a bit:

My approach:

- Define a new control file, "transitional-symlinks", that indicates a desire to move a directory subtree when symlinks cannot yet be shipped inside packages conflict-free. - Include this control file inside the base-files package, , and add a Pre-Depends on a version of dpkg that understands this control file - dpkg uses both the contents of this control file and symlinks inside packages that conflict with directories in other packages to transform its database.

My original proposal was just to redefine the handling of symlink-vs-directory conflicts (which are currently resolved in dpkg by ignoring the symlink), but this is not sufficient, as shipping proper symlinks in base-files would lead to an error when debootstrap/cdebootstrap/multistrap/... unpacks all Essential packages to get a minimal environment up.

After the next stable release, we can then replace the control file with regular symlinks shipped inside the package.

   Simon

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


Reply to: