Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rebootmgr for openSUSE:Factory 
checked in at 2023-08-21 11:42:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rebootmgr (Old)
 and      /work/SRC/openSUSE:Factory/.rebootmgr.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rebootmgr"

Mon Aug 21 11:42:59 2023 rev:23 rq:1104682 version:2.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/rebootmgr/rebootmgr.changes      2022-11-10 
14:19:07.049283203 +0100
+++ /work/SRC/openSUSE:Factory/.rebootmgr.new.1766/rebootmgr.changes    
2023-08-21 11:43:12.479415976 +0200
@@ -1,0 +2,11 @@
+Fri Aug 18 13:46:41 UTC 2023 - Thorsten Kukuk <ku...@suse.com>
+
+- Update to version 2.1
+  - Support systemctl soft-reboot (systemd >= v254)
+
+-------------------------------------------------------------------
+Fri Aug 11 08:30:08 UTC 2023 - Avinesh Kumar <avinesh.ku...@suse.com>
+
+- Typo fix in spec description 
+
+-------------------------------------------------------------------

Old:
----
  rebootmgr-2.0.tar.xz

New:
----
  rebootmgr-2.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rebootmgr.spec ++++++
--- /var/tmp/diff_new_pack.IVrXhD/_old  2023-08-21 11:43:13.275417501 +0200
+++ /var/tmp/diff_new_pack.IVrXhD/_new  2023-08-21 11:43:13.283417516 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package rebootmgr
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
 %endif
 
 Name:           rebootmgr
-Version:        2.0
+Version:        2.1
 Release:        0
 Summary:        Automatic controlled reboot during a maintenance window
 License:        GPL-2.0-only AND LGPL-2.1-or-later
@@ -39,7 +39,7 @@
 %description
 RebootManager is a dbus service to execute a controlled reboot after updates 
in a defined maintenance window.
 
-If you updated a system with e.g. transactional updates or a kernel update was 
applied, you can tell rebootmgrd with rebootmgrctl, that the machine should be 
reboot at the next possible time. This can either be immeaditly or during a 
defined maintenance window.
+If you updated a system with e.g. transactional updates or a kernel update was 
applied, you can tell rebootmgrd with rebootmgrctl, that the machine should be 
reboot at the next possible time. This can either be immediately or during a 
defined maintenance window.
 
 %prep
 %setup -q

++++++ rebootmgr-2.0.tar.xz -> rebootmgr-2.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/NEWS new/rebootmgr-2.1/NEWS
--- old/rebootmgr-2.0/NEWS      2022-10-26 10:52:40.000000000 +0200
+++ new/rebootmgr-2.1/NEWS      2023-08-18 15:01:22.000000000 +0200
@@ -1,6 +1,9 @@
 rebootmgr NEWS -- history of user-visible changes.
 
-Copyright (C) 2016-2022 Thorsten Kukuk
+Copyright (C) 2016-2023 Thorsten Kukuk
+
+Version 2.1
+* Support systemctl soft-reboot (systemd >= v254)
 
 Version 2.0
 * Remove outdated etcd support
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/configure new/rebootmgr-2.1/configure
--- old/rebootmgr-2.0/configure 2022-10-26 12:02:23.000000000 +0200
+++ new/rebootmgr-2.1/configure 2023-08-18 15:01:39.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for rebootmgr 2.0.
+# Generated by GNU Autoconf 2.69 for rebootmgr 2.1.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@
 # Identity of this package.
 PACKAGE_NAME='rebootmgr'
 PACKAGE_TARNAME='rebootmgr'
