Hello community,

here is the log from the commit of package transactional-update for 
openSUSE:Factory checked in at 2017-11-18 00:21:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transactional-update (Old)
 and      /work/SRC/openSUSE:Factory/.transactional-update.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "transactional-update"

Sat Nov 18 00:21:53 2017 rev:16 rq:542658 version:1.23

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes    
    2017-11-08 15:13:51.565887367 +0100
+++ 
/work/SRC/openSUSE:Factory/.transactional-update.new/transactional-update.changes
   2017-11-18 00:21:56.297705851 +0100
@@ -1,0 +2,9 @@
+Fri Nov 17 14:54:33 CET 2017 - [email protected]
+
+- Update to version 1.23
+  - Fix re-registration in rollback case
+  - Fix problems with updating the grub2 bootloader
+  - Add support for migration of products with SCC/SMT
+  - Re-add support to re-write bootloader
+
+-------------------------------------------------------------------

Old:
----
  transactional-update-1.22.tar.bz2

New:
----
  transactional-update-1.23.tar.bz2

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

Other differences:
------------------
++++++ transactional-update.spec ++++++
--- /var/tmp/diff_new_pack.OKnL9K/_old  2017-11-18 00:21:58.085640753 +0100
+++ /var/tmp/diff_new_pack.OKnL9K/_new  2017-11-18 00:21:58.089640607 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           transactional-update
-Version:        1.22
+Version:        1.23
 Release:        0
 Summary:        Transactional Updates with btrfs and snapshots
 License:        GPL-2.0+

++++++ transactional-update-1.22.tar.bz2 -> transactional-update-1.23.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.22/NEWS 
new/transactional-update-1.23/NEWS
--- old/transactional-update-1.22/NEWS  2017-11-07 16:21:54.000000000 +0100
+++ new/transactional-update-1.23/NEWS  2017-11-17 14:52:12.000000000 +0100
@@ -2,6 +2,12 @@
 
 Copyright (C) 2016, 2017 Thorsten Kukuk
 
+Version 1.23
+* Fix re-registration in rollback case
+* Fix problems with updating the grub2 bootloader
+* Add support for migration of products with SCC
+* Re-add support to re-write bootloader
+
 Version 1.22
 * Rewrite cleanup code
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.22/configure 
new/transactional-update-1.23/configure
--- old/transactional-update-1.22/configure     2017-11-07 16:22:13.000000000 
+0100
+++ new/transactional-update-1.23/configure     2017-11-17 14:52:27.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.22.
+# Generated by GNU Autoconf 2.69 for transactional-update 1.23.
 #
 #
 # 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.22'
-PACKAGE_STRING='transactional-update 1.22'
+PACKAGE_VERSION='1.23'
+PACKAGE_STRING='transactional-update 1.23'
 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.22 to adapt to many kinds of 
