Bug#919507: Reboot required patch for Debian policy
On Sat, 19 Jan 2019 11:10:09 -0700
Sean Whitton <email@example.com> wrote:
> On Fri 18 Jan 2019 at 12:04PM -0600, Karl O. Pinc wrote:
> > +Maintainer scripts can signal that a reboot is required to fully
> > apply +the changes to the system by touching
> > ``/run/reboot-required`` and +adding the package name to
> > ``/run/reboot-required.pkgs``. Maintainer +scripts should not add
> > the package name to +``/run/reboot-required.pkgs`` if it is already
> > present there.
> Are you sure that adding the package name to the .pkgs file is
> required? I've not seen that file on my system; it seems that only
> /run/reboot-required is used. Balint said that the .pkgs is an Ubuntu
> thing; are you sure it has been upstreamed into Debian?
I can't say what's _required_. I'm following Balint's wording.
It is clear to me that a reboot will occur whenever
/var/run/reboot-required exists, regardless of the
state of /var/run/reboot-required.pkgs.
It is not clear to me where reboot-required.pkgs is used.
lynis, unattended-upgrades, hobbit-plugins, reboot-notifier, kubernetes
I am adding some wording about the purpose of reboot-required.pkgs,
based on the results of the above search.
I'm also adding wording which says that the OS may or may not
> > +
> > +The appropriate place to do this is expected to be when the
> > +``postinst`` script is called as ``postinst configure
> > +most-recently-configured-version``.
> > +
> > +Ordinary programs may manipulate these files to signal that a
> > reboot +is required.
> > +
> This is a bit awkward. You describe this feature in terms of
> maintainer scripts and then say that programs can use it too. It
> would be better to put it in ch. 9 or ch. 10, I think, and describe
> it in more general terms.
All right. I'll put it in ch 9 at the bottom. I think it belongs
there _and_ it won't mess with section numbering.
(I had had it in the middle of chapter 6 because it seemed
an appropriate place -- before all the details.)
Attached is reboot_required_v4.patch
Free Software: "You don't pay back, you pay forward."
-- Robert A. Heinlein
P.S. Never changing section numbering seems a hard row to hoe.
diff --git a/policy/ch-opersys.rst b/policy/ch-opersys.rst
index 59c92ec..78d3136 100644
@@ -1040,3 +1040,39 @@ Debian, so this section has been removed.
activate the trigger. In that case, it can be done by calling
``dpkg-trigger --no-await /usr/lib/mime/packages`` from the
maintainer script after creating, modifying, or removing the file.
+ pair: signaling; reboot
+Signaling that a reboot is required
+ single: reboot-required
+ single: reboot-required.pkgs
+Programs can signal that a reboot is required by ``touch``\ing
+``/run/reboot-required``. To inform users as to which package(s)
+require a reboot, add the name of the package(s) requiring the reboot
+to ``/run/reboot-required.pkgs``. Programs should not add a package
+name to ``/run/reboot-required.pkgs`` if it is already present there.
+ single: postinst
+An expected time to signal that a reboot is required is upon
+installation or upgrade of a package. Signaling is called for when a
+reboot is needed to fully apply the changes a package introduces. The
+appropriate place to manipulate reboot related files is expected to be
+in the ``postinst`` maintainer script when it is called as ``postinst
+configure most-recently-configured-version`` because this is when it
+is known that the package successfully installed and configured.
+Note that the Operating System is not guaranteed to act on these
+files. When, and whether, a reboot occurs is dependent upon the
+installation and configuration of a package which provides a reboot
+feature. The same is true of user notifications involving reboot.