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 <ku...@suse.de> --> +<!-- Copyright 2017, 2020, 2023 Thorsten Kukuk <ku...@suse.de> --> <!-- 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