systems.
+\`configure' configures transactional-update 1.23 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.22:";;
+     short | recursive ) echo "Configuration of transactional-update 1.23:";;
    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.22
+transactional-update configure 1.23
 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.22, which was
+It was created by transactional-update $as_me 1.23, 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.22'
+ VERSION='1.23'
 
 
 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.22, which was
+This file was extended by transactional-update $as_me 1.23, 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.22
+transactional-update config.status 1.23
 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.22/configure.ac 
new/transactional-update-1.23/configure.ac
--- old/transactional-update-1.22/configure.ac  2017-11-07 16:22:09.000000000 
+0100
+++ new/transactional-update-1.23/configure.ac  2017-11-17 14:50:41.000000000 
+0100
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT(transactional-update, 1.22)
+AC_INIT(transactional-update, 1.23)
 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.22/man/transactional-update.8 
new/transactional-update-1.23/man/transactional-update.8
--- old/transactional-update-1.22/man/transactional-update.8    2017-07-03 
13:14:51.000000000 +0200
+++ new/transactional-update-1.23/man/transactional-update.8    2017-11-17 
14:43:02.000000000 +0100
@@ -2,12 +2,12 @@
 .\"     Title: transactional-update
 .\"    Author: Thorsten Kukuk <[email protected]>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 07/03/2017
+.\"      Date: 11/17/2017
 .\"    Manual: transactional-update
 .\"    Source: transactional-update
 .\"  Language: English
 .\"
-.TH "TRANSACTIONAL\-UPDAT" "8" "07/03/2017" "transactional-update" 
"transactional-update"
+.TH "TRANSACTIONAL\-UPDAT" "8" "11/17/2017" "transactional-update" 
"transactional-update"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -33,10 +33,12 @@
 .HP \w'\fBtransactional\-update\fR\ 'u
 \fBtransactional\-update\fR [\-\-help] [\-\-version]
 .HP \w'\fBtransactional\-update\fR\ 'u
-\fBtransactional\-update\fR [cleanup] [up | dup | patch | initrd] [kdump] 
[reboot]
+\fBtransactional\-update\fR [cleanup] [up | dup | patch | bootloader | initrd] 
[kdump] [reboot]
 .HP \w'\fBtransactional\-update\fR\ 'u
 \fBtransactional\-update\fR [cleanup] [reboot] pkg install | remove | update  
<RPM>\&.\&.\&.<RPM>
 .HP \w'\fBtransactional\-update\fR\ 'u
+\fBtransactional\-update\fR migration
+.HP \w'\fBtransactional\-update\fR\ 'u
 \fBtransactional\-update\fR rollback [number]
 .PP
 transactional\-update\&.service
@@ -62,16 +64,6 @@
 for more informations\&.
 .SH "OPTIONS"
 .PP
-\fB\-\-help\fR
-.RS 4
-Display help and exit
-.RE
-.PP
-\fB\-\-version\fR
-.RS 4
-Output version information and exit
-.RE
-.PP
 \fBcleanup\fR
 .RS 4
 If the current root filesystem is identical to the active root filesystem 
(means after a reboot, before
@@ -80,18 +72,39 @@
 \fBsnapper\fR(8)\&.
 .RE
 .PP
-\fBup\fR
+\fBdup\fR
 .RS 4
 If new updates are available, a new snapshot is created and
-\fBzypper up\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
-\fBdup\fR
+\fBgrub\&.cfg\fR
 .RS 4
-If new updates are available, a new snapshot is created and
-\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\&.
+\fBgrub2-mkconfig\fR(8)
+is called to create a new
+/boot/grub2/grub\&.cfg
+configuration file for the bootloader\&.
+.RE
+.PP
+\fBbootloader\fR
+.RS 4
+A new snapshot is created, the bootloader configuration updated and the 
boorloader newly written\&.
+.RE
+.PP
+\fBinitrd\fR
+.RS 4
+A new initrd is created in a snapshot\&.
+.RE
+.PP
+\fBkdump\fR
+.RS 4
+A new initrd for kdump is created in a snapshot\&.
+.RE
+.PP
+\fBmigration\fR
+.RS 4
+On systems which are registered against the SUSE Customer Center (SCC) or SMT, 
a migration to a new version of the installed products can be made with this 
option\&. This is done in an interactive mode\&.
 .RE
 .PP
 \fBpatch\fR
@@ -116,24 +129,6 @@
 Packages installed as RPMs can be updated\&.
 .RE
 .PP
-\fBgrub\&.cfg\fR
-.RS 4
-\fBgrub2-mkconfig\fR(8)
-is called to create a new
-/boot/grub2/grub\&.cfg
-configuration file for the bootloader\&.
-.RE
-.PP
-\fBinitrd\fR
-.RS 4
-A new initrd is created in a snapshot\&.
-.RE
-.PP
-\fBkdump\fR
-.RS 4
-A new initrd for kdump is created in a snapshot\&.
-.RE
-.PP
 \fBreboot\fR
 .RS 4
 If a new snapshot with updates was created, the system should be rebooted\&. 
This option will trigger the necessary reboot\&. If the
@@ -158,6 +153,23 @@
 .RS 4
 After all actions are done, before the snapshot with the changes is unmounted 
and switched to read\-only, a shell is started in the new snapshot as chroot 
environment for testing and debugging\&.
 .RE
+.PP
+\fBup\fR
+.RS 4
+If new updates are available, a new snapshot is created and
+\fBzypper up\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
+\fB\-\-help\fR
+.RS 4
+Display help and exit
+.RE
+.PP
+\fB\-\-version\fR
+.RS 4
+Output version information and exit
+.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\&.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.22/man/transactional-update.8.html 
new/transactional-update-1.23/man/transactional-update.8.html
--- old/transactional-update-1.22/man/transactional-update.8.html       
2017-07-03 13:14:51.000000000 +0200
+++ new/transactional-update-1.23/man/transactional-update.8.html       
2017-11-17 14:43:02.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.20</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  |   initrd ] [kdump] [reboot]</p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>  
[cleanup] [reboot]  pkg    install  |   remove  |   update    
&lt;RPM&gt;...&lt;RPM&gt; </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
+  </style><a href="transactional-update.index.html">Index </a><span 
style="float:right">transactional-update 1.22</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    &lt;RPM&gt;...&lt;RPM&gt; </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
 running system and it can be rolled back. To activate the changes, the system
@@ -36,23 +36,33 @@
 <code 
class="filename">/etc/systemd/system/transactional-update.timer.d/local.conf</code>.
 See
 <a 
href="https://www.freedesktop.org/software/systemd/man/systemd.unit.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.unit</span>(5)</span></a>
 for more informations.
-</p></div><div class="refsect1"><a name="options"></a><h2 
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline" 
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help and exit</p></dd><dt 
id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd><dt id="cleanup"><span class="term"><code 
class="option">cleanup</code></span><a class="headerlink" title="Permalink to 
this term" href="#cleanup">¶</a></dt><dd><p>If the current root filesystem is 
identical to the active root
+</p></div><div class="refsect1"><a name="options"></a><h2 
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline" 
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="cleanup"><span class="term"><code 
class="option">cleanup</code></span><a class="headerlink" title="Permalink to 
this term" href="#cleanup">¶</a></dt><dd><p>If the current root filesystem is 
identical to the active root
       filesystem (means after a reboot, before
       <span class="command"><strong>transactional-update</strong></span> 
creates a new snapshot with
       updates), all old snapshots without a cleanup algorithm get a cleanup
       algorithm set. This is to make sure, that old snapshots will be deleted
       by snapper. See the section about cleanup algorithms in
       <a href="http://snapper.io/manpages/snapper.html";><span 
class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>.
-      </p></dd><dt id="up"><span class="term"><code 
class="option">up</code></span><a class="headerlink" title="Permalink to this 
term" href="#up">¶</a></dt><dd><p>
-       If new updates are available, a new snapshot is created and
-       <span class="command"><strong>zypper up</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="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 
--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="grub.cfg"><span class="term"><code 
class="option">grub.cfg</code></span><a class="headerlink" title="Permalink to 
this term" href="#grub.cfg">¶</a></dt><dd><p>
+       <a href="https://www.linux.org/docs/man8/grub2-mkconfig.html";><span 
class="citerefentry"><span 
class="refentrytitle">grub2-mkconfig</span>(8)</span></a>
+       is called to create a new <code 
class="filename">/boot/grub2/grub.cfg</code>
+       configuration file for the bootloader.
+      </p></dd><dt id="bootloader"><span class="term"><code 
class="option">bootloader</code></span><a class="headerlink" title="Permalink 
to this term" href="#bootloader">¶</a></dt><dd><p>
+       A new snapshot is created, the bootloader configuration updated and
+       the boorloader newly written.
+      </p></dd><dt id="initrd"><span class="term"><code 
class="option">initrd</code></span><a class="headerlink" title="Permalink to 
this term" href="#initrd">¶</a></dt><dd><p>
+       A new initrd is created in a snapshot.
+      </p></dd><dt id="kdump"><span class="term"><code 
class="option">kdump</code></span><a class="headerlink" title="Permalink to 
this term" href="#kdump">¶</a></dt><dd><p>
+       A new initrd for kdump is created in a snapshot.
+      </p></dd><dt id="migration"><span class="term"><code 
class="option">migration</code></span><a class="headerlink" title="Permalink to 
this term" href="#migration">¶</a></dt><dd><p>
+       On systems which are registered against the SUSE Customer Center (SCC)
+       or SMT, a migration to a new version of the installed products can be
+       made with       this option. This is done in an interactive mode.
       </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.
@@ -65,14 +75,6 @@
        the system.
       </p></dd><dt id="pkg update &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">pkg update</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#pkg%20update%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd><p>
        Packages installed as RPMs can be updated.
-      </p></dd><dt id="grub.cfg"><span class="term"><code 
class="option">grub.cfg</code></span><a class="headerlink" title="Permalink to 
this term" href="#grub.cfg">¶</a></dt><dd><p>
-       <a href="https://www.linux.org/docs/man8/grub2-mkconfig.html";><span 
class="citerefentry"><span 
class="refentrytitle">grub2-mkconfig</span>(8)</span></a>
-       is called to create a new <code 
class="filename">/boot/grub2/grub.cfg</code>
-       configuration file for the bootloader.
-      </p></dd><dt id="initrd"><span class="term"><code 
class="option">initrd</code></span><a class="headerlink" title="Permalink to 
this term" href="#initrd">¶</a></dt><dd><p>
-       A new initrd is created in a snapshot.
-      </p></dd><dt id="kdump"><span class="term"><code 
class="option">kdump</code></span><a class="headerlink" title="Permalink to 
this term" href="#kdump">¶</a></dt><dd><p>
-       A new initrd for kdump is created in a snapshot.
       </p></dd><dt id="reboot"><span class="term"><code 
class="option">reboot</code></span><a class="headerlink" title="Permalink to 
this term" href="#reboot">¶</a></dt><dd><p>
        If a new snapshot with updates was created, the system should be
        rebooted. This option will trigger the necessary reboot. If the
@@ -94,7 +96,12 @@
        After all actions are done, before the snapshot with the changes is
        unmounted and switched to read-only, a shell is started in the new
        snapshot as chroot environment for testing and debugging.
-      </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>
+      </p></dd><dt id="up"><span class="term"><code 
class="option">up</code></span><a class="headerlink" title="Permalink to this 
term" href="#up">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper up</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="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help and exit</p></dd><dt 
id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd></dl></div></div><div class="refsect1"><a name="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
   itself can break or can break the system.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.22/man/transactional-update.8.xml 
new/transactional-update-1.23/man/transactional-update.8.xml
--- old/transactional-update-1.22/man/transactional-update.8.xml        
2017-07-03 13:13:25.000000000 +0200
+++ new/transactional-update-1.23/man/transactional-update.8.xml        
2017-11-17 14:29:57.000000000 +0100
@@ -65,6 +65,7 @@
        <arg choice='plain'>up</arg>
        <arg choice='plain'>dup</arg>
        <arg choice='plain'>patch</arg>
+       <arg choice='plain'>bootloader</arg>
        <arg choice='plain'>initrd</arg>
     </group>
     <arg choice='opt'>kdump</arg>
@@ -84,6 +85,10 @@
     </cmdsynopsis>
     <cmdsynopsis>
       <command>transactional-update</command>
+      <arg choice='plain'>migration</arg>
+    </cmdsynopsis>
+    <cmdsynopsis>
+      <command>transactional-update</command>
       <arg choice='plain'>rollback</arg>
       <arg choice='opt'>number</arg>
     </cmdsynopsis>
@@ -121,18 +126,6 @@
 <refsect1 id='options'><title>OPTIONS</title>
 <variablelist remap='TP'>
   <varlistentry>
-    <term><option>--help</option></term>
-    <listitem>
-      <para>Display help and exit</para>
-    </listitem>
-  </varlistentry>
-  <varlistentry>
-    <term><option>--version</option></term>
-    <listitem>
-      <para>Output version information and exit</para>
-    </listitem>
-  </varlistentry>
-  <varlistentry>
     <term><option>cleanup</option></term>
     <listitem>
       <para>If the current root filesystem is identical to the active root
@@ -146,87 +139,95 @@
     </listitem>
   </varlistentry>
   <varlistentry>
-    <term><option>up</option></term>
+    <term><option>dup</option></term>
     <listitem>
       <para>
        If new updates are available, a new snapshot is created and
-       <command>zypper up</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>
   <varlistentry>
-    <term><option>dup</option></term>
+    <term><option>grub.cfg</option></term>
     <listitem>
       <para>
-       If new updates are available, a new snapshot is created and
-       <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.
+       <citerefentry
+           
project='linux.org'><refentrytitle>grub2-mkconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+       is called to create a new <filename>/boot/grub2/grub.cfg</filename>
+       configuration file for the bootloader.
       </para>
     </listitem>
   </varlistentry>
   <varlistentry>
-    <term><option>patch</option></term>
+    <term><option>bootloader</option></term>
     <listitem>
       <para>
-       If new updates are available, a new snapshot is created and
-       <command>zypper patch</command> is used to update the snapshot.
-       Afterwards, the snapshot is activated and will be used as the new root
-       filesystem during next boot.
+       A new snapshot is created, the bootloader configuration updated and
+       the boorloader newly written.
       </para>
     </listitem>
   </varlistentry>
   <varlistentry>
-    <term><option>pkg install</option> <replaceable>&lt;RPM&gt; ... 
&lt;RPM&gt;</replaceable></term>
+    <term><option>initrd</option></term>
     <listitem>
       <para>
-       A PTF or other packages in RPM format can be installed in the system.
+       A new initrd is created in a snapshot.
       </para>
     </listitem>
   </varlistentry>
   <varlistentry>
-    <term><option>pkg remove</option> <replaceable>&lt;RPM&gt; ... 
&lt;RPM&gt;</replaceable></term>
+    <term><option>kdump</option></term>
     <listitem>
       <para>
-       A PTF or other installed packages in RPM format can be removed from
-       the system.
+       A new initrd for kdump is created in a snapshot.
       </para>
     </listitem>
   </varlistentry>
   <varlistentry>
-    <term><option>pkg update</option> <replaceable>&lt;RPM&gt; ... 
&lt;RPM&gt;</replaceable></term>
+    <term><option>migration</option></term>
     <listitem>
       <para>
-       Packages installed as RPMs can be updated.
+       On systems which are registered against the SUSE Customer Center (SCC)
+       or SMT, a migration to a new version of the installed products can be
+       made with       this option. This is done in an interactive mode.
       </para>
     </listitem>
   </varlistentry>
   <varlistentry>
-    <term><option>grub.cfg</option></term>
+    <term><option>patch</option></term>
     <listitem>
       <para>
-       <citerefentry
-           
project='linux.org'><refentrytitle>grub2-mkconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-       is called to create a new <filename>/boot/grub2/grub.cfg</filename>
-       configuration file for the bootloader.
+       If new updates are available, a new snapshot is created and
+       <command>zypper patch</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>
   <varlistentry>
-    <term><option>initrd</option></term>
+    <term><option>pkg install</option> <replaceable>&lt;RPM&gt; ... 
&lt;RPM&gt;</replaceable></term>
     <listitem>
       <para>
-       A new initrd is created in a snapshot.
+       A PTF or other packages in RPM format can be installed in the system.
       </para>
     </listitem>
   </varlistentry>
   <varlistentry>
-    <term><option>kdump</option></term>
+    <term><option>pkg remove</option> <replaceable>&lt;RPM&gt; ... 
&lt;RPM&gt;</replaceable></term>
     <listitem>
       <para>
-       A new initrd for kdump is created in a snapshot.
+       A PTF or other installed packages in RPM format can be removed from
+       the system.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><option>pkg update</option> <replaceable>&lt;RPM&gt; ... 
&lt;RPM&gt;</replaceable></term>
+    <listitem>
+      <para>
+       Packages installed as RPMs can be updated.
       </para>
     </listitem>
   </varlistentry>
@@ -269,6 +270,29 @@
       </para>
     </listitem>
   </varlistentry>
+  <varlistentry>
+    <term><option>up</option></term>
+    <listitem>
+      <para>
+       If new updates are available, a new snapshot is created and
+       <command>zypper up</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>
+  <varlistentry>
+    <term><option>--help</option></term>
+    <listitem>
+      <para>Display help and exit</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><option>--version</option></term>
+    <listitem>
+      <para>Output version information and exit</para>
+    </listitem>
+  </varlistentry>
 </variablelist>
 </refsect1>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.22/man/transactional-update.index.html 
new/transactional-update-1.23/man/transactional-update.index.html
--- old/transactional-update-1.22/man/transactional-update.index.html   
2017-07-03 13:14:51.000000000 +0200
+++ new/transactional-update-1.23/man/transactional-update.index.html   
2017-11-17 14:43:02.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.20</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.22</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.22/man/transactional-update.service.8.html 
new/transactional-update-1.23/man/transactional-update.service.8.html
--- old/transactional-update-1.22/man/transactional-update.service.8.html       
2017-07-03 13:14:51.000000000 +0200
+++ new/transactional-update-1.23/man/transactional-update.service.8.html       
2017-11-17 14:43:02.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.20</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  |   initrd ] [kdump] [reboot]</p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>  
[cleanup] [reboot]  pkg    install  |   remove  |   update    
&lt;RPM&gt;...&lt;RPM&gt; </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
+  </style><a href="transactional-update.index.html">Index </a><span 
style="float:right">transactional-update 1.22</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    &lt;RPM&gt;...&lt;RPM&gt; </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
 running system and it can be rolled back. To activate the changes, the system
@@ -36,23 +36,33 @@
 <code 
class="filename">/etc/systemd/system/transactional-update.timer.d/local.conf</code>.
 See
 <a 
href="https://www.freedesktop.org/software/systemd/man/systemd.unit.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.unit</span>(5)</span></a>
 for more informations.
-</p></div><div class="refsect1"><a name="options"></a><h2 
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline" 
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help and exit</p></dd><dt 
id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd><dt id="cleanup"><span class="term"><code 
class="option">cleanup</code></span><a class="headerlink" title="Permalink to 
this term" href="#cleanup">¶</a></dt><dd><p>If the current root filesystem is 
identical to the active root
+</p></div><div class="refsect1"><a name="options"></a><h2 
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline" 
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="cleanup"><span class="term"><code 
class="option">cleanup</code></span><a class="headerlink" title="Permalink to 
this term" href="#cleanup">¶</a></dt><dd><p>If the current root filesystem is 
identical to the active root
       filesystem (means after a reboot, before
       <span class="command"><strong>transactional-update</strong></span> 
creates a new snapshot with
       updates), all old snapshots without a cleanup algorithm get a cleanup
       algorithm set. This is to make sure, that old snapshots will be deleted
       by snapper. See the section about cleanup algorithms in
       <a href="http://snapper.io/manpages/snapper.html";><span 
class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>.
-      </p></dd><dt id="up"><span class="term"><code 
class="option">up</code></span><a class="headerlink" title="Permalink to this 
term" href="#up">¶</a></dt><dd><p>
-       If new updates are available, a new snapshot is created and
-       <span class="command"><strong>zypper up</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="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 
--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="grub.cfg"><span class="term"><code 
class="option">grub.cfg</code></span><a class="headerlink" title="Permalink to 
this term" href="#grub.cfg">¶</a></dt><dd><p>
+       <a href="https://www.linux.org/docs/man8/grub2-mkconfig.html";><span 
class="citerefentry"><span 
class="refentrytitle">grub2-mkconfig</span>(8)</span></a>
+       is called to create a new <code 
class="filename">/boot/grub2/grub.cfg</code>
+       configuration file for the bootloader.
+      </p></dd><dt id="bootloader"><span class="term"><code 
class="option">bootloader</code></span><a class="headerlink" title="Permalink 
to this term" href="#bootloader">¶</a></dt><dd><p>
+       A new snapshot is created, the bootloader configuration updated and
+       the boorloader newly written.
+      </p></dd><dt id="initrd"><span class="term"><code 
class="option">initrd</code></span><a class="headerlink" title="Permalink to 
this term" href="#initrd">¶</a></dt><dd><p>
+       A new initrd is created in a snapshot.
+      </p></dd><dt id="kdump"><span class="term"><code 
class="option">kdump</code></span><a class="headerlink" title="Permalink to 
this term" href="#kdump">¶</a></dt><dd><p>
+       A new initrd for kdump is created in a snapshot.
+      </p></dd><dt id="migration"><span class="term"><code 
class="option">migration</code></span><a class="headerlink" title="Permalink to 
this term" href="#migration">¶</a></dt><dd><p>
+       On systems which are registered against the SUSE Customer Center (SCC)
+       or SMT, a migration to a new version of the installed products can be
+       made with       this option. This is done in an interactive mode.
       </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.
@@ -65,14 +75,6 @@
        the system.
       </p></dd><dt id="pkg update &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">pkg update</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#pkg%20update%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd><p>
        Packages installed as RPMs can be updated.
-      </p></dd><dt id="grub.cfg"><span class="term"><code 
class="option">grub.cfg</code></span><a class="headerlink" title="Permalink to 
this term" href="#grub.cfg">¶</a></dt><dd><p>
-       <a href="https://www.linux.org/docs/man8/grub2-mkconfig.html";><span 
class="citerefentry"><span 
class="refentrytitle">grub2-mkconfig</span>(8)</span></a>
-       is called to create a new <code 
class="filename">/boot/grub2/grub.cfg</code>
-       configuration file for the bootloader.
-      </p></dd><dt id="initrd"><span class="term"><code 
class="option">initrd</code></span><a class="headerlink" title="Permalink to 
this term" href="#initrd">¶</a></dt><dd><p>
-       A new initrd is created in a snapshot.
-      </p></dd><dt id="kdump"><span class="term"><code 
class="option">kdump</code></span><a class="headerlink" title="Permalink to 
this term" href="#kdump">¶</a></dt><dd><p>
-       A new initrd for kdump is created in a snapshot.
       </p></dd><dt id="reboot"><span class="term"><code 
class="option">reboot</code></span><a class="headerlink" title="Permalink to 
this term" href="#reboot">¶</a></dt><dd><p>
        If a new snapshot with updates was created, the system should be
        rebooted. This option will trigger the necessary reboot. If the
@@ -94,7 +96,12 @@
        After all actions are done, before the snapshot with the changes is
        unmounted and switched to read-only, a shell is started in the new
        snapshot as chroot environment for testing and debugging.
-      </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>
+      </p></dd><dt id="up"><span class="term"><code 
class="option">up</code></span><a class="headerlink" title="Permalink to this 
term" href="#up">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper up</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="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help and exit</p></dd><dt 
id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd></dl></div></div><div class="refsect1"><a name="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
   itself can break or can break the system.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.22/man/transactional-update.timer.8.html 
new/transactional-update-1.23/man/transactional-update.timer.8.html
--- old/transactional-update-1.22/man/transactional-update.timer.8.html 
2017-07-03 13:14:51.000000000 +0200
+++ new/transactional-update-1.23/man/transactional-update.timer.8.html 
2017-11-17 14:43:02.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.20</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  |   initrd ] [kdump] [reboot]</p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>  
[cleanup] [reboot]  pkg    install  |   remove  |   update    
&lt;RPM&gt;...&lt;RPM&gt; </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
+  </style><a href="transactional-update.index.html">Index </a><span 
style="float:right">transactional-update 1.22</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    &lt;RPM&gt;...&lt;RPM&gt; </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
 running system and it can be rolled back. To activate the changes, the system
@@ -36,23 +36,33 @@
 <code 
class="filename">/etc/systemd/system/transactional-update.timer.d/local.conf</code>.
 See
 <a 
href="https://www.freedesktop.org/software/systemd/man/systemd.unit.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.unit</span>(5)</span></a>
 for more informations.
-</p></div><div class="refsect1"><a name="options"></a><h2 
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline" 
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help and exit</p></dd><dt 
id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd><dt id="cleanup"><span class="term"><code 
class="option">cleanup</code></span><a class="headerlink" title="Permalink to 
this term" href="#cleanup">¶</a></dt><dd><p>If the current root filesystem is 
identical to the active root
+</p></div><div class="refsect1"><a name="options"></a><h2 
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline" 
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="cleanup"><span class="term"><code 
class="option">cleanup</code></span><a class="headerlink" title="Permalink to 
this term" href="#cleanup">¶</a></dt><dd><p>If the current root filesystem is 
identical to the active root
       filesystem (means after a reboot, before
       <span class="command"><strong>transactional-update</strong></span> 
creates a new snapshot with
       updates), all old snapshots without a cleanup algorithm get a cleanup
       algorithm set. This is to make sure, that old snapshots will be deleted
       by snapper. See the section about cleanup algorithms in
       <a href="http://snapper.io/manpages/snapper.html";><span 
class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>.
-      </p></dd><dt id="up"><span class="term"><code 
class="option">up</code></span><a class="headerlink" title="Permalink to this 
term" href="#up">¶</a></dt><dd><p>
-       If new updates are available, a new snapshot is created and
-       <span class="command"><strong>zypper up</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="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 
--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="grub.cfg"><span class="term"><code 
class="option">grub.cfg</code></span><a class="headerlink" title="Permalink to 
this term" href="#grub.cfg">¶</a></dt><dd><p>
+       <a href="https://www.linux.org/docs/man8/grub2-mkconfig.html";><span 
class="citerefentry"><span 
class="refentrytitle">grub2-mkconfig</span>(8)</span></a>
+       is called to create a new <code 
class="filename">/boot/grub2/grub.cfg</code>
+       configuration file for the bootloader.
+      </p></dd><dt id="bootloader"><span class="term"><code 
class="option">bootloader</code></span><a class="headerlink" title="Permalink 
to this term" href="#bootloader">¶</a></dt><dd><p>
+       A new snapshot is created, the bootloader configuration updated and
+       the boorloader newly written.
+      </p></dd><dt id="initrd"><span class="term"><code 
class="option">initrd</code></span><a class="headerlink" title="Permalink to 
this term" href="#initrd">¶</a></dt><dd><p>
+       A new initrd is created in a snapshot.
+      </p></dd><dt id="kdump"><span class="term"><code 
class="option">kdump</code></span><a class="headerlink" title="Permalink to 
this term" href="#kdump">¶</a></dt><dd><p>
+       A new initrd for kdump is created in a snapshot.
+      </p></dd><dt id="migration"><span class="term"><code 
class="option">migration</code></span><a class="headerlink" title="Permalink to 
this term" href="#migration">¶</a></dt><dd><p>
+       On systems which are registered against the SUSE Customer Center (SCC)
+       or SMT, a migration to a new version of the installed products can be
+       made with       this option. This is done in an interactive mode.
       </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.
@@ -65,14 +75,6 @@
        the system.
       </p></dd><dt id="pkg update &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">pkg update</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#pkg%20update%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd><p>
        Packages installed as RPMs can be updated.
-      </p></dd><dt id="grub.cfg"><span class="term"><code 
class="option">grub.cfg</code></span><a class="headerlink" title="Permalink to 
this term" href="#grub.cfg">¶</a></dt><dd><p>
-       <a href="https://www.linux.org/docs/man8/grub2-mkconfig.html";><span 
class="citerefentry"><span 
class="refentrytitle">grub2-mkconfig</span>(8)</span></a>
-       is called to create a new <code 
class="filename">/boot/grub2/grub.cfg</code>
-       configuration file for the bootloader.
-      </p></dd><dt id="initrd"><span class="term"><code 
class="option">initrd</code></span><a class="headerlink" title="Permalink to 
this term" href="#initrd">¶</a></dt><dd><p>
-       A new initrd is created in a snapshot.
-      </p></dd><dt id="kdump"><span class="term"><code 
class="option">kdump</code></span><a class="headerlink" title="Permalink to 
this term" href="#kdump">¶</a></dt><dd><p>
-       A new initrd for kdump is created in a snapshot.
       </p></dd><dt id="reboot"><span class="term"><code 
class="option">reboot</code></span><a class="headerlink" title="Permalink to 
this term" href="#reboot">¶</a></dt><dd><p>
        If a new snapshot with updates was created, the system should be
        rebooted. This option will trigger the necessary reboot. If the
@@ -94,7 +96,12 @@
        After all actions are done, before the snapshot with the changes is
        unmounted and switched to read-only, a shell is started in the new
        snapshot as chroot environment for testing and debugging.
-      </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>
+      </p></dd><dt id="up"><span class="term"><code 
class="option">up</code></span><a class="headerlink" title="Permalink to this 
term" href="#up">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper up</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="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help and exit</p></dd><dt 
id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd></dl></div></div><div class="refsect1"><a name="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
   itself can break or can break the system.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.22/sbin/transactional-update.in 
new/transactional-update-1.23/sbin/transactional-update.in
--- old/transactional-update-1.22/sbin/transactional-update.in  2017-11-07 
13:11:47.000000000 +0100
+++ new/transactional-update-1.23/sbin/transactional-update.in  2017-11-17 
14:45:58.000000000 +0100
@@ -25,10 +25,12 @@
 ZYPPER_ARG=""
 ZYPPER_NONINTERACTIVE="-y --auto-agree-with-product-licenses"
 ZYPPER_ARG_PKGS=""
+REWRITE_BOOTLOADER=0
 REWRITE_GRUB_CFG=0
 REWRITE_INITRD=0
 REBUILD_KDUMP_INITRD=0
 DO_CLEANUP=0
+DO_MIGRATION=0
 DO_ROLLBACK=0
 ROLLBACK_SNAPSHOT=0
 REBOOT_AFTERWARDS=0
@@ -48,6 +50,7 @@
     echo "Usage: transactional-update --help|--version"
     echo "       transactional-update 
[cleanup][up|dup|patch|initrd][kdump][reboot]"
     echo "       transactional-update [cleanup] [reboot] pkg 
install|remove|update PKG1..PKGN"
+    echo "       transactional-update migration"
     echo "       transactional-update rollback [number]"
     exit $1
 }
@@ -224,6 +227,17 @@
             # Run installing PTFs interactive
             ZYPPER_NONINTERACTIVE=""
            ;;
+       migration)
+           DO_MIGRATION=1
+           ZYPPER_NONINTERACTIVE=""
+           ZYPPER_ARG="migration"
+           shift
+           ;;
+        bootloader)
+           REWRITE_BOOTLOADER=1
+           REWRITE_GRUB_CFG=1
+            shift
+            ;;
        grub.cfg)
            REWRITE_GRUB_CFG=1
            shift
@@ -332,6 +346,10 @@
                log_error "ERROR: btrfs set-default $BTRFS_ID failed!"
                exit 1
            fi
+           # Create the trigger to re-register the system as new version after 
next
+           # reboot.
+           test -d ${MOUNT_DIR}/var/lib/rollback || mkdir -p 
${MOUNT_DIR}/var/lib/rollback
+           touch ${MOUNT_DIR}/var/lib/rollback/check-registration
        fi
        # Remove possible cleanup algo
        snapper modify -c '' ${ROLLBACK_SNAPSHOT}
@@ -404,10 +422,10 @@
 
 if [ -n "${ZYPPER_ARG}" -o ${REWRITE_GRUB_CFG} -eq 1 \
     -o ${REWRITE_INITRD} -eq 1 -o ${REBUILD_KDUMP_INITRD} -eq 1 \
-    -o ${RUN_SHELL} -eq 1 ]; then
+    -o ${RUN_SHELL} -eq 1 -o ${REWRITE_BOOTLOADER} -eq 1 ]; then
 
+    # Check if there are updates at all.
     if [ -n "${ZYPPER_ARG}" -a -n "${ZYPPER_NONINTERACTIVE}" ]; then
-       #check if there are updates at all
        TMPFILE=`mktemp /tmp/transactional-update.XXXXXXXXXX`
        zypper --xml ${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} --dry-run 
${ZYPPER_ARG_PKGS} > ${TMPFILE}
        if [ $? -ne 0 ]; then
@@ -479,6 +497,11 @@
        DIR_TO_MOUNT="${DIR_TO_MOUNT} etc/zypp"
     fi
 
+    # Check which directories in /boot/grub2 needs to be mounted,
+    # else a version update of grub2 will not boot.
+    DIR_TO_MOUNT="${DIR_TO_MOUNT} `grep /boot/grub2/ /etc/fstab |grep subvol | 
awk '{print $2}'`"
+
+
     # Mount everything we need:
     mount -t proc none ${SNAPSHOT_DIR}/proc
     if [ $? -ne 0 ]; then
@@ -526,8 +549,22 @@
            env DISABLE_RESTART_ON_UPDATE=yes zypper -R ${MOUNT_DIR} 
${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} ${ZYPPER_ARG_PKGS} |& tee -a ${LOGFILE}
            RETVAL=${PIPESTATUS[0]}
        else
-           env DISABLE_RESTART_ON_UPDATE=yes zypper -R ${MOUNT_DIR} 
${ZYPPER_ARG} ${ZYPPER_ARG_PKGS}
-           RETVAL=$?
+           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.
+               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
+                   # reboot.
+                   test -d ${MOUNT_DIR}/var/lib/rollback || mkdir -p 
${MOUNT_DIR}/var/lib/rollback
+                   touch ${MOUNT_DIR}/var/lib/rollback/check-registration
+               fi
+           else
+               env DISABLE_RESTART_ON_UPDATE=yes zypper -R ${MOUNT_DIR} 
${ZYPPER_ARG} ${ZYPPER_ARG_PKGS}
+               RETVAL=$?
+           fi
        fi
        if [ $RETVAL -ne 0 ]; then
            log_error "ERROR: zypper ${ZYPPER_ARG} on ${MOUNT_DIR} failed!"
@@ -561,6 +598,15 @@
            EXITCODE=1;
        fi
     fi
+
+    if [ ${REWRITE_BOOTLOADER} -eq 1 ]; then
+       log_info "Write new bootloader"
+       chroot ${MOUNT_DIR} /sbin/pbl --install
+       if [ $? -ne 0 ]; then
+           log_error "ERROR: /sbin/pbl --install failed!"
+           EXITCODE=1;
+       fi
+    fi
 
     if [ ${RUN_SHELL} -eq 1 ]; then
        echo "Chroot in snapshot ${SNAPSHOT_ID}, continue with 'exit'"


Reply via email to