Hello community,
here is the log from the commit of package transactional-update for openSUSE:Factory checked in at 2018-02-01 21:29:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transactional-update (Old)
and /work/SRC/openSUSE:Factory/.transactional-update.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "transactional-update"
Thu Feb 1 21:29:09 2018 rev:19 rq:571471 version:1.26
Changes:
--------
--- /work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes 2018-01-09 14:56:39.110074126 +0100
+++ /work/SRC/openSUSE:Factory/.transactional-update.new/transactional-update.changes 2018-02-01 21:29:10.969651345 +0100
@@ -1,0 +2,13 @@
+Wed Jan 31 16:14:14 CET 2018 - kukuk@suse.de
+
+- Update to version 1.26
+ - Auto accept repo keys config option
+ - Detect broken snapshots after abort
+ - Ignore user deleted snapshots
+ - Include all error messages in main log file
+ - Add configuration file
+ - Correctly implement migration of major OS versions
+ - Default reboot strategy is configuration option
+ - Salt option is deprecated
+
+-------------------------------------------------------------------
Old:
----
transactional-update-1.25.tar.bz2
New:
----
transactional-update-1.26.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ transactional-update.spec ++++++
--- /var/tmp/diff_new_pack.pZLEAL/_old 2018-02-01 21:29:11.633620314 +0100
+++ /var/tmp/diff_new_pack.pZLEAL/_new 2018-02-01 21:29:11.633620314 +0100
@@ -17,7 +17,7 @@
Name: transactional-update
-Version: 1.25
+Version: 1.26
Release: 0
Summary: Transactional Updates with btrfs and snapshots
License: GPL-2.0+
@@ -64,11 +64,13 @@
%files
%defattr(-,root,root)
%doc NEWS COPYING
+%config(noreplace) %{_sysconfdir}/transactional-update.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/transactional-update
%{_unitdir}/transactional-update.service
%{_unitdir}/transactional-update.timer
%{_sbindir}/transactional-update
%{_sbindir}/tu-rebuild-kdump-initrd
+%{_mandir}/man5/transactional-update.conf.5%{ext_man}
%{_mandir}/man8/transactional-update.8%{ext_man}
%{_mandir}/man8/transactional-update.timer.8%{ext_man}
%{_mandir}/man8/transactional-update.service.8%{ext_man}
++++++ transactional-update-1.25.tar.bz2 -> transactional-update-1.26.tar.bz2 ++++++
++++ 1967 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/Makefile.am new/transactional-update-1.26/Makefile.am
--- old/transactional-update-1.25/Makefile.am 2017-11-28 13:13:48.000000000 +0100
+++ new/transactional-update-1.26/Makefile.am 2018-01-22 13:01:43.000000000 +0100
@@ -5,7 +5,7 @@
#
AUTOMAKE_OPTIONS = 1.6 foreign check-news dist-bzip2
#
-SUBDIRS = sbin man systemd logrotate doc
+SUBDIRS = sbin man systemd logrotate doc etc
CLEANFILES = *~
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/NEWS new/transactional-update-1.26/NEWS
--- old/transactional-update-1.25/NEWS 2018-01-08 16:05:59.000000000 +0100
+++ new/transactional-update-1.26/NEWS 2018-01-31 10:51:45.000000000 +0100
@@ -2,6 +2,16 @@
Copyright (C) 2016, 2017, 2018 Thorsten Kukuk
+Version 1.26
+* Auto accept repo keys config option
+* Detect broken snapshots after abort
+* Ignore user deleted snapshots
+* Include all error messages in main log file
+* Add configuration file
+* Correctly implement migration of major OS versions
+* Default reboot strategy is configuration option
+* Salt option is deprecated
+
Version 1.25
* Add support for seperate /var partition
* Preliminary SELinux support
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/configure.ac new/transactional-update-1.26/configure.ac
--- old/transactional-update-1.25/configure.ac 2018-01-08 16:03:59.000000000 +0100
+++ new/transactional-update-1.26/configure.ac 2018-01-31 10:48:24.000000000 +0100
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT(transactional-update, 1.25)
+AC_INIT(transactional-update, 1.26)
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([sbin/transactional-update.in])
AC_PREFIX_DEFAULT(/usr)
@@ -65,4 +65,5 @@
fi
AC_OUTPUT([Makefile sbin/Makefile man/Makefile systemd/Makefile \
- logrotate/Makefile doc/Makefile sbin/transactional-update])
+ logrotate/Makefile doc/Makefile etc/Makefile \
+ sbin/transactional-update])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/doc/transactional-update.xml new/transactional-update-1.26/doc/transactional-update.xml
--- old/transactional-update-1.25/doc/transactional-update.xml 2017-12-19 14:57:31.000000000 +0100
+++ new/transactional-update-1.26/doc/transactional-update.xml 2018-01-29 17:23:19.000000000 +0100
@@ -136,7 +136,7 @@
<chapter id="tu-howitworks">
<title>How it works</title>
- <section>
+ <section id="tu-howitworks-filesystem">
<title>Filesystem</title>
<para>
For transactional updates the snapshot functionality of
@@ -154,7 +154,7 @@
it provides snapshot functionality.
</para>
</section>
- <section>
+ <section id="tu-howitworks-update">
<title>Update</title>
<mediaobject>
<imageobject>
@@ -283,7 +283,7 @@
</caption>
</mediaobject>
</section>
- <section>
+ <section id="tu-howitworks-commands">
<title>Commands used</title>
<para>
In the end, creating and updating snapshots are only a few commands:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/etc/Makefile.am new/transactional-update-1.26/etc/Makefile.am
--- old/transactional-update-1.25/etc/Makefile.am 1970-01-01 01:00:00.000000000 +0100
+++ new/transactional-update-1.26/etc/Makefile.am 2018-01-22 13:01:43.000000000 +0100
@@ -0,0 +1,7 @@
+#
+# Copyright (c) 2018 Ignaz Forster
+#
+
+sysconf_DATA = transactional-update.conf
+
+EXTRA_DIST = $(DATA)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/etc/transactional-update.conf new/transactional-update-1.26/etc/transactional-update.conf
--- old/transactional-update-1.25/etc/transactional-update.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/transactional-update-1.26/etc/transactional-update.conf 2018-01-31 10:47:28.000000000 +0100
@@ -0,0 +1,10 @@
+# Configuration file for transactional-update
+# See transactional-update.conf(5) for details
+
+# Reboot method
+# Valid values: auto salt rebootmgr systemd
+#REBOOT_METHOD=auto
+
+# Import new repository GPG keys automatically
+# Valid values: 0 1
+#ZYPPER_AUTO_IMPORT_KEYS=0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/man/Makefile.am new/transactional-update-1.26/man/Makefile.am
--- old/transactional-update-1.25/man/Makefile.am 2017-02-06 14:46:40.000000000 +0100
+++ new/transactional-update-1.26/man/Makefile.am 2018-01-22 13:01:43.000000000 +0100
@@ -10,12 +10,13 @@
xml_helper.py transactional-update.index.xml
man_MANS = transactional-update.8 transactional-update.service.8 \
- transactional-update.timer.8
+ transactional-update.timer.8 transactional-update.conf.5
noinst_DATA = transactional-update.8.html transactional-update.service.8.html \
- transactional-update.timer.8.html transactional-update.index.html
+ transactional-update.timer.8.html transactional-update.conf.5.html \
+ transactional-update.index.html
-XMLS = transactional-update.8.xml
+XMLS = transactional-update.8.xml transactional-update.conf.5.xml
XSLTPROC_FLAGS_HTML = \
--nonet \
@@ -39,6 +40,10 @@
transactional-update.8: transactional-update.8.xml
$(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) --xinclude --nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+transactional-update.service.8: transactional-update.8
+
+transactional-update.timer.8: transactional-update.8
+
transactional-update.8.html: transactional-update.8.xml custom-html.xsl
$(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) $(XSLTPROC_FLAGS_HTML) $<
@@ -51,4 +56,10 @@
transactional-update.index.html: transactional-update.index.xml custom-html.xsl
$(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) $(XSLTPROC_FLAGS_HTML) $<
+transactional-update.conf.5: transactional-update.conf.5.xml
+ $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) --xinclude --nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+
+transactional-update.conf.5.html: transactional-update.conf.5.xml custom-html.xsl
+ $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) $(XSLTPROC_FLAGS_HTML) $<
+
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/man/transactional-update.8 new/transactional-update-1.26/man/transactional-update.8
--- old/transactional-update-1.25/man/transactional-update.8 2017-11-28 14:05:50.000000000 +0100
+++ new/transactional-update-1.26/man/transactional-update.8 2018-01-29 17:23:24.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: transactional-update
.\" Author: Thorsten Kukuk
.\" Generator: DocBook XSL Stylesheets v1.78.1 http://docbook.sf.net/
-.\" Date: 11/28/2017
+.\" Date: 01/29/2018
.\" Manual: transactional-update
.\" Source: transactional-update
.\" Language: English
.\"
-.TH "TRANSACTIONAL\-UPDAT" "8" "11/28/2017" "transactional-update" "transactional-update"
+.TH "TRANSACTIONAL\-UPDAT" "8" "01/29/2018" "transactional-update" "transactional-update"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -200,6 +200,7 @@
\fBlibnss_usrfiles\fR\&. This prevents that the new accounts are hidden by local modifications by the system administrator\&.
.SH "SEE ALSO"
.PP
+\fBtransactional-update.conf\fR(5),
\fBsystemd.timer\fR(5),
\fBsystemd.time\fR(7)
.SH "AUTHOR"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/man/transactional-update.8.html new/transactional-update-1.26/man/transactional-update.8.html
--- old/transactional-update-1.25/man/transactional-update.8.html 2017-11-28 14:05:51.000000000 +0100
+++ new/transactional-update-1.26/man/transactional-update.8.html 2018-01-29 17:23:24.000000000 +0100
@@ -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="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.23</span><hr><div class="refentry"><a name="transactional-update.8"></a><div class="titlepage"></div><div class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, transactional-update.service, transactional-update.timer — Apply updates to the system in an atomic way via transactional
+ </style><a href="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.25</span><hr><div class="refentry"><a name="transactional-update.8"></a><div class="titlepage"></div><div class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, transactional-update.service, transactional-update.timer — Apply updates to the system in an atomic way via transactional
updates.</p></div><div class="refsynopsisdiv"><a name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">transactional-update</code> [--help] [--version]</p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> [cleanup] [ up | dup | patch | bootloader | initrd ] [kdump] [reboot]</p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> [cleanup] [reboot] pkg install | remove | update <RPM>...<RPM> </p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> migration </p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> rollback [number]</p></div><p><code class="filename">transactional-update.service</code></p><p><code class="filename">transactional-update.timer</code></p></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="command"><strong>transactional-update</strong></span> updates the system
in a transactional way, which means: it is atomic, so either the patches are
fully applied or nothing is changed. The update does not influence your
@@ -127,5 +127,6 @@
copied into <code class="filename">/usr/etc</code> and can be accessed by tools like
<span class="command"><strong>libnss_usrfiles</strong></span>. This prevents that the new accounts are
hidden by local modifications by the system administrator.
-</p></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.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a>,
+</p></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="transactional-update.conf.5.html"><span class="citerefentry"><span class="refentrytitle">transactional-update.conf</span>(5)</span></a>,
+<a href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</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></p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/man/transactional-update.8.xml new/transactional-update-1.26/man/transactional-update.8.xml
--- old/transactional-update-1.25/man/transactional-update.8.xml 2017-11-28 14:04:07.000000000 +0100
+++ new/transactional-update-1.26/man/transactional-update.8.xml 2018-01-22 13:01:43.000000000 +0100
@@ -335,7 +335,8 @@
</refsect1>
<refsect1 id='see_also'><title>SEE ALSO</title>
-<para><citerefentry project='systemd'><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+<para><citerefentry><refentrytitle>transactional-update.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+<citerefentry project='systemd'><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='systemd'><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry></para>
</refsect1>
</refentry>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/man/transactional-update.conf.5 new/transactional-update-1.26/man/transactional-update.conf.5
--- old/transactional-update-1.25/man/transactional-update.conf.5 1970-01-01 01:00:00.000000000 +0100
+++ new/transactional-update-1.26/man/transactional-update.conf.5 2018-01-31 10:47:30.000000000 +0100
@@ -0,0 +1,98 @@
+'\" t
+.\" Title: transactional-update.conf
+.\" Author: Ignaz Forster
+.\" Generator: DocBook XSL Stylesheets v1.78.1 http://docbook.sf.net/
+.\" Date: 01/31/2018
+.\" Manual: transactional-update.conf
+.\" Source: transactional-update
+.\" Language: English
+.\"
+.TH "TRANSACTIONAL\-UPDAT" "5" "01/31/2018" "transactional-update" "transactional-update.conf"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+transactional-update.conf \- transactional\-update configuration file
+.SH "SYNOPSIS"
+.PP
+/etc/transactional\-update\&.conf
+.SH "DESCRIPTION"
+.PP
+This configuration file controls and defines the behaviour of
+\fBtransactional-update\fR(8)\&.
+.PP
+The
+transactional\-update\&.conf
+file uses shell style assignments, e\&.g\&.
+PARAMETER=value\&.
+.SH "OPTIONS"
+.PP
+The following options are available in the
+transactional\-update
+section:
+.PP
+\fIREBOOT_METHOD\fR
+.RS 4
+Specify the reboot method to use\&.
+.PP
+auto
+.RS 4
+Uses
+rebootmgr
+if available and active; falls back to
+systemd
+otherwise\&.
+.sp
+This is the default value\&. If the option is invalid it will also be used as the fallback value\&.
+.RE
+.PP
+salt
+.RS 4
+Will create a Salt grain for signaling Velum to reboot the system\&.
+.RE
+.PP
+rebootmgr
+.RS 4
+\fBrebootmgrctl\fR(1)
+will be triggered to initiate a reboot\&.
+.RE
+.PP
+systemd
+.RS 4
+\fBsystemctl\fR(1)
+will be called to initiate a reboot\&.
+.RE
+.RE
+.PP
+\fIZYPPER_AUTO_IMPORT_KEYS\fR
+.RS 4
+If set to
+1
+GPG keys will be imported automatically for new repositories\&. If set to
+0
+updates will fail if a key is unknown\&. For security reasons this option is turned off (0) by default\&.
+.RE
+.SH "SEE ALSO"
+.PP
+\fBtransactional-update\fR(8)
+.SH "AUTHOR"
+.PP
+\fBIgnaz Forster\fR <\&iforster@suse\&.com\&>
+.RS 4
+.RE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/man/transactional-update.conf.5.html new/transactional-update-1.26/man/transactional-update.conf.5.html
--- old/transactional-update-1.25/man/transactional-update.conf.5.html 1970-01-01 01:00:00.000000000 +0100
+++ new/transactional-update-1.26/man/transactional-update.conf.5.html 2018-01-31 10:47:30.000000000 +0100
@@ -0,0 +1,45 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>transactional-update.conf</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.25</span><hr><div class="refentry"><a name="transactional-update.conf.5"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>transactional-update.conf — transactional-update configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/transactional-update.conf</code></p></div><div class="refsect1"><a name="id-1.5"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>This configuration file controls and defines the behaviour of
+ <a href="transactional-update.8.html"><span class="citerefentry"><span class="refentrytitle">transactional-update</span>(8)</span></a>.</p><p>The transactional-update.conf file uses shell
+ style assignments, e.g. <code class="code">PARAMETER=value</code>.</p></div><div class="refsect1"><a name="id-1.6"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are available in the
+ "<code class="literal">transactional-update</code>" section:
+ </p><div class="variablelist"><dl class="variablelist"><dt id="REBOOT_METHOD"><span class="term"><code class="varname">REBOOT_METHOD</code></span><a class="headerlink" title="Permalink to this term" href="#REBOOT_METHOD">¶</a></dt><dd><p>Specify the reboot method to use.</p><div class="variablelist"><dl class="variablelist"><dt id="auto"><span class="term">"<code class="literal">auto</code>"</span><a class="headerlink" title="Permalink to this term" href="#auto">¶</a></dt><dd><p>
+ Uses "<code class="literal">rebootmgr</code>" if available and active;
+ falls back to "<code class="literal">systemd</code>" otherwise.
+ </p><p>
+ This is the default value. If the option is invalid it will
+ also be used as the fallback value.
+ </p></dd><dt id="salt"><span class="term">"<code class="literal">salt</code>"</span><a class="headerlink" title="Permalink to this term" href="#salt">¶</a></dt><dd><p>
+ Will create a Salt grain for signaling Velum to reboot the
+ system.
+ </p></dd><dt id="rebootmgr"><span class="term">"<code class="literal">rebootmgr</code>"</span><a class="headerlink" title="Permalink to this term" href="#rebootmgr">¶</a></dt><dd><p>
+ <span class="citerefentry"><span class="refentrytitle">rebootmgrctl</span>(1)</span>
+ will be triggered to initiate a reboot.
+ </p></dd><dt id="systemd"><span class="term">"<code class="literal">systemd</code>"</span><a class="headerlink" title="Permalink to this term" href="#systemd">¶</a></dt><dd><p>
+ <a href="https://www.freedesktop.org/software/systemd/man/systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>
+ will be called to initiate a reboot.
+ </p></dd></dl></div></dd><dt id="ZYPPER_AUTO_IMPORT_KEYS"><span class="term"><code class="varname">ZYPPER_AUTO_IMPORT_KEYS</code></span><a class="headerlink" title="Permalink to this term" href="#ZYPPER_AUTO_IMPORT_KEYS">¶</a></dt><dd><p>
+ If set to "<code class="literal">1</code>" GPG keys will be imported
+ automatically for new repositories. If set to "<code class="literal">0</code>"
+ updates will fail if a key is unknown.
+ For security reasons this option is turned off
+ ("<code class="literal">0</code>") by default.
+ </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="transactional-update.8.html"><span class="citerefentry"><span class="refentrytitle">transactional-update</span>(8)</span></a>
+ </p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/man/transactional-update.conf.5.xml new/transactional-update-1.26/man/transactional-update.conf.5.xml
--- old/transactional-update-1.25/man/transactional-update.conf.5.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/transactional-update-1.26/man/transactional-update.conf.5.xml 2018-01-31 10:47:28.000000000 +0100
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
+
+<!-- \-*\- nroff \-*\- -->
+<!-- Copyright 2018 Ignaz Forster <iforster@suse.com> -->
+
+<!-- This file is part of transactional-update. -->
+
+<!-- This program is free software; you can redistribute it and/or -->
+<!-- modify it under the terms of the GNU General Public License -->
+<!-- as published by the Free Software Foundation; either version 2 -->
+<!-- of the License, or (at your option) any later version. -->
+
+<!-- This program is distributed in the hope that it will be useful, -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
+<!-- GNU General Public License for more details. -->
+
+<!-- You should have received a copy of the GNU General Public License -->
+<!-- along with this program; if not, see <http://www.gnu.org/licenses/>. -->
+
+<refentry id="transactional-update.conf.5">
+ <refentryinfo>
+ <title>transactional-update.conf</title>
+ <productname>transactional-update</productname>
+
+ <authorgroup>
+ <author>
+ <contrib></contrib>
+ <firstname>Ignaz</firstname>
+ <surname>Forster</surname>
+ <email>iforster@suse.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>transactional-update.conf</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>transactional-update.conf</refname>
+ <refpurpose>transactional-update configuration file</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <para><filename>/etc/transactional-update.conf</filename></para>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>This configuration file controls and defines the behaviour of
+ <citerefentry>
+ <refentrytitle>transactional-update</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </citerefentry>.</para>
+ <para>The <refname>transactional-update.conf</refname> file uses shell
+ style assignments, e.g. <code>PARAMETER=value</code>.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>The following options are available in the
+ <literal>transactional-update</literal> section:
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>REBOOT_METHOD</varname></term>
+ <listitem>
+ <para>Specify the reboot method to use.</para>
+ <variablelist>
+ <varlistentry>
+ <term><literal>auto</literal></term>
+ <listitem>
+ <para>
+ Uses <literal>rebootmgr</literal> if available and active;
+ falls back to <literal>systemd</literal> otherwise.
+ </para>
+ <para>
+ This is the default value. If the option is invalid it will
+ also be used as the fallback value.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>salt</literal></term>
+ <listitem>
+ <para>
+ Will create a Salt grain for signaling Velum to reboot the
+ system.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>rebootmgr</literal></term>
+ <listitem>
+ <para>
+ <citerefentry project='rebootmgr'><refentrytitle>rebootmgrctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ will be triggered to initiate a reboot.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>systemd</literal></term>
+ <listitem>
+ <para>
+ <citerefentry project='systemd'><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ will be called to initiate a reboot.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ZYPPER_AUTO_IMPORT_KEYS</varname></term>
+ <listitem>
+ <para>
+ If set to <literal>1</literal> GPG keys will be imported
+ automatically for new repositories. If set to <literal>0</literal>
+ updates will fail if a key is unknown.
+ For security reasons this option is turned off
+ (<literal>0</literal>) by default.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>transactional-update</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/man/transactional-update.index.html new/transactional-update-1.26/man/transactional-update.index.html
--- old/transactional-update-1.25/man/transactional-update.index.html 2017-11-28 14:06:24.000000000 +0100
+++ new/transactional-update-1.26/man/transactional-update.index.html 2018-01-31 10:47:31.000000000 +0100
@@ -15,4 +15,4 @@
h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
visibility: visible;
}
- </style><a href="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.23</span><hr><div class="refentry"><a name="transactional-update.index"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>transactional-update.index — List all manpages from the transactional-update project</p></div><div class="refsect1"><a name="id-1.4"></a><h2 id="T">T<a class="headerlink" title="Permalink to this headline" href="#T">¶</a></h2><p><a href="transactional-update.8.html"><span class="citerefentry"><span class="refentrytitle">transactional-update</span>(8)</span></a> -- Apply updates to the system in an atomic way via transactional updates.<br><a href="transactional-update.service.8.html"><span class="citerefentry"><span class="refentrytitle">transactional-update.service</span>(8)</span></a> -- Apply updates to the system in an atomic way via transactional updates.<br><a href="transactional-update.timer.8.html"><span class="citerefentry"><span class="refentrytitle">transactional-update.timer</span>(8)</span></a> -- Apply updates to the system in an atomic way via transactional updates.<br></p></div><div class="refsect1"><a name="id-1.5"></a><p><a name="counts"></a>This index contains 3 entries, referring to 1 individual manual pages.</p></div></div></body></html>
+ </style><a href="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.25</span><hr><div class="refentry"><a name="transactional-update.index"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>transactional-update.index — List all manpages from the transactional-update project</p></div><div class="refsect1"><a name="id-1.4"></a><h2 id="T">T<a class="headerlink" title="Permalink to this headline" href="#T">¶</a></h2><p><a href="transactional-update.8.html"><span class="citerefentry"><span class="refentrytitle">transactional-update</span>(8)</span></a> -- Apply updates to the system in an atomic way via transactional updates.<br><a href="transactional-update.conf.5.html"><span class="citerefentry"><span class="refentrytitle">transactional-update.conf</span>(5)</span></a> -- transactional-update configuration file<br><a href="transactional-update.service.8.html"><span class="citerefentry"><span class="refentrytitle">transactional-update.service</span>(8)</span></a> -- Apply updates to the system in an atomic way via transactional updates.<br><a href="transactional-update.timer.8.html"><span class="citerefentry"><span class="refentrytitle">transactional-update.timer</span>(8)</span></a> -- Apply updates to the system in an atomic way via transactional updates.<br></p></div><div class="refsect1"><a name="id-1.5"></a><p><a name="counts"></a>This index contains 4 entries, referring to 2 individual manual pages.</p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/man/transactional-update.index.xml new/transactional-update-1.26/man/transactional-update.index.xml
--- old/transactional-update-1.25/man/transactional-update.index.xml 2017-11-28 14:06:24.000000000 +0100
+++ new/transactional-update-1.26/man/transactional-update.index.xml 2018-01-31 10:47:30.000000000 +0100
@@ -14,6 +14,6 @@
<refname>transactional-update.index</refname>
<refpurpose>List all manpages from the transactional-update project</refpurpose>
</refnamediv>
-<refsect1><title>T</title><para><citerefentry><refentrytitle>transactional-update</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Apply updates to the system in an atomic way via transactional updates.<sbr/><citerefentry><refentrytitle>transactional-update.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Apply updates to the system in an atomic way via transactional updates.<sbr/><citerefentry><refentrytitle>transactional-update.timer</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Apply updates to the system in an atomic way via transactional updates.<sbr/></para></refsect1><refsect1>
- <para id="counts">This index contains 3 entries, referring to 1 individual manual pages.</para>
+<refsect1><title>T</title><para><citerefentry><refentrytitle>transactional-update</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Apply updates to the system in an atomic way via transactional updates.<sbr/><citerefentry><refentrytitle>transactional-update.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- transactional-update configuration file<sbr/><citerefentry><refentrytitle>transactional-update.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Apply updates to the system in an atomic way via transactional updates.<sbr/><citerefentry><refentrytitle>transactional-update.timer</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Apply updates to the system in an atomic way via transactional updates.<sbr/></para></refsect1><refsect1>
+ <para id="counts">This index contains 4 entries, referring to 2 individual manual pages.</para>
</refsect1></refentry>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/man/transactional-update.service.8.html new/transactional-update-1.26/man/transactional-update.service.8.html
--- old/transactional-update-1.25/man/transactional-update.service.8.html 2017-11-28 14:05:51.000000000 +0100
+++ new/transactional-update-1.26/man/transactional-update.service.8.html 2018-01-29 17:23:24.000000000 +0100
@@ -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="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.23</span><hr><div class="refentry"><a name="transactional-update.8"></a><div class="titlepage"></div><div class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, transactional-update.service, transactional-update.timer — Apply updates to the system in an atomic way via transactional
+ </style><a href="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.25</span><hr><div class="refentry"><a name="transactional-update.8"></a><div class="titlepage"></div><div class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, transactional-update.service, transactional-update.timer — Apply updates to the system in an atomic way via transactional
updates.</p></div><div class="refsynopsisdiv"><a name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">transactional-update</code> [--help] [--version]</p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> [cleanup] [ up | dup | patch | bootloader | initrd ] [kdump] [reboot]</p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> [cleanup] [reboot] pkg install | remove | update <RPM>...<RPM> </p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> migration </p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> rollback [number]</p></div><p><code class="filename">transactional-update.service</code></p><p><code class="filename">transactional-update.timer</code></p></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="command"><strong>transactional-update</strong></span> updates the system
in a transactional way, which means: it is atomic, so either the patches are
fully applied or nothing is changed. The update does not influence your
@@ -127,5 +127,6 @@
copied into <code class="filename">/usr/etc</code> and can be accessed by tools like
<span class="command"><strong>libnss_usrfiles</strong></span>. This prevents that the new accounts are
hidden by local modifications by the system administrator.
-</p></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.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a>,
+</p></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="transactional-update.conf.5.html"><span class="citerefentry"><span class="refentrytitle">transactional-update.conf</span>(5)</span></a>,
+<a href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</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></p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/man/transactional-update.timer.8.html new/transactional-update-1.26/man/transactional-update.timer.8.html
--- old/transactional-update-1.25/man/transactional-update.timer.8.html 2017-11-28 14:05:51.000000000 +0100
+++ new/transactional-update-1.26/man/transactional-update.timer.8.html 2018-01-29 17:23:24.000000000 +0100
@@ -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="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.23</span><hr><div class="refentry"><a name="transactional-update.8"></a><div class="titlepage"></div><div class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, transactional-update.service, transactional-update.timer — Apply updates to the system in an atomic way via transactional
+ </style><a href="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.25</span><hr><div class="refentry"><a name="transactional-update.8"></a><div class="titlepage"></div><div class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, transactional-update.service, transactional-update.timer — Apply updates to the system in an atomic way via transactional
updates.</p></div><div class="refsynopsisdiv"><a name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">transactional-update</code> [--help] [--version]</p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> [cleanup] [ up | dup | patch | bootloader | initrd ] [kdump] [reboot]</p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> [cleanup] [reboot] pkg install | remove | update <RPM>...<RPM> </p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> migration </p></div><div class="cmdsynopsis"><p><code class="command">transactional-update</code> rollback [number]</p></div><p><code class="filename">transactional-update.service</code></p><p><code class="filename">transactional-update.timer</code></p></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="command"><strong>transactional-update</strong></span> updates the system
in a transactional way, which means: it is atomic, so either the patches are
fully applied or nothing is changed. The update does not influence your
@@ -127,5 +127,6 @@
copied into <code class="filename">/usr/etc</code> and can be accessed by tools like
<span class="command"><strong>libnss_usrfiles</strong></span>. This prevents that the new accounts are
hidden by local modifications by the system administrator.
-</p></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.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a>,
+</p></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="transactional-update.conf.5.html"><span class="citerefentry"><span class="refentrytitle">transactional-update.conf</span>(5)</span></a>,
+<a href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</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></p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/transactional-update-1.25/sbin/transactional-update.in new/transactional-update-1.26/sbin/transactional-update.in
--- old/transactional-update-1.25/sbin/transactional-update.in 2018-01-08 15:29:26.000000000 +0100
+++ new/transactional-update-1.26/sbin/transactional-update.in 2018-01-31 10:47:28.000000000 +0100
@@ -1,6 +1,6 @@
#!/bin/bash
#
-# update_snapshot - update a snapshot of the current system
+# transactional-update - apply updates to the system in an atomic way
#
# Author: Thorsten Kukuk
# Copyright (C) 2016, 2017, 2018 SUSE Linux GmbH
@@ -34,19 +34,27 @@
DO_ROLLBACK=0
ROLLBACK_SNAPSHOT=0
REBOOT_AFTERWARDS=0
+REBOOT_METHOD="auto"
RUN_SHELL=0
USE_SALT_GRAINS=0
+CONFFILE="/etc/transactional-update.conf"
LOGFILE="/var/log/transactional-update.log"
STATE_FILE="/var/lib/misc/transactional-update.state"
PACKAGE_UPDATES=0
-HAS_SEPERATE_VAR=0
+ZYPPER_AUTO_IMPORT_KEYS=0
+HAS_SEPARATE_VAR=0
SNAPSHOT_ID=""
SECOND_SNAPSHOT_ID=""
KDUMP_SYSCONFIG="/etc/sysconfig/kdump"
-# Config files, which the user could have modified and which should
+# Config files which the user could have modified and which should
# be copied to the snapshot.
CONFIG_FILES_TO_COPY="/etc/default/grub"
+# Load config
+if [ -r ${CONFFILE} ]; then
+ . ${CONFFILE}
+fi
+
usage() {
echo "Usage: transactional-update --help|--version"
echo " transactional-update [cleanup][up|dup|patch|initrd][kdump][reboot]"
@@ -70,42 +78,42 @@
echo "$@" 1>&2
}
-function bashlock {
- if [ "$#" -ne 1 ]; then
- echo 'usage: bashlock [LOCKFILENAME]' 1>&2
- return 2
- fi
- LOCKFILE="$1"
-
- echo "$$" >"$LOCKFILE.$$"
- if ! ln "$LOCKFILE.$$" "$LOCKFILE" 2>/dev/null; then
- PID=`head -1 "$LOCKFILE"`
- if [ -z "$PID" ]; then
- rm -f "$LOCKFILE"
- else
- kill -0 "$PID" 2>/dev/null || rm -f "$LOCKFILE"
- fi
+bashlock() {
+ if [ "$#" -ne 1 ]; then
+ echo 'Usage: bashlock [LOCKFILENAME]' 1>&2
+ return 2
+ fi
+ LOCKFILE="$1"
+
+ echo "$$" >"$LOCKFILE.$$"
+ if ! ln "$LOCKFILE.$$" "$LOCKFILE" 2>/dev/null; then
+ PID=`head -1 "$LOCKFILE"`
+ if [ -z "$PID" ]; then
+ rm -f "$LOCKFILE"
+ else
+ kill -0 "$PID" 2>/dev/null || rm -f "$LOCKFILE"
+ fi
- if ! ln "$LOCKFILE.$$" "$LOCKFILE" 2>/dev/null; then
- rm -f "$LOCKFILE.$$"
- return 1
- fi
- fi
+ if ! ln "$LOCKFILE.$$" "$LOCKFILE" 2>/dev/null; then
+ rm -f "$LOCKFILE.$$"
+ return 1
+ fi
+ fi
- rm -f "$LOCKFILE.$$"
- trap 'rm -f "$LOCKFILE"' EXIT
+ rm -f "$LOCKFILE.$$"
+ trap 'rm -f "$LOCKFILE"' EXIT
- return 0
- }
+ return 0
+}
save_state_file() {
echo "LAST_WORKING_SNAPSHOTS=\"${LAST_WORKING_SNAPSHOTS}\"" > ${STATE_FILE}
echo "UNUSED_SNAPSHOTS=\"${UNUSED_SNAPSHOTS}\"" >> ${STATE_FILE}
- if [ $1 -ne 0 -a ${HAS_SEPERATE_VAR} -eq 0 ]; then
- # if /var/lib/misc is not a seperate partition/subvolume,
- # copy it additional into the new snapshot. This will have else
- # an outdated version from before taking the snapshot
+ if [ $1 -ne 0 -a ${HAS_SEPARATE_VAR} -eq 0 ]; then
+ # If /var/lib/misc is not a seperate partition / subvolume, copy the
+ # state file into the new snapshot as it will contain an outdated
+ # version from before taking the snapshot otherwise.
grep -q var.lib.misc /proc/mounts
if [ $? -ne 0 ]; then
cp -a ${STATE_FILE} "/.snapshots/$1/snapshot${STATE_FILE}"
@@ -118,18 +126,17 @@
test -f /usr/lib/systemd/system/kdump.service || return
systemctl is-enabled --quiet kdump.service
- if [ $? = 0 ]; then
+ if [ $? = 0 -a -x ${MOUNT_DIR}/usr/sbin/tu-rebuild-kdump-initrd ]; then
if [ ${KDUMP_SYSCONFIG} -nt ${MOUNT_DIR}/${KDUMP_SYSCONFIG} ]; then
cp -a ${KDUMP_SYSCONFIG} ${MOUNT_DIR}/${KDUMP_SYSCONFIG}
fi
- chroot ${MOUNT_DIR} /usr/sbin/tu-rebuild-kdump-initrd
+ chroot ${MOUNT_DIR} /usr/sbin/tu-rebuild-kdump-initrd |& tee -a ${LOGFILE}
fi
}
-# if the SHA256 sum of passwd, group or shadow has changed, copy the
-# files to /usr/etc as fallback source. Else, if the user did modify a password,
-# the shadow copy of this files will hide this changes. Needs libnss_usrfiles
-# installed.
+# If the SHA256 sum of passwd, group or shadow has changed then copy the files
+# to /usr/etc. If libnss_usrfiles is installed those files will be taken into
+# account as a secondary source if an entry is not found in /etc.
calc_user_group_sha256sum () {
SHA256_passwd=`sha256sum ${MOUNT_DIR}/etc/passwd | awk '{ print $1 }'`
SHA256_group=`sha256sum ${MOUNT_DIR}/etc/group | awk '{ print $1 }'`
@@ -137,8 +144,7 @@
}
copy_user_group_accounts () {
- # check if we have usr/etc (means libnss_usrfiles is installed.
- # if not, don't copy modified passwd, group or shadow files.
+ # Only copy files to usr/etc if libnss_usrfiles is installed.
test -d ${MOUNT_DIR}/usr/etc || return
NEWSUM=`sha256sum ${MOUNT_DIR}/etc/passwd | awk '{ print $1 }'`
@@ -157,7 +163,7 @@
fi
}
-# only called in error case
+# Only called in error case; reverts everything to previous state.
quit() {
if [ -n "${SNAPSHOT_ID}" ] ; then
log_error "Removing snapshot #${SNAPSHOT_ID}..."
@@ -185,6 +191,50 @@
exit $1
}
+reboot_via_salt() {
+ log_info "transactional-update finished - created salt grains"
+ if [ -f /etc/salt/grains ]; then
+ grep -q tx_update_reboot_needed /etc/salt/grains
+ if [ $? -ne 0 ]; then
+ # Add variable to existing salt grains
+ echo "tx_update_reboot_needed: true" >> /etc/salt/grains
+ else
+ # modify variable in existing salt grains
+ sed -i -e 's|tx_update_reboot_needed:.*|tx_update_reboot_needed: true|g' /etc/salt/grains
+ fi
+ else
+ echo "tx_update_reboot_needed: true" > /etc/salt/grains
+ fi
+ # Reset tx_update_failed if exist
+ sed -i -e 's|tx_update_failed:.*|tx_update_failed: false|g' /etc/salt/grains
+ exit 0
+}
+
+reboot_via_rebootmgr() {
+ /usr/sbin/rebootmgrctl is-active --quiet
+ if [ $? -eq 0 ]; then
+ # rebootmgrctl is running
+ /usr/sbin/rebootmgrctl reboot
+ log_info "transactional-update finished - informed rebootmgr"
+ exit 0
+ fi
+}
+
+reboot_via_systemd() {
+ log_info "transactional-update finished - rebooting machine"
+ sync
+ systemctl reboot |& tee -a ${LOGFILE}
+ exit 0
+}
+
+reboot_autodetect() {
+ if [ -x /usr/sbin/rebootmgrctl ]; then
+ reboot_via_rebootmgr
+ fi
+ # If rebootmgr is inactive try systemd
+ reboot_via_systemd
+}
+
add_unique_id() {
local NEW_ID="$1"
@@ -198,14 +248,14 @@
ORIG_ARGS="$@"
-# if no option is given, assume "up"
+# If no option is given, assume "up"
if [ $# -eq 0 ]; then
ZYPPER_ARG="up"
fi
while [ 1 ]; do
if [ $# -eq 0 ]; then
- break
+ break
fi
case "$1" in
@@ -219,8 +269,8 @@
;;
up|patch)
ZYPPER_ARG=$1
- shift
- ;;
+ shift
+ ;;
ptf|pkg|package)
shift
if [ $# -eq 0 ]; then
@@ -256,20 +306,20 @@
shift
fi
done
- # Run installing PTFs interactive
+ # Interactively run installing PTFs
ZYPPER_NONINTERACTIVE=""
;;
migration)
DO_MIGRATION=1
ZYPPER_NONINTERACTIVE=""
- ZYPPER_ARG="migration"
+ ZYPPER_ARG="migration --no-snapshots"
shift
;;
- bootloader)
+ bootloader)
REWRITE_BOOTLOADER=1
REWRITE_GRUB_CFG=1
- shift
- ;;
+ shift
+ ;;
grub.cfg)
REWRITE_GRUB_CFG=1
shift
@@ -302,19 +352,20 @@
salt)
REBOOT_AFTERWARDS=1
USE_SALT_GRAINS=1
+ REBOOT_METHOD="salt"
shift
;;
- -h|--help)
- usage 0
- ;;
- --version)
- print_version
- ;;
- *)
- if [ $# -ge 1 ]; then
- usage 1;
- fi
- ;;
+ -h|--help)
+ usage 0
+ ;;
+ --version)
+ print_version
+ ;;
+ *)
+ if [ $# -ge 1 ]; then
+ usage 1;
+ fi
+ ;;
esac
done
@@ -324,11 +375,11 @@
bashlock "/var/run/transactional-update.pid"
if [ $? -ne 0 ]; then
- echo "Couldn't get lock, another instance is already running?"
+ echo "Couldn't get lock, is another instance already running?"
exit 1;
fi
-# load old state file
+# Load old state file
if [ -f ${STATE_FILE} ]; then
. ${STATE_FILE}
fi
@@ -337,22 +388,22 @@
log_info "Options: $ORIG_ARGS"
if [ "`stat -f -c %T /`" != "btrfs" ]; then
- log_error "ERROR: no btrfs as root filesystem!"
+ log_error "ERROR: not using btrfs as root file system!"
log_info "transactional-update finished"
exit 1
fi
if [ ! -d /.snapshots ]; then
- log_error "ERROR: no snapshots for root filesystem configured!"
+ log_error "ERROR: no snapshots for root file system configured!"
log_info "transactional-update finished"
exit 1
fi
grep -q "[[:space:]]/var[[:space:]]" /proc/mounts
if [ $? -eq 0 ]; then
- log_info "Seperate /var detected"
+ log_info "Separate /var detected."
DIR_TO_MOUNT="${DIR_TO_MOUNT} /var/cache"
- HAS_SEPERATE_VAR=1
+ HAS_SEPARATE_VAR=1
else
grep -q var.cache /proc/mounts
if [ $? -ne 0 ]; then
@@ -360,6 +411,10 @@
fi
fi
+if [ ${ZYPPER_AUTO_IMPORT_KEYS} -eq 1 ]; then
+ ZYPPER_ARG="--gpg-auto-import-keys ${ZYPPER_ARG}"
+fi
+
CURRENT_SNAPSHOT_ID=`grep subvol=/@/.snapshots/ /proc/mounts | grep "/ btrfs" | sed -e 's|.*.snapshots/\(.*\)/snapshot.*|\1|g'`
DEFAULT_SNAPSHOT_ID=`btrfs subvolume get-default / | sed -e 's|.*.snapshots/\(.*\)/snapshot|\1|g'`
RO_ROOT=`btrfs property get / ro | sed -e 's|ro=||'`
@@ -372,7 +427,7 @@
NEED_REBOOT_WARNING=0
fi
- echo "Rollback to snapshot ${ROLLBACK_SNAPSHOT} ..."
+ echo "Rollback to snapshot ${ROLLBACK_SNAPSHOT}..."
if [ ${RO_ROOT} == "true" ]; then
BTRFS_ID=`btrfs subvolume list / |grep /.snapshots/${ROLLBACK_SNAPSHOT}/snapshot | awk '{print $2}'`
@@ -403,23 +458,23 @@
fi
#
-# Cleanup part: make sure old root filesystem will be removed after it is no longer active.
+# Cleanup part: make sure old root file systems will be removed after they are no longer active.
#
if [ ${DO_CLEANUP} -eq 1 ]; then
- # if there is a list of working snapshots, go through it and mark any snapshot for deletion, if it is
- # not the current used one or the active one.
+ # If there is a list of working snapshots, go through it and mark any snapshot for deletion, if it is
+ # not the currently used one or the active one.
if [ -n "${LAST_WORKING_SNAPSHOTS}" ]; then
for snap in ${LAST_WORKING_SNAPSHOTS}; do
if [ ${CURRENT_SNAPSHOT_ID} -ne ${snap} ]; then
- log_info "Add cleanup algorithm to snapshot #${snap}"
+ log_info "Adding cleanup algorithm to snapshot #${snap}"
snapper modify -c number ${snap} |& tee -a ${LOGFILE}
if [ ${PIPESTATUS[0]} -ne 0 ]; then
log_error "ERROR: cannot set cleanup algorithm for snapshot #${snap}"
fi
- # if the old snapshot is read-write, we have already a mandatory snapshot and this one can deleted
- # earlier. If not, mark is as important, so that it will not get deleted to fast.
+ # If the old snapshot is read-write, we have already a mandatory snapshot and this one can deleted
+ # earlier. If not, mark is as important, so that it will not get deleted too fast.
if [ ${RO_ROOT} == "true" ]; then
- log_info "Add \"important=yes\" to snapshot #${snap}"
+ log_info "Adding \"important=yes\" to snapshot #${snap}"
snapper modify -u "important=yes" ${snap} |& tee -a ${LOGFILE}
if [ ${PIPESTATUS[0]} -ne 0 ]; then
log_error "ERROR: cannot set \"important=yes for snapshot\" #${snap}"
@@ -433,24 +488,33 @@
save_state_file 0
fi
- # we try to cleanup always all snapshots. We only need to keep the current snapshot
- # and the new default one.
+ # Check for aborted transactional-updates (due to power outtage, killed
+ # process, forced shutdown or similar uncommon conditions).
+ for snap in `snapper list | cut -f 2,8 -d \| | grep transactional-update-in-progress=yes | cut -f 1 -d \|`; do
+ UNUSED_SNAPSHOTS="${UNUSED_SNAPSHOTS} ${snap}"
+ done
+
+ # Always try to cleanup all snapshots; only the current snapshot and an
+ # eventual new default one needs to be kept.
if [ -n "${UNUSED_SNAPSHOTS}" ]; then
_new_unused=""
for snap in ${UNUSED_SNAPSHOTS}; do
# Don't mark our current in use snapshot for deletion
if [ ${snap} -ne ${CURRENT_SNAPSHOT_ID} ] && \
[ ${snap} -ne ${DEFAULT_SNAPSHOT_ID} ]; then
- log_info "Mark not used snapshot #${snap} for deletion"
+ log_info "Mark unused snapshot #${snap} for deletion"
snapper modify -c number ${snap} |& tee -a ${LOGFILE}
if [ ${PIPESTATUS[0]} -ne 0 ]; then
log_error "ERROR: cannot set cleanup algorithm for snapshot #${snap}"
- # Keep the snapshot in the list
- _new_unused="${snap} ${_new_unused}"
+ # Is the snapshot still available at all?
+ if snapper list | cut -f 2 -d \| | grep -q ${snap}; then
+ # Keep the snapshot in the list
+ _new_unused="${snap} ${_new_unused}"
+ fi
fi
elif [ ${snap} -ne ${CURRENT_SNAPSHOT_ID} ]; then
- # We currently still need the snapshot, so keep it in the
- # list. Else we will never clean it up later.
+ # This is the snapshot which is currently in use, so keep it in
+ # the list. We would probably never clean it up later otherwise.
_new_unused="${snap} ${_new_unused}"
fi
done
@@ -468,7 +532,10 @@
TMPFILE=`mktemp /tmp/transactional-update.XXXXXXXXXX`
zypper --xml ${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} --dry-run ${ZYPPER_ARG_PKGS} > ${TMPFILE}
if [ $? -ne 0 ]; then
- log_error "ERROR: zypper failed! Logs could be found in ${TMPFILE}"
+ LOG_MESSAGES=`awk -v RS='<' -v FS='>' '{if ($1 ~ /^(message|description)/) print $2}' ${TMPFILE} | perl -MHTML::Entities -pe 'decode_entities($_);'`
+ log_error "ERROR: Zypper failed with the following message(s):"
+ log_error "${LOG_MESSAGES}"
+ rm -f ${TMPFILE}
quit 1
fi
PACKAGE_UPDATES=`grep "install-summary download-size" ${TMPFILE} | sed -e 's|.*install-summary download-size=\"\(.*\)\" space-usage-diff.*|\1|g'`
@@ -478,10 +545,10 @@
log_info "zypper: nothing to update"
log_info "transactional-update finished"
if [ $USE_SALT_GRAINS -eq 1 ]; then
- log_info "Update salt grains"
+ log_info "Updating salt grains"
if [ -f /etc/salt/grains ]; then
- # Reset tx_update_failed if exist. Could have been set due to wrong
- # repository configuration or other temporary error before.
+ # Reset tx_update_failed if it exists. Could have been set due to wrong
+ # repository configuration or another temporary error before.
sed -i -e 's|tx_update_failed:.*|tx_update_failed: false|g' /etc/salt/grains
fi
fi
@@ -489,10 +556,10 @@
fi
fi
- # If the current root filesystem is not read-only, we need to create a read-only copy for rollback.
- # The rw subvolume is not shown in grub2.
+ # If the current root file system is not read-only, a read-only copy for rollback has to be created first.
+ # Hint: The rw subvolume is not shown in grub2.
if [ ${RO_ROOT} == "false" ]; then
- log_info "Create read-only snapshot of current read-write root filesystem (#${CURRENT_SNAPSHOT_ID})"
+ log_info "Creating read-only snapshot of current read-write root filesystem (#${CURRENT_SNAPSHOT_ID})"
SECOND_SNAPSHOT_ID=`snapper create -p -c number -u "important=yes" -d "RO-Clone of #${CURRENT_SNAPSHOT_ID}"`
if [ $? -ne 0 ]; then
log_error "ERROR: snapper create failed!"
@@ -500,7 +567,7 @@
fi
fi
- SNAPSHOT_ID=`snapper create -p -d "Snapshot Update"`
+ SNAPSHOT_ID=`snapper create -p -u "transactional-update-in-progress=yes" -d "Snapshot Update"`
if [ $? -ne 0 ]; then
log_error "ERROR: snapper create failed!"
quit 1
@@ -516,19 +583,28 @@
fi
# Remember all snapshots we create for update. If transactional-update is
- # run several times before a reboot, we need to cleanup the not used
- # snapshots. Else we would have a big disk space leak. But don't store it
- # on disk yet, in error case we would delete the snapshot again.
+ # run several times before a reboot, we need to clean up the unused
+ # snapshots, otherwise we would have a big disk space leak. But don't store
+ # it on disk yet, in error case we would delete the snapshot again.
UNUSED_SNAPSHOTS="${SNAPSHOT_ID} ${UNUSED_SNAPSHOTS}"
# Check if installed with SLES12
- if [ ${HAS_SEPERATE_VAR} -eq 0 ]; then
+ if [ ${HAS_SEPARATE_VAR} -eq 0 ]; then
touch ${SNAPSHOT_DIR}/var/tmp/update_snapshot.test
if [ $? -ne 0 ]; then
log_error "ERROR: System installation is too old!"
quit 1;
fi
rm -f ${SNAPSHOT_DIR}/var/tmp/update_snapshot.test
+ else
+ # Check if the btrfs subvolumes were created correct
+ # or with broken storage-ng [bsc#1077240]
+ touch ${SNAPSHOT_DIR}/var/update_snapshot.test
+ if [ $? -ne 0 ]; then
+ log_error "ERROR: System installation is broken!"
+ quit 1;
+ fi
+ rm -f ${SNAPSHOT_DIR}/var/update_snapshot.test
fi
# On a read only system, make sure that /etc/zypp in the
@@ -541,8 +617,8 @@
fi
fi
- # Check which directories in /boot/grub2 needs to be mounted,
- # else a version update of grub2 will not boot.
+ # Check which directories in /boot/grub2 need to be mounted,
+ # otherwise grub2 will not boot after a version update.
DIR_TO_MOUNT="${DIR_TO_MOUNT} `grep /boot/grub2/ /etc/fstab |grep subvol | awk '{print $2}'`"
@@ -579,12 +655,12 @@
done
# If we have a seperate /var, create some directories which we
- # will delete later again.
- if [ ${HAS_SEPERATE_VAR} -eq 1 ]; then
+ # will delete again later.
+ if [ ${HAS_SEPARATE_VAR} -eq 1 ]; then
mkdir ${SNAPSHOT_DIR}/var/tmp
fi
- # check if we have /var/lib/rpm, else zypper will
+ # Check if we have /var/lib/rpm, otherwise zypper will
# create a new rpm database [bsc#1074598]
if [ ! -e ${SNAPSHOT_DIR}/var/lib/rpm -a \
-e ${SNAPSHOT_DIR}/usr/lib/sysimage/rpm ]; then
@@ -599,11 +675,11 @@
VAR_CACHE_CLEANUP=1
fi
- # Create bind mount, else grub2 will fail
+ # Create bind mount or else grub2 will fail
MOUNT_DIR=`mktemp -d`
mount -o rbind ${SNAPSHOT_DIR} ${MOUNT_DIR}
- # for RPM pre/post sections to detect, that we run in a
+ # Set indicator for RPM pre/post sections to detect whether we run in a
# transactional update
export TRANSACTIONAL_UPDATE=true
@@ -626,8 +702,8 @@
if [ ${DO_MIGRATION} -eq 1 ]; then
chroot ${MOUNT_DIR} env DISABLE_RESTART_ON_UPDATE=yes zypper ${ZYPPER_ARG} ${ZYPPER_ARG_PKGS}
RETVAL=$?
- # Reset registration until we reboot. Needed in both cases,
- # if an error occured or if we had success.
+ # Reset registration until reboot. Needed in both cases,
+ # whether an error occured or whether we had success.
test -x /usr/sbin/rollback-reset-registration && /usr/sbin/rollback-reset-registration
if [ $RETVAL -eq 0 ]; then
# Create the trigger to re-register the system as new version after next
@@ -651,7 +727,7 @@
fi
if [ ${REWRITE_INITRD} -eq 1 ]; then
- log_info "Create new initrd"
+ log_info "Creating new initrd"
chroot ${MOUNT_DIR} /sbin/mkinitrd
if [ $? -ne 0 ]; then
log_error "ERROR: mkinitrd failed!"
@@ -662,12 +738,12 @@
fi
if [ ${REBUILD_KDUMP_INITRD} -eq 1 ]; then
- log_info "Try to rebuild kdump initrd"
+ log_info "Trying to rebuild kdump initrd"
rebuild_kdump_initrd ${MOUNT_DIR}
fi
if [ ${REWRITE_GRUB_CFG} -eq 1 ]; then
- log_info "Create a new grub2 config"
+ log_info "Creating a new grub2 config"
chroot ${MOUNT_DIR} /usr/sbin/grub2-mkconfig > ${MOUNT_DIR}/boot/grub2/grub.cfg
if [ $? -ne 0 ]; then
log_error "ERROR: grub2-mkconfig failed!"
@@ -676,7 +752,7 @@
fi
if [ ${REWRITE_BOOTLOADER} -eq 1 ]; then
- log_info "Write new bootloader"
+ log_info "Writing new bootloader"
chroot ${MOUNT_DIR} /sbin/pbl --install
if [ $? -ne 0 ]; then
log_error "ERROR: /sbin/pbl --install failed!"
@@ -685,15 +761,15 @@
fi
if [ ${RUN_SHELL} -eq 1 ]; then
- echo "Chroot in snapshot ${SNAPSHOT_ID}, continue with 'exit'"
+ echo "Opening chroot in snapshot ${SNAPSHOT_ID}, continue with 'exit'"
env PS1="transactional update # " chroot ${MOUNT_DIR} bash
fi
- # unset variable
+ # Unset variable
unset TRANSACTIONAL_UPDATE
# Delete temporary data before unmounting everything:
- if [ ${HAS_SEPERATE_VAR} -eq 1 ]; then
+ if [ ${HAS_SEPARATE_VAR} -eq 1 ]; then
rm -rf ${SNAPSHOT_DIR}/var/tmp
fi
@@ -718,8 +794,8 @@
# Cleanup of temporary mount point
rmdir ${MOUNT_DIR}
- # cleanup other stuff
- # cleanup cache directory
+ # Cleanup other stuff
+ # Cleanup cache directory
if [ $VAR_CACHE_CLEANUP -eq 1 ]; then
rm -rf ${SNAPSHOT_DIR}/var/cache/*
fi
@@ -740,9 +816,11 @@
log_error "ERROR: btrfs set-default $BTRFS_ID failed!"
EXITCODE=1;
else
- # save the old snapshot, else it will go lost
+ # Save the old snapshot or else it will get lost.
add_unique_id ${CURRENT_SNAPSHOT_ID}
save_state_file ${SNAPSHOT_ID}
+ # Reset in-progress flag
+ snapper modify -u "transactional-update-in-progress=" ${SNAPSHOT_ID}
fi
fi
fi
@@ -761,37 +839,27 @@
if [ ${EXITCODE} -eq 0 ]; then
if [ $REBOOT_AFTERWARDS -eq 1 ]; then
- if [ $USE_SALT_GRAINS -eq 1 ]; then
- log_info "transactional-update finished - created salt grains"
- if [ -f /etc/salt/grains ]; then
- grep -q tx_update_reboot_needed /etc/salt/grains
- if [ $? -ne 0 ]; then
- # Add variable to existing salt grains
- echo "tx_update_reboot_needed: true" >> /etc/salt/grains
- else
- # modify variable in existing salt grains
- sed -i -e 's|tx_update_reboot_needed:.*|tx_update_reboot_needed: true|g' /etc/salt/grains
- fi
- else
- echo "tx_update_reboot_needed: true" > /etc/salt/grains
- fi
- # Reset tx_update_failed if exist
- sed -i -e 's|tx_update_failed:.*|tx_update_failed: false|g' /etc/salt/grains
- exit 0
- else
- if [ -x /usr/sbin/rebootmgrctl ]; then
- /usr/sbin/rebootmgrctl is-active --quiet
- if [ $? -eq 0 ]; then
- # rebootmgrctl is running
- /usr/sbin/rebootmgrctl reboot
- log_info "transactional-update finished - informed rebootmgr"
- exit 0
- fi
- fi
- log_info "transactional-update finished - rebooting machine"
- sync
- systemctl reboot |& tee -a ${LOGFILE}
- fi
+ case "$REBOOT_METHOD" in
+ auto)
+ reboot_autodetect
+ ;;
+ salt)
+ reboot_via_salt
+ ;;
+ rebootmgr)
+ reboot_via_rebootmgr
+ ;;
+ systemd)
+ reboot_via_systemd
+ ;;
+ *)
+ log_info "Unsupported reboot method, falling back to 'auto'; please"
+ log_info "check your configuration in ${CONFFILE}."
+ reboot_autodetect
+ ;;
+ esac
+ echo "The system couldn't be rebooted using method '{$REBOOT_METHOD}'. Please reboot the system"
+ echo "manually."
elif [ $PACKAGE_UPDATES -gt 1 ]; then
echo "Please reboot your machine to activate the changes and avoid data loss"
fi