Hi!

On Sun, 2022-04-03 at 19:00:33 +0200, Stephen Kitt wrote:
> On Sat, 2 Apr 2022 15:09:26 +0200, Guillem Jover <guil...@debian.org> wrote:
> > In principle shared libraries should never be marked Essential:yes nor
> > Protected:yes, I think this was a special case, that will go away once
> > the shared library gets the Protected filed dropped after the
> > transition is over.
> > 
> > I think at least the description for the field in dpkg(1), deb-control(5)
> > and probably «/usr/share/doc/dpkg/protected-field.txt» should be made more
> > clear. I'll try to prepare a patch for this today.
> 
> Excellent!

I've got the attached, although it would probably not have been enough.
But I'm a bit hesitant to mention the workaround case, as don't feel
it's supposed to be used that way, and it looks more like an exception
than something proper. But then, if people find these cases, then not
mentioning it might be more confusing, so hmmm.

If I had to mention that I'd perhaps add something like these lines:

  other uses ", and in some very special circumstances it might be
  used as a workaround to help with upgrade scenarios that front-ends
  might not be able to resolve in some other more proper way"

but, not sure.

Thanks,
Guillem
diff --git i/man/deb-control.pod w/man/deb-control.pod
index 9f1de6a21..e5ec89abd 100644
--- i/man/deb-control.pod
+++ w/man/deb-control.pod
@@ -121,7 +121,8 @@ The algorithm to compute the size is described in L<deb-substvars(5)>.
 =item B<Protected:> B<yes>|B<no>
 
 This field is usually only needed when the answer is B<yes>.
-It denotes a package that is required for proper booting of the system.
+It denotes a package that is required mostly for proper booting of the system
+or used for custom system-local meta-packages.
 L<dpkg(1)> or any other installation tool will not allow a B<Protected>
 package to be removed (at least not without using one of the force options).
 
@@ -130,7 +131,9 @@ Supported since dpkg 1.20.1.
 =item B<Essential:> B<yes>|B<no>
 
 This field is usually only needed when the answer is B<yes>.
-It denotes a package that is required for proper operation of the system.
+It denotes a package that is required for the packaging system, for
+proper operation of the system in general or during boot (although the latter
+should be converted to B<Protected> field instead).
 L<dpkg(1)> or any other installation tool will not allow an B<Essential>
 package to be removed (at least not without using one of the force options).
 
diff --git i/man/dpkg.pod w/man/dpkg.pod
index e6abd3d3f..f09b7c0d1 100644
--- i/man/dpkg.pod
+++ w/man/dpkg.pod
@@ -700,14 +700,18 @@ remain on the system, which will then be forgotten by B<dpkg>.
 
 B<remove-protected>:
 Remove, even if the package is considered protected (since dpkg 1.20.1).
-Protected packages contain mostly important system boot infrastructure.
-Removing them might cause the whole system to be unable to boot, so use
-with caution.
+Protected packages contain mostly important system boot infrastructure or
+are used for custom system-local meta-packages.
+Removing them might cause the whole system to be unable to boot or lose
+required functionality to operate, so use with caution.
 
 B<remove-essential>:
-Remove, even if the package is considered essential. Essential
-packages contain mostly very basic Unix commands. Removing them might
-cause the whole system to stop working, so use with caution.
+Remove, even if the package is considered essential.
+Essential packages contain mostly very basic Unix commands, required for
+the packaging system, for the operation of the system in general or during
+boot (although the latter should be converted to protected packages instead).
+Removing them might cause the whole system to stop working,
+so use with caution.
 
 B<depends>:
 Turn all dependency problems into warnings.

Reply via email to