Hello community,
here is the log from the commit of package transactional-update for openSUSE:Factory checked in at 2017-03-02 19:43:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transactional-update (Old)
and /work/SRC/openSUSE:Factory/.transactional-update.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "transactional-update"
Thu Mar 2 19:43:50 2017 rev:6 rq:461904 version:1.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes 2017-02-08 11:04:39.436825582 +0100
+++ /work/SRC/openSUSE:Factory/.transactional-update.new/transactional-update.changes 2017-03-02 19:43:51.304284613 +0100
@@ -1,0 +2,13 @@
+Thu Mar 2 13:20:36 CET 2017 - kukuk@suse.de
+
+- Update to version 1.11
+ - use --no-allow-vendor-change with "zypper dup"
+ - update manual page
+
+-------------------------------------------------------------------
+Mon Feb 13 14:33:13 CET 2017 - kukuk@suse.de
+
+- Update to version 1.10
+ - implement and document rollback option
+
+-------------------------------------------------------------------
@@ -4 +17 @@
-- Release version 1.9
+- Update to version 1.9
Old:
----
transactional-update-1.9.tar.bz2
New:
----
transactional-update-1.11.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ transactional-update.spec ++++++
--- /var/tmp/diff_new_pack.oQZIY6/_old 2017-03-02 19:43:51.876203690 +0100
+++ /var/tmp/diff_new_pack.oQZIY6/_new 2017-03-02 19:43:51.880203124 +0100
@@ -17,7 +17,7 @@
Name: transactional-update
-Version: 1.9
+Version: 1.11
Release: 0
Summary: Transactional Updates with btrfs and snapshots
License: GPL-2.0+
++++++ transactional-update-1.9.tar.bz2 -> transactional-update-1.11.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.9/NEWS new/transactional-update-1.11/NEWS
--- old/transactional-update-1.9/NEWS 2017-02-06 15:45:37.000000000 +0100
+++ new/transactional-update-1.11/NEWS 2017-03-02 13:16:47.000000000 +0100
@@ -2,6 +2,14 @@
Copyright (C) 2016, 2017 Thorsten Kukuk
+Version 1.11
+* Use dup by default if called from systemd
+* Use --no-allow-vendor-change with "dup"
+* Update manual page
+
+Version 1.10
+* Implement rollback
+
Version 1.9
* Fix umounting of /sys
* Update documentation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.9/configure new/transactional-update-1.11/configure
--- old/transactional-update-1.9/configure 2017-02-06 15:45:43.000000000 +0100
+++ new/transactional-update-1.11/configure 2017-03-02 13:16:54.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for transactional-update 1.9.
+# Generated by GNU Autoconf 2.69 for transactional-update 1.11.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -576,8 +576,8 @@
# Identity of this package.
PACKAGE_NAME='transactional-update'
PACKAGE_TARNAME='transactional-update'
-PACKAGE_VERSION='1.9'
-PACKAGE_STRING='transactional-update 1.9'
+PACKAGE_VERSION='1.11'
+PACKAGE_STRING='transactional-update 1.11'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1211,7 +1211,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 transactional-update 1.9 to adapt to many kinds of systems.
+\`configure' configures transactional-update 1.11 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1278,7 +1278,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of transactional-update 1.9:";;
+ short | recursive ) echo "Configuration of transactional-update 1.11:";;
esac
cat <<\_ACEOF
@@ -1358,7 +1358,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-transactional-update configure 1.9
+transactional-update configure 1.11
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1375,7 +1375,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by transactional-update $as_me 1.9, which was
+It was created by transactional-update $as_me 1.11, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2238,7 +2238,7 @@
# Define the identity of the package.
PACKAGE='transactional-update'
- VERSION='1.9'
+ VERSION='1.11'
cat >>confdefs.h <<_ACEOF
@@ -3097,7 +3097,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by transactional-update $as_me 1.9, which was
+This file was extended by transactional-update $as_me 1.11, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3150,7 +3150,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-transactional-update config.status 1.9
+transactional-update config.status 1.11
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/transactional-update-1.9/configure.ac new/transactional-update-1.11/configure.ac
--- old/transactional-update-1.9/configure.ac 2017-02-06 15:44:46.000000000 +0100
+++ new/transactional-update-1.11/configure.ac 2017-03-02 13:15:41.000000000 +0100
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT(transactional-update, 1.9)
+AC_INIT(transactional-update, 1.11)
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([sbin/transactional-update.in])
AC_PREFIX_DEFAULT(/usr)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.9/man/transactional-update.8 new/transactional-update-1.11/man/transactional-update.8
--- old/transactional-update-1.9/man/transactional-update.8 2017-02-05 11:35:16.000000000 +0100
+++ new/transactional-update-1.11/man/transactional-update.8 2017-03-02 13:12:06.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: transactional-update
.\" Author: Thorsten Kukuk
.\" Generator: DocBook XSL Stylesheets v1.78.1 http://docbook.sf.net/
-.\" Date: 02/05/2017
+.\" Date: 03/02/2017
.\" Manual: transactional-update
.\" Source: transactional-update
.\" Language: English
.\"
-.TH "TRANSACTIONAL\-UPDAT" "8" "02/05/2017" "transactional-update" "transactional-update"
+.TH "TRANSACTIONAL\-UPDAT" "8" "03/02/2017" "transactional-update" "transactional-update"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -35,7 +35,9 @@
.HP \w'\fBtransactional\-update\fR\ 'u
\fBtransactional\-update\fR [cleanup] [up | dup | patch | bootloader | initrd] [kdump] [reboot]
.HP \w'\fBtransactional\-update\fR\ 'u
-\fBtransactional\-update\fR [cleanup] ptf install | remove <RPM>\&.\&.\&.<RPM> [reboot]
+\fBtransactional\-update\fR [cleanup] [reboot] ptf install | remove <RPM>\&.\&.\&.<RPM>
+.HP \w'\fBtransactional\-update\fR\ 'u
+\fBtransactional\-update\fR rollback [number]
.PP
transactional\-update\&.service
.PP
@@ -88,7 +90,7 @@
\fBdup\fR
.RS 4
If new updates are available, a new snapshot is created and
-\fBzypper dup\fR
+\fBzypper dup \-\-no\-allow\-vendor\-change\fR
is used to update the snapshot\&. Afterwards, the snapshot is activated and will be used as the new root filesystem during next boot\&.
.RE
.PP
@@ -134,12 +136,23 @@
\fBsystemctl reboot\fR
is called\&.
.RE
+.PP
+\fBrollback\fR [\fInumber\fR]
+.RS 4
+Sets the default subvolume\&. On systems with read\-write filesystem,
+\fBsnapper\fR(8)\fB rollback\fR
+is called\&. On a read\-only filesystem, without argument, the current system is made the new default root filesystem\&. Else the snapshot with
+\fBnumber\fR
+is made the new default root filesystem\&. On a read\-only filesystem, no additional snapshots are created\&.
+.RE
.SH "IMPORTANT"
.PP
Only RPMs, which are fully part of the snapshot of the root filesystem, can be updated\&. If RPMs contains files outside of the snapshot, the update itself can break or can break the system\&.
.PP
Since all changes to the root filesystem will go lost after creating the snapshot for the update, the system should be rebooted as fast as possible after the update finished\&.
.PP
+RPMs, where a license needs accepted for, cannot be updated\&.
+.PP
If PTFs get installed or removed, and
\fBtransactional\-update\fR
is called again before the next reboot and updates packages, the changes to the PTFs are lost and need to be redone with the next reboot\&. After installing or removing PTFs, the system should be immeaditly rebooted\&.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.9/man/transactional-update.8.html new/transactional-update-1.11/man/transactional-update.8.html
--- old/transactional-update-1.9/man/transactional-update.8.html 2017-02-06 14:46:46.000000000 +0100
+++ new/transactional-update-1.11/man/transactional-update.8.html 2017-03-02 13:12:06.000000000 +0100
@@ -15,8 +15,8 @@
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.8</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] ptf install | remove <RPM>...<RPM> [reboot]</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
+ </style><a href="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.10</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] ptf install | remove <RPM>...<RPM> </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
running system and it can be rolled back. To activate the changes, the system
@@ -50,9 +50,9 @@
filesystem during next boot.
</p></dd><dt id="dup"><span class="term"><code class="option">dup</code></span><a class="headerlink" title="Permalink to this term" href="#dup">¶</a></dt><dd><p>
If new updates are available, a new snapshot is created and
- <span class="command"><strong>zypper dup</strong></span> is used to update the snapshot.
- Afterwards, the snapshot is activated and will be used as the new root
- filesystem during next boot.
+ <span class="command"><strong>zypper dup --no-allow-vendor-change</strong></span> is used to
+ update the snapshot. Afterwards, the snapshot is activated and will be
+ used as the new root filesystem during next boot.
</p></dd><dt id="patch"><span class="term"><code class="option">patch</code></span><a class="headerlink" title="Permalink to this term" href="#patch">¶</a></dt><dd><p>
If new updates are available, a new snapshot is created and
<span class="command"><strong>zypper patch</strong></span> is used to update the snapshot.
@@ -76,6 +76,16 @@
is running, <span class="command"><strong>transactional-update</strong></span> will tell the
daemon to reboot the system according to the configured policies. Else
<span class="command"><strong>systemctl reboot</strong></span> is called.
+ </p></dd><dt id="rollback
+ number"><span class="term"><code class="option">rollback</code>
+ [<span class="optional"><em class="replaceable"><code>number</code></em></span>]</span><a class="headerlink" title="Permalink to this term" href="#rollback%0A%20%20%20%20number">¶</a></dt><dd><p>
+ Sets the default subvolume. On systems with read-write filesystem,
+ <a href="http://snapper.io/manpages/snapper.html"><span class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>
+ <code class="option"> rollback</code> is called. On a read-only filesystem,
+ without argument, the current system is made the new default root
+ filesystem. Else the snapshot with <code class="option">number</code> is made the
+ new default root filesystem. On a read-only filesystem, no additional
+ snapshots are created.
</p></dd></dl></div></div><div class="refsect1"><a name="important"></a><h2 id="IMPORTANT">IMPORTANT<a class="headerlink" title="Permalink to this headline" href="#IMPORTANT">¶</a></h2><p>
Only RPMs, which are fully part of the snapshot of the root filesystem, can
be updated. If RPMs contains files outside of the snapshot, the update
@@ -85,6 +95,8 @@
snapshot for the update, the system should be rebooted as fast as possible
after the update finished.
</p><p>
+ RPMs, where a license needs accepted for, cannot be updated.
+</p><p>
If PTFs get installed or removed, and
<span class="command"><strong>transactional-update</strong></span> is called again before the next
reboot and updates packages, the changes to the PTFs are lost and need to be
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.9/man/transactional-update.8.xml new/transactional-update-1.11/man/transactional-update.8.xml
--- old/transactional-update-1.9/man/transactional-update.8.xml 2017-02-05 11:30:39.000000000 +0100
+++ new/transactional-update-1.11/man/transactional-update.8.xml 2017-03-02 13:07:08.000000000 +0100
@@ -74,13 +74,18 @@
<cmdsynopsis>
<command>transactional-update</command>
<arg choice='opt'>cleanup</arg>
+ <arg choice='opt'>reboot</arg>
<arg choice='plain'>ptf</arg>
<group choice='plain'>
<arg choice='plain'>install</arg>
<arg choice='plain'>remove</arg>
</group>
<arg choice='plain'><RPM>...<RPM></arg>
- <arg choice='opt'>reboot</arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>transactional-update</command>
+ <arg choice='plain'>rollback</arg>
+ <arg choice='opt'>number</arg>
</cmdsynopsis>
<para><filename>transactional-update.service</filename></para>
<para><filename>transactional-update.timer</filename></para>
@@ -156,9 +161,9 @@
<listitem>
<para>
If new updates are available, a new snapshot is created and
- <command>zypper dup</command> is used to update the snapshot.
- Afterwards, the snapshot is activated and will be used as the new root
- filesystem during next boot.
+ <command>zypper dup --no-allow-vendor-change</command> is used to
+ update the snapshot. Afterwards, the snapshot is activated and will be
+ used as the new root filesystem during next boot.
</para>
</listitem>
</varlistentry>
@@ -227,6 +232,22 @@
</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><option>rollback</option>
+ <optional><replaceable>number</replaceable></optional></term>
+ <listitem>
+ <para>
+ Sets the default subvolume. On systems with read-write filesystem,
+ <refentrytitle>snapper</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ <option> rollback</option> is called. On a read-only filesystem,
+ without argument, the current system is made the new default root
+ filesystem. Else the snapshot with <option>number</option> is made the
+ new default root filesystem. On a read-only filesystem, no additional
+ snapshots are created.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
</refsect1>
@@ -242,6 +263,9 @@
after the update finished.
</para>
<para>
+ RPMs, where a license needs accepted for, cannot be updated.
+</para>
+<para>
If PTFs get installed or removed, and
<command>transactional-update</command> is called again before the next
reboot and updates packages, the changes to the PTFs are lost and need to be
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.9/man/transactional-update.index.html new/transactional-update-1.11/man/transactional-update.index.html
--- old/transactional-update-1.9/man/transactional-update.index.html 2017-02-06 14:46:46.000000000 +0100
+++ new/transactional-update-1.11/man/transactional-update.index.html 2017-03-02 13:12:06.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.8</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.10</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>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.9/man/transactional-update.service.8.html new/transactional-update-1.11/man/transactional-update.service.8.html
--- old/transactional-update-1.9/man/transactional-update.service.8.html 2017-02-06 14:46:46.000000000 +0100
+++ new/transactional-update-1.11/man/transactional-update.service.8.html 2017-03-02 13:12:06.000000000 +0100
@@ -15,8 +15,8 @@
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.8</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] ptf install | remove <RPM>...<RPM> [reboot]</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
+ </style><a href="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.10</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] ptf install | remove <RPM>...<RPM> </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
running system and it can be rolled back. To activate the changes, the system
@@ -50,9 +50,9 @@
filesystem during next boot.
</p></dd><dt id="dup"><span class="term"><code class="option">dup</code></span><a class="headerlink" title="Permalink to this term" href="#dup">¶</a></dt><dd><p>
If new updates are available, a new snapshot is created and
- <span class="command"><strong>zypper dup</strong></span> is used to update the snapshot.
- Afterwards, the snapshot is activated and will be used as the new root
- filesystem during next boot.
+ <span class="command"><strong>zypper dup --no-allow-vendor-change</strong></span> is used to
+ update the snapshot. Afterwards, the snapshot is activated and will be
+ used as the new root filesystem during next boot.
</p></dd><dt id="patch"><span class="term"><code class="option">patch</code></span><a class="headerlink" title="Permalink to this term" href="#patch">¶</a></dt><dd><p>
If new updates are available, a new snapshot is created and
<span class="command"><strong>zypper patch</strong></span> is used to update the snapshot.
@@ -76,6 +76,16 @@
is running, <span class="command"><strong>transactional-update</strong></span> will tell the
daemon to reboot the system according to the configured policies. Else
<span class="command"><strong>systemctl reboot</strong></span> is called.
+ </p></dd><dt id="rollback
+ number"><span class="term"><code class="option">rollback</code>
+ [<span class="optional"><em class="replaceable"><code>number</code></em></span>]</span><a class="headerlink" title="Permalink to this term" href="#rollback%0A%20%20%20%20number">¶</a></dt><dd><p>
+ Sets the default subvolume. On systems with read-write filesystem,
+ <a href="http://snapper.io/manpages/snapper.html"><span class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>
+ <code class="option"> rollback</code> is called. On a read-only filesystem,
+ without argument, the current system is made the new default root
+ filesystem. Else the snapshot with <code class="option">number</code> is made the
+ new default root filesystem. On a read-only filesystem, no additional
+ snapshots are created.
</p></dd></dl></div></div><div class="refsect1"><a name="important"></a><h2 id="IMPORTANT">IMPORTANT<a class="headerlink" title="Permalink to this headline" href="#IMPORTANT">¶</a></h2><p>
Only RPMs, which are fully part of the snapshot of the root filesystem, can
be updated. If RPMs contains files outside of the snapshot, the update
@@ -85,6 +95,8 @@
snapshot for the update, the system should be rebooted as fast as possible
after the update finished.
</p><p>
+ RPMs, where a license needs accepted for, cannot be updated.
+</p><p>
If PTFs get installed or removed, and
<span class="command"><strong>transactional-update</strong></span> is called again before the next
reboot and updates packages, the changes to the PTFs are lost and need to be
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.9/man/transactional-update.timer.8.html new/transactional-update-1.11/man/transactional-update.timer.8.html
--- old/transactional-update-1.9/man/transactional-update.timer.8.html 2017-02-06 14:46:46.000000000 +0100
+++ new/transactional-update-1.11/man/transactional-update.timer.8.html 2017-03-02 13:12:06.000000000 +0100
@@ -15,8 +15,8 @@
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.8</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] ptf install | remove <RPM>...<RPM> [reboot]</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
+ </style><a href="transactional-update.index.html">Index </a><span style="float:right">transactional-update 1.10</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] ptf install | remove <RPM>...<RPM> </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
running system and it can be rolled back. To activate the changes, the system
@@ -50,9 +50,9 @@
filesystem during next boot.
</p></dd><dt id="dup"><span class="term"><code class="option">dup</code></span><a class="headerlink" title="Permalink to this term" href="#dup">¶</a></dt><dd><p>
If new updates are available, a new snapshot is created and
- <span class="command"><strong>zypper dup</strong></span> is used to update the snapshot.
- Afterwards, the snapshot is activated and will be used as the new root
- filesystem during next boot.
+ <span class="command"><strong>zypper dup --no-allow-vendor-change</strong></span> is used to
+ update the snapshot. Afterwards, the snapshot is activated and will be
+ used as the new root filesystem during next boot.
</p></dd><dt id="patch"><span class="term"><code class="option">patch</code></span><a class="headerlink" title="Permalink to this term" href="#patch">¶</a></dt><dd><p>
If new updates are available, a new snapshot is created and
<span class="command"><strong>zypper patch</strong></span> is used to update the snapshot.
@@ -76,6 +76,16 @@
is running, <span class="command"><strong>transactional-update</strong></span> will tell the
daemon to reboot the system according to the configured policies. Else
<span class="command"><strong>systemctl reboot</strong></span> is called.
+ </p></dd><dt id="rollback
+ number"><span class="term"><code class="option">rollback</code>
+ [<span class="optional"><em class="replaceable"><code>number</code></em></span>]</span><a class="headerlink" title="Permalink to this term" href="#rollback%0A%20%20%20%20number">¶</a></dt><dd><p>
+ Sets the default subvolume. On systems with read-write filesystem,
+ <a href="http://snapper.io/manpages/snapper.html"><span class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>
+ <code class="option"> rollback</code> is called. On a read-only filesystem,
+ without argument, the current system is made the new default root
+ filesystem. Else the snapshot with <code class="option">number</code> is made the
+ new default root filesystem. On a read-only filesystem, no additional
+ snapshots are created.
</p></dd></dl></div></div><div class="refsect1"><a name="important"></a><h2 id="IMPORTANT">IMPORTANT<a class="headerlink" title="Permalink to this headline" href="#IMPORTANT">¶</a></h2><p>
Only RPMs, which are fully part of the snapshot of the root filesystem, can
be updated. If RPMs contains files outside of the snapshot, the update
@@ -85,6 +95,8 @@
snapshot for the update, the system should be rebooted as fast as possible
after the update finished.
</p><p>
+ RPMs, where a license needs accepted for, cannot be updated.
+</p><p>
If PTFs get installed or removed, and
<span class="command"><strong>transactional-update</strong></span> is called again before the next
reboot and updates packages, the changes to the PTFs are lost and need to be
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.9/sbin/transactional-update.in new/transactional-update-1.11/sbin/transactional-update.in
--- old/transactional-update-1.9/sbin/transactional-update.in 2017-02-06 15:42:10.000000000 +0100
+++ new/transactional-update-1.11/sbin/transactional-update.in 2017-03-02 12:52:33.000000000 +0100
@@ -30,6 +30,8 @@
REWRITE_INITRD=0
REBUILD_KDUMP_INITRD=0
DO_CLEANUP=0
+DO_ROLLBACK=0
+ROLLBACK_SNAPSHOT=0
REBOOT_AFTERWARDS=0
LOGFILE="/var/log/transactional-update.log"
STATE_FILE="/var/lib/misc/transactional-update.state"
@@ -42,6 +44,7 @@
echo "Usage: transactional-update --help|--version"
echo " transactional-update [cleanup][up|dup|patch|bootloader|initrd][kdump][reboot]"
echo " transactional-update [cleanup] [reboot] ptf install|remove PKG1..PKGN"
+ echo " transactional-update rollback [number]"
exit $1
}
@@ -105,7 +108,7 @@
rebuild_kdump_initrd() {
local MOUNT_DIR=$1
- systemctl is-enabled kdump.service
+ systemctl is-enabled --quiet kdump.service
if [ $? = 0 ]; then
if [ ${KDUMP_SYSCONFIG} -nt ${MOUNT_DIR}/${KDUMP_SYSCONFIG} ]; then
cp -a ${KDUMP_SYSCONFIG} ${MOUNT_DIR}/${KDUMP_SYSCONFIG}
@@ -144,7 +147,11 @@
DO_CLEANUP=1
shift
;;
- up|dup|patch)
+ dup)
+ ZYPPER_ARG="dup --no-allow-vendor-change"
+ shift
+ ;;
+ up|patch)
ZYPPER_ARG=$1
shift
;;
@@ -204,6 +211,14 @@
REBOOT_AFTERWARDS=1
shift
;;
+ rollback)
+ DO_ROLLBACK=1
+ shift
+ if [ $# -eq 1 ]; then
+ ROLLBACK_SNAPSHOT=$1
+ shift
+ fi
+ ;;
-h|--help)
usage 0
;;
@@ -257,6 +272,35 @@
DEFAULT_SNAPSHOT_ID=`btrfs subvolume get-default / | sed -e 's|.*.snapshots/\(.*\)/snapshot|\1|g'`
RO_ROOT=`btrfs property get / ro | sed -e 's|ro=||'`
+if [ ${DO_ROLLBACK} -eq 1 ]; then
+ if [ ${ROLLBACK_SNAPSHOT} -eq 0 ]; then
+ ROLLBACK_SNAPSHOT=${ORIG_SNAPSHOT_ID}
+ fi
+
+ echo "Rollback to snapshot ${ROLLBACK_SNAPSHOT} ..."
+
+ if [ ${RO_ROOT} == "true" ]; then
+ BTRFS_ID=`btrfs subvolume list / |grep /.snapshots/${ROLLBACK_SNAPSHOT}/snapshot | awk '{print $2}'`
+ if [ -z $BTRFS_ID ]; then
+ log_error "ERROR: couldn't determine btrfs subvolume ID"
+ exit 1
+ else
+ btrfs subvolume set-default $BTRFS_ID /.snapshots
+ if [ $? -ne 0 ]; then
+ log_error "ERROR: btrfs set-default $BTRFS_ID failed!"
+ exit 1
+ fi
+ fi
+ # Remove possible cleanup algo
+ snapper modify -c '' ${ROLLBACK_SNAPSHOT}
+ else
+ snapper rollback ${ROLLBACK_SNAPSHOT}
+ fi
+
+ echo "Please reboot to finish rollback!"
+ exit 0;
+fi
+
#
# Cleanup part: make sure old root filesystem will be removed after it is no longer active.
#
@@ -309,7 +353,6 @@
zypper --xml ${ZYPPER_NONINTERACTIVE} ${ZYPPER_ARG} --dry-run ${ZYPPER_ARG_PKGS} > ${TMPFILE}
if [ $? -ne 0 ]; then
log_error "ERROR: zypper failed!"
- cat ${TMPFILE} | tr '\n' 'XXX' | sed -e 's|.*description>\(.*\)</description>.*|\1|g'| tr 'XXX' '\n' |& tee -a ${LOGFILE}
rm -f ${TMPFILE}
quit 1
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.9/systemd/transactional-update.service new/transactional-update-1.11/systemd/transactional-update.service
--- old/transactional-update-1.9/systemd/transactional-update.service 2017-02-01 18:00:19.000000000 +0100
+++ new/transactional-update-1.11/systemd/transactional-update.service 2017-03-02 12:47:48.000000000 +0100
@@ -7,6 +7,6 @@
[Service]
Type=oneshot
-ExecStart=/usr/sbin/transactional-update cleanup up reboot
+ExecStart=/usr/sbin/transactional-update cleanup dup reboot
IOSchedulingClass=best-effort
IOSchedulingPriority=7