-PACKAGE_VERSION='2.0'
-PACKAGE_STRING='rebootmgr 2.0'
+PACKAGE_VERSION='2.1'
+PACKAGE_STRING='rebootmgr 2.1'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1295,7 +1295,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures rebootmgr 2.0 to adapt to many kinds of systems.
+\`configure' configures rebootmgr 2.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1361,7 +1361,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of rebootmgr 2.0:";;
+     short | recursive ) echo "Configuration of rebootmgr 2.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1473,7 +1473,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-rebootmgr configure 2.0
+rebootmgr configure 2.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1838,7 +1838,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by rebootmgr $as_me 2.0, which was
+It was created by rebootmgr $as_me 2.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2701,7 +2701,7 @@
 
 # Define the identity of the package.
  PACKAGE='rebootmgr'
- VERSION='2.0'
+ VERSION='2.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -6410,7 +6410,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by rebootmgr $as_me 2.0, which was
+This file was extended by rebootmgr $as_me 2.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6476,7 +6476,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-rebootmgr config.status 2.0
+rebootmgr config.status 2.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/configure.ac 
new/rebootmgr-2.1/configure.ac
--- old/rebootmgr-2.0/configure.ac      2022-10-26 11:38:08.000000000 +0200
+++ new/rebootmgr-2.1/configure.ac      2023-08-18 15:01:33.000000000 +0200
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT(rebootmgr, 2.0)
+AC_INIT(rebootmgr, 2.1)
 AM_INIT_AUTOMAKE([foreign])
 AC_CONFIG_SRCDIR([src/rebootmgrd.c])
 AM_CONFIG_HEADER(config.h)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/man/org.opensuse.RebootMgr.conf.8.html 
new/rebootmgr-2.1/man/org.opensuse.RebootMgr.conf.8.html
--- old/rebootmgr-2.0/man/org.opensuse.RebootMgr.conf.8.html    2022-10-26 
12:02:49.000000000 +0200
+++ new/rebootmgr-2.1/man/org.opensuse.RebootMgr.conf.8.html    2023-08-10 
16:34:37.000000000 +0200
@@ -40,7 +40,7 @@
        <a href="rebootmgr.conf.5.html"><span class="citerefentry"><span 
class="refentrytitle">rebootmgr.conf</span>(5)</span></a>
        and adjusted at runtime via
        <a href="rebootmgrctl.1.html"><span class="citerefentry"><span 
class="refentrytitle">rebootmgrctl</span>(1)</span></a>.
-       This changes will be written to the configuration file and survive the
+       These changes will be written to the configuration file and survive the
        next reboot.
       </p></div></div><div class="refsect1"><a name="options"></a><h2 
id="Options">Options<a class="headerlink" title="Permalink to this headline" 
href="#Options">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="--debug"><span class="term"><code 
class="option">--debug</code></span><a class="headerlink" title="Permalink to 
this term" href="#--debug">¶</a></dt><dd><p>Log additional informations during 
runtime. A real reboot is not
        done in debug mode.</p></dd><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help text and 
exit</p></dd><dt id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd></dl></div></div><div class="refsect1"><a name="see_also"></a><h2 
id="See Also">See Also<a class="headerlink" title="Permalink to this headline" 
href="#See%20Also">¶</a></h2><p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/man/rebootmgr.conf.5 
new/rebootmgr-2.1/man/rebootmgr.conf.5
--- old/rebootmgr-2.0/man/rebootmgr.conf.5      2022-10-26 12:02:49.000000000 
+0200
+++ new/rebootmgr-2.1/man/rebootmgr.conf.5      2023-08-10 16:34:37.000000000 
+0200
@@ -2,12 +2,12 @@
 .\"     Title: rebootmgr.conf
 .\"    Author: Thorsten Kukuk <ku...@suse.com>
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/26/2022
+.\"      Date: 08/10/2023
 .\"    Manual: resolved.conf
 .\"    Source: rebootmgr
 .\"  Language: English
 .\"
-.TH "REBOOTMGR\&.CONF" "5" "10/26/2022" "rebootmgr" "resolved.conf"
+.TH "REBOOTMGR\&.CONF" "5" "08/10/2023" "rebootmgr" "resolved.conf"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/man/rebootmgr.service.8.html 
new/rebootmgr-2.1/man/rebootmgr.service.8.html
--- old/rebootmgr-2.0/man/rebootmgr.service.8.html      2022-10-26 
12:02:49.000000000 +0200
+++ new/rebootmgr-2.1/man/rebootmgr.service.8.html      2023-08-10 
16:34:37.000000000 +0200
@@ -40,7 +40,7 @@
        <a href="rebootmgr.conf.5.html"><span class="citerefentry"><span 
class="refentrytitle">rebootmgr.conf</span>(5)</span></a>
        and adjusted at runtime via
        <a href="rebootmgrctl.1.html"><span class="citerefentry"><span 
class="refentrytitle">rebootmgrctl</span>(1)</span></a>.
-       This changes will be written to the configuration file and survive the
+       These changes will be written to the configuration file and survive the
        next reboot.
       </p></div></div><div class="refsect1"><a name="options"></a><h2 
id="Options">Options<a class="headerlink" title="Permalink to this headline" 
href="#Options">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="--debug"><span class="term"><code 
class="option">--debug</code></span><a class="headerlink" title="Permalink to 
this term" href="#--debug">¶</a></dt><dd><p>Log additional informations during 
runtime. A real reboot is not
        done in debug mode.</p></dd><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help text and 
exit</p></dd><dt id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd></dl></div></div><div class="refsect1"><a name="see_also"></a><h2 
id="See Also">See Also<a class="headerlink" title="Permalink to this headline" 
href="#See%20Also">¶</a></h2><p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/man/rebootmgrctl.1 
new/rebootmgr-2.1/man/rebootmgrctl.1
--- old/rebootmgr-2.0/man/rebootmgrctl.1        2022-10-26 12:02:49.000000000 
+0200
+++ new/rebootmgr-2.1/man/rebootmgrctl.1        2023-08-11 16:32:31.000000000 
+0200
@@ -2,12 +2,12 @@
 .\"     Title: rebootmgrctl
 .\"    Author: Thorsten Kukuk <ku...@suse.de>
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/26/2022
+.\"      Date: 08/11/2023
 .\"    Manual: rebootmgrctl
 .\"    Source: rebootmgr
 .\"  Language: English
 .\"
-.TH "REBOOTMGRCTL" "1" "10/26/2022" "rebootmgr" "rebootmgrctl"
+.TH "REBOOTMGRCTL" "1" "08/11/2023" "rebootmgr" "rebootmgrctl"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -37,6 +37,8 @@
 .HP \w'\fBrebootmgrctl\fR\ 'u
 \fBrebootmgrctl\fR reboot [fast | now]
 .HP \w'\fBrebootmgrctl\fR\ 'u
+\fBrebootmgrctl\fR soft\-reboot [fast | now]
+.HP \w'\fBrebootmgrctl\fR\ 'u
 \fBrebootmgrctl\fR cancel
 .HP \w'\fBrebootmgrctl\fR\ 'u
 \fBrebootmgrctl\fR status [\-\-quiet]
@@ -88,13 +90,23 @@
 .PP
 \fBreboot\fR [fast|now]
 .RS 4
-Tells rebootmgr to schedule a reboot\&. With the
+Tells rebootmgrd to schedule a reboot\&. With the
 [now]
 option, a forced reboot is done and a maintenance window is ignored\&. With the
 [fast]
 option a defined maintenance window is ignored\&.
 .RE
 .PP
+\fBsoft\-reboot\fR [fast|now]
+.RS 4
+Tells rebootmgrd to schedule a soft\-reboot (see
+\fBsystemd-soft-reboot.service\fR(8))\&. With the
+[now]
+option, a forced soft\-reboot is done and a maintenance window is ignored\&. 
With the
+[fast]
+option a defined maintenance window is ignored\&.
+.RE
+.PP
 \fBstatus\fR [\-\-quiet]
 .RS 4
 Prints the current status of
@@ -162,7 +174,7 @@
 .RS 4
 Set\*(Aqs the maintenance window\&. The format of
 \fItime\fR
-is the same as described in
+is a calendar event described in
 \fBsystemd.time\fR(7)\&. The format of
 \fIduration\fR
 is
@@ -175,7 +187,8 @@
 .RE
 .SH "SEE ALSO"
 .PP
-\fBsystemd.time\fR(7)
+\fBsystemd.time\fR(7),
+\fBsystemd-soft-reboot.service\fR(8)
 .SH "AUTHOR"
 .PP
 \fBThorsten Kukuk\fR <\&kukuk@suse\&.de\&>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/man/rebootmgrctl.1.html 
new/rebootmgr-2.1/man/rebootmgrctl.1.html
--- old/rebootmgr-2.0/man/rebootmgrctl.1.html   2022-10-26 12:02:49.000000000 
+0200
+++ new/rebootmgr-2.1/man/rebootmgrctl.1.html   2023-08-11 16:32:31.000000000 
+0200
@@ -15,7 +15,7 @@
     h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, 
dt:hover > a.headerlink {
       visibility: visible;
     }
-  </style><a href="rebootmgr.index.html">Index </a><span 
style="float:right">rebootmgr 2.0</span><hr><div class="refentry"><a 
name="rebootmgrctl.1"></a><div class="titlepage"></div><div 
class="refnamediv"><a name="name"></a><h2>Name</h2><p>rebootmgrctl — Tool to 
control and configure the reboot manager daemon.</p></div><div 
class="refsynopsisdiv"><a name="synopsis"></a><h2>Synopsis</h2><div 
class="cmdsynopsis"><p><code class="command">rebootmgrctl</code>  [ --help  |   
--version ]</p></div><div class="cmdsynopsis"><p><code 
class="command">rebootmgrctl</code>   is-active  [--quiet]</p></div><div 
class="cmdsynopsis"><p><code class="command">rebootmgrctl</code>   reboot  [ 
fast  |   now ]</p></div><div class="cmdsynopsis"><p><code 
class="command">rebootmgrctl</code>   cancel </p></div><div 
class="cmdsynopsis"><p><code class="command">rebootmgrctl</code>   status  
[--quiet]</p></div><div class="cmdsynopsis"><p><code 
class="command">rebootmgrctl</code>   set-strategy    best-effort  | 
   maint-window  |   instantly  |   off  </p></div><div 
class="cmdsynopsis"><p><code class="command">rebootmgrctl</code>   get-strategy 
</p></div><div class="cmdsynopsis"><p><code class="command">rebootmgrctl</code> 
  set-window   <em class="replaceable"><code>time</code></em>   <em 
class="replaceable"><code>duration</code></em> </p></div><div 
class="cmdsynopsis"><p><code class="command">rebootmgrctl</code>   get-window 
</p></div></div><div class="refsect1"><a name="description"></a><h2 
id="Description">Description<a class="headerlink" title="Permalink to this 
headline" href="#Description">¶</a></h2><p><span 
class="emphasis"><em>rebootmgrctl</em></span> is used to
+  </style><a href="rebootmgr.index.html">Index </a><span 
style="float:right">rebootmgr 2.0</span><hr><div class="refentry"><a 
name="rebootmgrctl.1"></a><div class="titlepage"></div><div 
class="refnamediv"><a name="name"></a><h2>Name</h2><p>rebootmgrctl — Tool to 
control and configure the reboot manager daemon.</p></div><div 
class="refsynopsisdiv"><a name="synopsis"></a><h2>Synopsis</h2><div 
class="cmdsynopsis"><p><code class="command">rebootmgrctl</code>  [ --help  |   
--version ]</p></div><div class="cmdsynopsis"><p><code 
class="command">rebootmgrctl</code>   is-active  [--quiet]</p></div><div 
class="cmdsynopsis"><p><code class="command">rebootmgrctl</code>   reboot  [ 
fast  |   now ]</p></div><div class="cmdsynopsis"><p><code 
class="command">rebootmgrctl</code>   soft-reboot  [ fast  |   now 
]</p></div><div class="cmdsynopsis"><p><code 
class="command">rebootmgrctl</code>   cancel </p></div><div 
class="cmdsynopsis"><p><code class="command">rebootmgrctl</code>   status  
[--quiet]<
 /p></div><div class="cmdsynopsis"><p><code class="command">rebootmgrctl</code> 
  set-strategy    best-effort  |   maint-window  |   instantly  |   off  
</p></div><div class="cmdsynopsis"><p><code class="command">rebootmgrctl</code> 
  get-strategy </p></div><div class="cmdsynopsis"><p><code 
class="command">rebootmgrctl</code>   set-window   <em 
class="replaceable"><code>time</code></em>   <em 
class="replaceable"><code>duration</code></em> </p></div><div 
class="cmdsynopsis"><p><code class="command">rebootmgrctl</code>   get-window 
</p></div></div><div class="refsect1"><a name="description"></a><h2 
id="Description">Description<a class="headerlink" title="Permalink to this 
headline" href="#Description">¶</a></h2><p><span 
class="emphasis"><em>rebootmgrctl</em></span> is used to
   query and configure the
   <a href="rebootmgrd.8.html"><span class="citerefentry"><span 
class="refentrytitle">rebootmgrd</span>(8)</span></a>
   process.</p></div><div class="refsect1"><a name="options"></a><h2 
id="Options">Options<a class="headerlink" title="Permalink to this headline" 
href="#Options">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>display help text and 
exit</p></dd><dt id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>output version information and 
exit</p></dd><dt id="cancel"><span class="term"><code 
class="option">cancel</code></span><a class="headerlink" title="Permalink to 
this term" href="#cancel">¶</a></dt><dd><p>Cancels an already running 
reboot.</p></dd><dt id="is-active --quiet"><span class="term"><code 
class="option">is-active</code> [<span 
class="optional">--quiet</span>]</span><a class="headerlink" title
 ="Permalink to this term" href="#is-active%20--quiet">¶</a></dt><dd><p>Prints 
if the rebootmgrd is running and active or not. With the
@@ -23,11 +23,18 @@
        <span class="command"><strong>rebootmgrctl</strong></span> does not 
print any output, but returns
        "<code class="literal">0</code>" if <span 
class="command"><strong>rebootmgrd</strong></span> is running or
        "<code class="literal">1</code>" if not.</p></dd><dt id="reboot 
fast|now"><span class="term"><code class="option">reboot</code> [<span 
class="optional">fast|now</span>]</span><a class="headerlink" title="Permalink 
to this term" href="#reboot%20fast%7Cnow">¶</a></dt><dd><p>
-         Tells rebootmgr to schedule a reboot. With
+         Tells rebootmgrd to schedule a reboot. With
          the [<span class="optional">now</span>] option, a forced reboot is 
done
          and a maintenance window is ignored.
          With the [<span class="optional">fast</span>] option a defined
          maintenance window is ignored.
+       </p></dd><dt id="soft-reboot fast|now"><span class="term"><code 
class="option">soft-reboot</code> [<span 
class="optional">fast|now</span>]</span><a class="headerlink" title="Permalink 
to this term" href="#soft-reboot%20fast%7Cnow">¶</a></dt><dd><p>
+         Tells rebootmgrd to schedule a soft-reboot (see
+         <a 
href="https://www.freedesktop.org/software/systemd/man/systemd-soft-reboot.service.html";><span
 class="citerefentry"><span 
class="refentrytitle">systemd-soft-reboot.service</span>(8)</span></a>).
+         With the [<span class="optional">now</span>] option, a forced 
soft-reboot is
+         done and a maintenance window is ignored.
+         With the [<span class="optional">fast</span>] option a defined
+         maintenance window is ignored.
        </p></dd><dt id="status --quiet"><span class="term"><code 
class="option">status</code> [<span class="optional">--quiet</span>]</span><a 
class="headerlink" title="Permalink to this term" 
href="#status%20--quiet">¶</a></dt><dd><p>Prints the current status of <span 
class="command"><strong>rebootmgrd</strong></span>.
        With the [<span class="optional">--quiet</span>] option,
        <span class="command"><strong>rebootmgrctl</strong></span> does not 
print any output, but returns
@@ -66,11 +73,12 @@
       duration"><span class="term"><code class="option">set-window</code> <em 
class="replaceable"><code>time</code></em>
       <em class="replaceable"><code>duration</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#set-window%20time%0A%20%20%20%20%20%20duration">¶</a></dt><dd><p>
          Set's the maintenance window. The format of <code 
class="varname">time</code>
-         is the same as described in  <a 
href="https://www.freedesktop.org/software/systemd/man/systemd.time.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.time</span>(7)</span></a>.
+         is a calendar event described in <a 
href="https://www.freedesktop.org/software/systemd/man/systemd.time.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.time</span>(7)</span></a>.
          The format of <code class="varname">duration</code> is
           "<code class="literal">[XXh][YYm]</code>".
        </p></dd><dt id="get-window"><span class="term"><code 
class="option">get-window</code></span><a class="headerlink" title="Permalink 
to this term" href="#get-window">¶</a></dt><dd><p>
          The currently set maintenance window will be printed.
        </p></dd></dl></div></div><div class="refsect1"><a 
name="see_also"></a><h2 id="See Also">See Also<a class="headerlink" 
title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
-      <a 
href="https://www.freedesktop.org/software/systemd/man/systemd.time.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.time</span>(7)</span></a>
+      <a 
href="https://www.freedesktop.org/software/systemd/man/systemd.time.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.time</span>(7)</span></a>,
+      <a 
href="https://www.freedesktop.org/software/systemd/man/systemd-soft-reboot.service.html";><span
 class="citerefentry"><span 
class="refentrytitle">systemd-soft-reboot.service</span>(8)</span></a>
     </p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/man/rebootmgrctl.1.xml 
new/rebootmgr-2.1/man/rebootmgrctl.1.xml
--- old/rebootmgr-2.0/man/rebootmgrctl.1.xml    2022-10-26 11:47:48.000000000 
+0200
+++ new/rebootmgr-2.1/man/rebootmgrctl.1.xml    2023-08-11 16:32:27.000000000 
+0200
@@ -3,7 +3,7 @@
 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd";>
 
 <!--  \-*\- nroff \-*\- -->
-<!--  Copyright 2017, 2020 Thorsten Kukuk &lt;ku...@suse.de&gt; -->
+<!--  Copyright 2017, 2020, 2023 Thorsten Kukuk &lt;ku...@suse.de&gt; -->
 
 <!--  This file is part of rebootmgr. -->
 
@@ -70,6 +70,14 @@
     </cmdsynopsis>
     <cmdsynopsis>
       <command>rebootmgrctl</command>
+      <arg choice='plain'>soft-reboot</arg>
+      <group choice='opt'>
+       <arg choice='plain'>fast</arg>
+       <arg choice='plain'>now</arg>
+      </group>
+    </cmdsynopsis>
+    <cmdsynopsis>
+      <command>rebootmgrctl</command>
       <arg choice='plain'>cancel</arg>
     </cmdsynopsis>
     <cmdsynopsis>
@@ -145,7 +153,7 @@
       <term><option>reboot</option> <optional>fast|now</optional></term>
       <listitem>
        <para>
-         Tells rebootmgr to schedule a reboot. With
+         Tells rebootmgrd to schedule a reboot. With
          the <optional>now</optional> option, a forced reboot is done
          and a maintenance window is ignored.
          With the <optional>fast</optional> option a defined
@@ -155,6 +163,20 @@
     </varlistentry>
 
     <varlistentry>
+      <term><option>soft-reboot</option> <optional>fast|now</optional></term>
+      <listitem>
+       <para>
+         Tells rebootmgrd to schedule a soft-reboot (see
+         <citerefentry 
project='systemd'><refentrytitle>systemd-soft-reboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>).
+         With the <optional>now</optional> option, a forced soft-reboot is
+         done and a maintenance window is ignored.
+         With the <optional>fast</optional> option a defined
+         maintenance window is ignored.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
       <term><option>status</option> <optional>--quiet</optional></term>
       <listitem>
        <para>Prints the current status of <command>rebootmgrd</command>.
@@ -261,7 +283,7 @@
       <listitem>
        <para>
          Set's the maintenance window. The format of <varname>time</varname>
-         is the same as described in  <citerefentry
+         is a calendar event described in <citerefentry
          
project='systemd'><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
          The format of <varname>duration</varname> is
           <literal>[XXh][YYm]</literal>.
@@ -284,7 +306,8 @@
   <refsect1 id='see_also'>
     <title>See Also</title>
     <para>
-      <citerefentry 
project='systemd'><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+      <citerefentry 
project='systemd'><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+      <citerefentry 
project='systemd'><refentrytitle>systemd-soft-reboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
     </para>
   </refsect1>
 </refentry>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/man/rebootmgrd.8 
new/rebootmgr-2.1/man/rebootmgrd.8
--- old/rebootmgr-2.0/man/rebootmgrd.8  2022-10-26 12:02:48.000000000 +0200
+++ new/rebootmgr-2.1/man/rebootmgrd.8  2023-08-10 16:34:36.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: rebootmgrd
 .\"    Author: Thorsten Kukuk <ku...@suse.de>
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/26/2022
+.\"      Date: 08/10/2023
 .\"    Manual: rebootmgrd
 .\"    Source: rebootmgr
 .\"  Language: English
 .\"
-.TH "REBOOTMGRD" "8" "10/26/2022" "rebootmgr" "rebootmgrd"
+.TH "REBOOTMGRD" "8" "08/10/2023" "rebootmgr" "rebootmgrd"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -68,7 +68,7 @@
 The reboot strategy can be configured via
 \fBrebootmgr.conf\fR(5)
 and adjusted at runtime via
-\fBrebootmgrctl\fR(1)\&. This changes will be written to the configuration 
file and survive the next reboot\&.
+\fBrebootmgrctl\fR(1)\&. These changes will be written to the configuration 
file and survive the next reboot\&.
 .SH "OPTIONS"
 .PP
 \fB\-\-debug\fR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/man/rebootmgrd.8.html 
new/rebootmgr-2.1/man/rebootmgrd.8.html
--- old/rebootmgr-2.0/man/rebootmgrd.8.html     2022-10-26 12:02:49.000000000 
+0200
+++ new/rebootmgr-2.1/man/rebootmgrd.8.html     2023-08-10 16:34:37.000000000 
+0200
@@ -40,7 +40,7 @@
        <a href="rebootmgr.conf.5.html"><span class="citerefentry"><span 
class="refentrytitle">rebootmgr.conf</span>(5)</span></a>
        and adjusted at runtime via
        <a href="rebootmgrctl.1.html"><span class="citerefentry"><span 
class="refentrytitle">rebootmgrctl</span>(1)</span></a>.
-       This changes will be written to the configuration file and survive the
+       These changes will be written to the configuration file and survive the
        next reboot.
       </p></div></div><div class="refsect1"><a name="options"></a><h2 
id="Options">Options<a class="headerlink" title="Permalink to this headline" 
href="#Options">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="--debug"><span class="term"><code 
class="option">--debug</code></span><a class="headerlink" title="Permalink to 
this term" href="#--debug">¶</a></dt><dd><p>Log additional informations during 
runtime. A real reboot is not
        done in debug mode.</p></dd><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help text and 
exit</p></dd><dt id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd></dl></div></div><div class="refsect1"><a name="see_also"></a><h2 
id="See Also">See Also<a class="headerlink" title="Permalink to this headline" 
href="#See%20Also">¶</a></h2><p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/man/rebootmgrd.8.xml 
new/rebootmgr-2.1/man/rebootmgrd.8.xml
--- old/rebootmgr-2.0/man/rebootmgrd.8.xml      2022-10-26 11:53:27.000000000 
+0200
+++ new/rebootmgr-2.1/man/rebootmgrd.8.xml      2023-08-08 14:29:24.000000000 
+0200
@@ -115,7 +115,7 @@
        
<citerefentry><refentrytitle>rebootmgr.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
        and adjusted at runtime via
        
<citerefentry><refentrytitle>rebootmgrctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
-       This changes will be written to the configuration file and survive the
+       These changes will be written to the configuration file and survive the
        next reboot.
       </para>
     </refsect2>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/src/config_file.c 
new/rebootmgr-2.1/src/config_file.c
--- old/rebootmgr-2.0/src/config_file.c 2022-10-26 11:58:15.000000000 +0200
+++ new/rebootmgr-2.1/src/config_file.c 2022-12-08 10:27:29.000000000 +0100
@@ -155,7 +155,10 @@
        }
 
       if (str_start == NULL && str_duration != NULL)
-       str_duration = NULL;
+       {
+         free (str_duration);
+         str_duration = NULL;
+       }
       ctx->reboot_strategy = string_to_strategy(str_strategy, NULL);
       if (str_start != NULL)
        {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/src/rebootmgr.h 
new/rebootmgr-2.1/src/rebootmgr.h
--- old/rebootmgr-2.0/src/rebootmgr.h   2022-10-26 12:00:23.000000000 +0200
+++ new/rebootmgr-2.1/src/rebootmgr.h   2023-08-08 15:02:30.000000000 +0200
@@ -41,10 +41,13 @@
 
 typedef enum RM_RebootOrder {
   RM_REBOOTORDER_UNKNOWN = 0,
-  RM_REBOOTORDER_STANDARD, /* Follow normal reboot strategy */
-  RM_REBOOTORDER_FAST,     /* Ignore maintenance window */
-  RM_REBOOTORDER_FORCED    /* Reboot immediately, without
-                              waiting for maintenance window */
+  RM_REBOOTORDER_STANDARD,   /* Follow normal reboot strategy */
+  RM_REBOOTORDER_FAST,       /* Ignore maintenance window */
+  RM_REBOOTORDER_FORCED,     /* Reboot immediately, without
+                                waiting for maintenance window */
+  RM_REBOOTORDER_SOFT,       /* Soft reboot with normal reboot strategy */
+  RM_REBOOTORDER_SOFT_FAST,  /* Immediate soft-reboot */
+  RM_REBOOTORDER_SOFT_FORCED /* Forced immediate reboot */
 } RM_RebootOrder;
 
 typedef enum RM_RebootStrategy {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/src/rebootmgrctl.c 
new/rebootmgr-2.1/src/rebootmgrctl.c
--- old/rebootmgr-2.0/src/rebootmgrctl.c        2022-10-26 10:08:36.000000000 
+0200
+++ new/rebootmgr-2.1/src/rebootmgrctl.c        2023-08-10 17:08:30.000000000 
+0200
@@ -419,6 +419,21 @@
        }
       retval = trigger_reboot (connection, order);
     }
+  else if (strcasecmp ("soft-reboot", argv[1]) == 0)
+    {
+      RM_RebootOrder order = RM_REBOOTORDER_SOFT;
+
+      if (argc > 2)
+       {
+         if (strcasecmp ("fast", argv[2]) == 0)
+           order = RM_REBOOTORDER_SOFT_FAST;
+         else if (strcasecmp ("now", argv[2]) == 0)
+           order = RM_REBOOTORDER_SOFT_FORCED;
+         else
+           usage (1);
+       }
+      retval = trigger_reboot (connection, order);
+    }
   else if (strcasecmp ("set-strategy", argv[1]) == 0 ||
           strcasecmp ("set_strategy", argv[1]) == 0)
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rebootmgr-2.0/src/rebootmgrd.c 
new/rebootmgr-2.1/src/rebootmgrd.c
--- old/rebootmgr-2.0/src/rebootmgrd.c  2022-10-26 12:03:29.000000000 +0200
+++ new/rebootmgr-2.1/src/rebootmgrd.c  2023-08-10 17:37:07.000000000 +0200
@@ -1,5 +1,5 @@
 
-/* Copyright (c) 2016, 2017, 2018, 2019, 2020 Thorsten Kukuk
+/* Copyright (c) 2016, 2017, 2018, 2019, 2020, 2023 Thorsten Kukuk
    Author: Thorsten Kukuk <ku...@suse.com>
 
    This program is free software; you can redistribute it and/or modify
@@ -104,7 +104,7 @@
 }
 
 static void
-reboot_now (void)
+reboot_now (int soft_reboot)
 {
   pthread_mutex_lock (&mutex_ctx);
   if (ctx->temp_off)
@@ -127,17 +127,34 @@
            }
          else if (pid == 0)
            {
-             if (execl ("/usr/bin/systemctl", "systemctl", "reboot",
-                        NULL) == -1)
+             if (soft_reboot)
                {
-                 log_msg (LOG_ERR, "Calling /usr/bin/systemctl failed: %m");
-                 exit (1);
+                 if (execl ("/usr/bin/systemctl", "systemctl", "soft-reboot",
+                            NULL) == -1)
+                   {
+                     log_msg (LOG_ERR, "Calling /usr/bin/systemctl soft-reboot 
failed: %m");
+                     exit (1);
+                   }
+               }
+             else
+               {
+                 if (execl ("/usr/bin/systemctl", "systemctl", "reboot",
+                            NULL) == -1)
+                   {
+                     log_msg (LOG_ERR, "Calling /usr/bin/systemctl reboot 
failed: %m");
+                     exit (1);
+                   }
                }
              exit (0);
            }
        }
       else
-       log_msg (LOG_DEBUG, "systemctl reboot called!");
+       {
+         if (soft_reboot)
+           log_msg (LOG_DEBUG, "systemctl soft-reboot called!");
+         else
+           log_msg (LOG_DEBUG, "systemctl reboot called!");
+       }
 
       ctx->reboot_status = RM_REBOOTSTATUS_NOT_REQUESTED;
     }
@@ -147,25 +164,25 @@
 /* Check which reboot method and forward to that function */
 /* Called by timer_create as new thread */
 static void
-reboot_timer (sigval_t RM_UNUSED(user_data))
+reboot_timer (sigval_t soft_reboot)
 {
   if (debug_flag)
     log_msg (LOG_DEBUG, "reboot_timer called");
 
-    reboot_now ();
+    reboot_now (soft_reboot.sival_int);
 }
 
 /* Create a new timer thread, which calls '_function' after
    specified seconds */
 static timer_t
-create_timer (time_t seconds, void (*_function) (sigval_t))
+create_timer (time_t seconds, int soft_reboot, void (*_function) (sigval_t))
 {
   timer_t timer_id;
 
   /* Create timer */
   struct sigevent se;
   se.sigev_notify = SIGEV_THREAD;
-  se.sigev_value.sival_ptr = NULL;
+  se.sigev_value.sival_int = soft_reboot;
   se.sigev_notify_function = _function;
   se.sigev_notify_attributes = NULL;
   if (timer_create(CLOCK_REALTIME, &se, &timer_id) == -1)
@@ -191,7 +208,7 @@
 }
 
 static void
-initialize_timer (void)
+initialize_timer (int soft_reboot)
 {
   int r;
   usec_t curr = now(CLOCK_REALTIME);
@@ -215,7 +232,7 @@
     {
       /* we are inside the maintenance window, reboot */
       pthread_mutex_unlock (&mutex_ctx);
-      reboot_timer ((sigval_t) 0);
+      reboot_timer ((sigval_t) soft_reboot);
       return;
     }
 
@@ -248,7 +265,7 @@
     timer_delete(ctx->reboot_timer_id);
 
   ctx->reboot_timer_id =
-    create_timer ((next - curr) / USEC_PER_SEC, reboot_timer);
+    create_timer ((next - curr) / USEC_PER_SEC, soft_reboot, reboot_timer);
 
   pthread_mutex_unlock (&mutex_ctx);
 }
@@ -262,47 +279,52 @@
 
   ctx->reboot_status = RM_REBOOTSTATUS_REQUESTED;
 
-  if (ctx->reboot_order == RM_REBOOTORDER_FORCED)
+  if (ctx->reboot_order == RM_REBOOTORDER_FORCED ||
+      ctx->reboot_order == RM_REBOOTORDER_SOFT_FORCED)
     {
       if (debug_flag)
        log_msg (LOG_DEBUG, "Forced reboot requested");
       pthread_mutex_unlock (&mutex_ctx);
-      reboot_now ();
+      reboot_now (ctx->reboot_order == RM_REBOOTORDER_SOFT);
       return;
     }
 
+  int soft_reboot = ctx->reboot_order == RM_REBOOTORDER_SOFT || 
ctx->reboot_order == RM_REBOOTORDER_SOFT_FAST || ctx->reboot_order == 
RM_REBOOTORDER_SOFT_FORCED;
+
   switch (ctx->reboot_strategy)
     {
     case RM_REBOOTSTRATEGY_BEST_EFFORT:
       if (ctx->maint_window_start != NULL &&
-         ctx->reboot_order != RM_REBOOTORDER_FAST)
+         ctx->reboot_order != RM_REBOOTORDER_FAST &&
+         ctx->reboot_order != RM_REBOOTORDER_SOFT_FAST)
        {
          pthread_mutex_unlock (&mutex_ctx);
-         initialize_timer();
+         initialize_timer(soft_reboot);
          return;
        }
       else
        {
          pthread_mutex_unlock (&mutex_ctx);
-         reboot_now ();
+         reboot_now (soft_reboot);
          return;
        }
       break;
     case RM_REBOOTSTRATEGY_INSTANTLY:
       pthread_mutex_unlock (&mutex_ctx);
-      reboot_now ();
+      reboot_now (soft_reboot);
       return;
       break;
     case RM_REBOOTSTRATEGY_MAINT_WINDOW:
       if (ctx->reboot_order == RM_REBOOTORDER_FAST ||
+         ctx->reboot_order == RM_REBOOTORDER_SOFT_FAST ||
          ctx->maint_window_start == NULL)
        {
          pthread_mutex_unlock (&mutex_ctx);
-         reboot_now ();
+         reboot_now (soft_reboot);
          return;
        }
       pthread_mutex_unlock (&mutex_ctx);
-      initialize_timer ();
+      initialize_timer (soft_reboot);
       return;
       break;
     case RM_REBOOTSTRATEGY_OFF:
@@ -353,6 +375,21 @@
              if (debug_flag)
                log_msg (LOG_DEBUG, "Reboot now");
            }
+         else    if (order == RM_REBOOTORDER_SOFT)
+           {
+             if (debug_flag)
+               log_msg (LOG_DEBUG, "Soft reboot at next possible time");
+           }
+         else if (order == RM_REBOOTORDER_SOFT_FAST)
+           {
+             if (debug_flag)
+               log_msg (LOG_DEBUG, "Soft reboot as fast as possible");
+           }
+         else if (order == RM_REBOOTORDER_SOFT_FORCED)
+           {
+             if (debug_flag)
+               log_msg (LOG_DEBUG, "Soft reboot now");
+           }
          else
            {
              log_msg (LOG_ERR, "ERROR: Unknown reboot order (%i), ignore 
reboot command",
@@ -610,7 +647,7 @@
       log_msg (LOG_INFO, "Lost connection to D-Bus");
       dbus_connection_unref (connection);
       connection = NULL;
-      create_timer (1, dbus_reconnect);
+      create_timer (1, 0, dbus_reconnect);
       handled = DBUS_HANDLER_RESULT_HANDLED;
     }
 
Binary files old/rebootmgr-2.0/tests/test-calendarspec and 
new/rebootmgr-2.1/tests/test-calendarspec differ
Binary files old/rebootmgr-2.0/tests/test-parse-duration and 
new/rebootmgr-2.1/tests/test-parse-duration differ

Reply via email to