Hello community,

here is the log from the commit of package transactional-update for 
openSUSE:Factory checked in at 2018-08-22 14:19:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transactional-update (Old)
 and      /work/SRC/openSUSE:Factory/.transactional-update.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "transactional-update"

Wed Aug 22 14:19:27 2018 rev:32 rq:630563 version:2.6

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes    
    2018-06-19 12:03:09.659151438 +0200
+++ 
/work/SRC/openSUSE:Factory/.transactional-update.new/transactional-update.changes
   2018-08-22 14:19:43.686262873 +0200
@@ -1,0 +2,17 @@
+Mon Aug 20 15:09:44 UTC 2018 - ifors...@suse.com
+
+- Update to version 2.6
+  - Add --interactive and --non-interactive options to change the default
+    interactivity for zypper calls. For previously non-interactive calls (e.g.
+    dup) these options makes it possible to pick the correct solution in case
+    of conflicts or make sure that a script will never be stuck at an input
+    prompt.
+  - Add kured reboot support
+  - Tries to clean up temporary files and mount points if transactional-update
+    quits unexpectedly
+  - Remove trancactional-update-helper (replaced by zypper options)
+  - Create /var/lib/zypp if not available (boo#1104452)
+  - Various small fixes
+- Changed permissions of systemd script again
+
+-------------------------------------------------------------------

Old:
----
  transactional-update-2.5.tar.xz

New:
----
  transactional-update-2.6.tar.xz

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

Other differences:
------------------
++++++ transactional-update.spec ++++++
--- /var/tmp/diff_new_pack.3sbKWJ/_old  2018-08-22 14:19:44.106263867 +0200
+++ /var/tmp/diff_new_pack.3sbKWJ/_new  2018-08-22 14:19:44.106263867 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           transactional-update
-Version:        2.5
+Version:        2.6
 Release:        0
 Summary:        Transactional Updates with btrfs and snapshots
 License:        GPL-2.0-or-later
@@ -25,16 +25,14 @@
 URL:            https://github.com/openSUSE/transactional-update
 Source:         %{name}-%{version}.tar.xz
 BuildRequires:  fdupes
-BuildRequires:  gcc-c++
 BuildRequires:  pkgconfig
 BuildRequires:  rpm-devel
 BuildRequires:  suse-module-tools
-BuildRequires:  pkgconfig(libzypp)
 Requires:       attr
 Requires:       logrotate
 Requires:       lsof
-# psmisc is needed because of fuser
 Requires:       perl-HTML-Parser
+# psmisc is needed because of fuser
 Requires:       psmisc
 Requires:       rsync
 Conflicts:      snapper-zypp-plugin
@@ -82,13 +80,11 @@
 %{_sbindir}/create_dirs_from_rpmdb
 %{_sbindir}/transactional-update
 %{_sbindir}/tu-rebuild-kdump-initrd
-%{_sbindir}/transactional-update-helper
 %dir %{_prefix}%{_sysconfdir}
 %{_prefix}%{_sysconfdir}/transactional-update.conf
 %dir %{_prefix}/lib/dracut
 %dir %{_prefix}/lib/dracut/modules.d
 %{_prefix}/lib/dracut/modules.d/50transactional-update/
-%attr(0644,root,root) 
%{_prefix}/lib/dracut/modules.d/50transactional-update/transactional-update-etc-cleaner.service
 %{_mandir}/man5/transactional-update.conf.5%{?ext_man}
 %{_mandir}/man8/transactional-update.8%{?ext_man}
 %{_mandir}/man8/transactional-update.timer.8%{?ext_man}

++++++ transactional-update-2.5.tar.xz -> transactional-update-2.6.tar.xz ++++++
++++ 2317 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/NEWS new/transactional-update-2.6/NEWS
--- old/transactional-update-2.5/NEWS   2018-06-15 14:02:02.000000000 +0200
+++ new/transactional-update-2.6/NEWS   2018-08-20 17:08:14.000000000 +0200
@@ -2,6 +2,19 @@
 
 Copyright (C) 2016, 2017, 2018 Thorsten Kukuk
 
+Version 2.6
+* Add --interactive and --non-interactive options to change the default
+  interactivity for zypper calls. For previously non-interactive calls (e.g.
+  dup) these options makes it possible to pick the correct solution in case
+  of conflicts or make sure that a script will never be stuck at an input
+  prompt.
+* Add kured reboot support
+* Tries to clean up temporary files and mount points if transactional-update
+  quits unexpectedly
+* Remove trancactional-update-helper (replaced by zypper options)
+* Create /var/lib/zypp if not available (boo#1104452)
+* Various small fixes
+
 Version 2.5
 * Support for overlayfs attributes like trusted.overlay.opaque - this will
   avoid disappearing configuration files on system updates
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/configure.ac 
new/transactional-update-2.6/configure.ac
--- old/transactional-update-2.5/configure.ac   2018-06-15 14:02:29.000000000 
+0200
+++ new/transactional-update-2.6/configure.ac   2018-08-17 12:05:34.000000000 
+0200
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT(transactional-update, 2.5)
+AC_INIT(transactional-update, 2.6)
 AM_INIT_AUTOMAKE
 AC_CONFIG_SRCDIR([sbin/transactional-update.in])
 AC_PREFIX_DEFAULT(/usr)
@@ -40,17 +40,9 @@
 AC_SUBST(LOGROTATEDDIR)
 
 AC_PROG_CC
-AC_PROG_CXX
 AC_PROG_INSTALL
 AC_PROG_LN_S
 
-AX_CHECK_COMPILE_FLAG([-std=c++11], [CXXFLAGS="$CXXFLAGS -std=c++11"])
-
-dnl
-dnl Check for libzypp
-dnl
-PKG_CHECK_MODULES(LIBZYPP, libzypp)
-
 dnl
 dnl Check for librpm
 dnl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/dracut/Makefile.am 
new/transactional-update-2.6/dracut/Makefile.am
--- old/transactional-update-2.5/dracut/Makefile.am     2018-06-15 
13:38:30.000000000 +0200
+++ new/transactional-update-2.6/dracut/Makefile.am     2018-07-31 
16:39:29.000000000 +0200
@@ -4,6 +4,7 @@
 
 modulesdir = @DRACUTDIR@/50transactional-update
 
-modules_SCRIPTS = transactional-update-etc-cleaner.sh 
transactional-update-etc-cleaner.service module-setup.sh
+modules_SCRIPTS = transactional-update-etc-cleaner.sh module-setup.sh
+modules_DATA = transactional-update-etc-cleaner.service
 
-EXTRA_DIST = $(SCRIPTS)
+EXTRA_DIST = $(SCRIPTS) $(DATA)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/man/transactional-update.8 
new/transactional-update-2.6/man/transactional-update.8
--- old/transactional-update-2.5/man/transactional-update.8     2018-06-15 
14:03:40.000000000 +0200
+++ new/transactional-update-2.6/man/transactional-update.8     2018-08-20 
17:01:02.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: transactional-update
 .\"    Author: Thorsten Kukuk <ku...@suse.com>
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 06/15/2018
+.\"      Date: 08/20/2018
 .\"    Manual: transactional-update
 .\"    Source: transactional-update
 .\"  Language: English
 .\"
-.TH "TRANSACTIONAL\-UPDAT" "8" "06/15/2018" "transactional-update" 
"transactional-update"
+.TH "TRANSACTIONAL\-UPDAT" "8" "08/20/2018" "transactional-update" 
"transactional-update"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -158,10 +158,20 @@
 .RE
 .SS "Package Commands"
 .PP
-Package Commands will typically invoke
+Package Commands will invoke
 \fBzypper\fR
 to perform actions on the RPM packages\&. Only one Package Command can be used 
at the same time\&. Can be combined with any number of
 General Commands\&.
+.PP
+By default commands usually invoked from scripts are called in 
non\-interactive mode (assuming the default answer in case of questions), 
commands typically called by the user are called in interactive mode\&. The 
behaviour can be changed or enforced using the
+\fB\-\-interactive\fR
+respectively the
+\fB\-\-non\-interactive\fR
+options\&.
+.PP
+Note that when using Package Commands non\-interactively and combining them 
with
+General Commands
+the General Commands will only be executed if the Package Command updated any 
packages\&.
 .sp
 .it 1 an-trap
 .nr an-no-space-flag 1
@@ -171,16 +181,6 @@
 \fBNon-interactive Package Commands\fR
 .RS 4
 .PP
-Non\-interactive Package Commands are designed to be called from scripts and 
will require no user interaction\&. Note that when combining Non\-interactive 
Package Commands with
-General Commands
-those will only be executed if the Package Command updated any packages\&.
-.PP
-In case a user decision is needed it has to be resolved by using one of the
-Interactive Package Commands
-or
-\fBzypper\fR
-first\&.
-.PP
 \fBdup\fR
 .RS 4
 If new updates are available, a new snapshot is created and
@@ -211,11 +211,9 @@
 \fBInteractive Package Commands\fR
 .RS 4
 .PP
-Interactive Package Commands may require user interaction to solve conflicts 
or make decisions\&.
-.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\&.
+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\&.
 .RE
 .PP
 \fBpkg install\fR \fI<RPM> \&.\&.\&. <RPM>\fR
@@ -247,6 +245,16 @@
 .RE
 .SH "OPTIONS"
 .PP
+\fB\-\-interactive, \-i\fR
+.RS 4
+Ignores package command categorization, calls zypper in interactive mode\&.
+.RE
+.PP
+\fB\-\-non\-interactive, \-n\fR
+.RS 4
+Ignores package command categorization, calls zypper in non\-interactive 
mode\&.
+.RE
+.PP
 \fB\-\-no\-selfupdate\fR
 .RS 4
 Skip checking for newer transactional\-update versions\&.
@@ -257,7 +265,7 @@
 Don\*(Aqt print warnings and informational messages to stdout\&.
 .RE
 .PP
-\fB\-\-help\fR
+\fB\-\-help, \-h\fR
 .RS 4
 Display help and exit
 .RE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/man/transactional-update.8.html 
new/transactional-update-2.6/man/transactional-update.8.html
--- old/transactional-update-2.5/man/transactional-update.8.html        
2018-06-15 14:03:40.000000000 +0200
+++ new/transactional-update-2.6/man/transactional-update.8.html        
2018-08-20 17:01:02.000000000 +0200
@@ -15,7 +15,7 @@
     h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, 
dt:hover > a.headerlink {
       visibility: visible;
     }
-  </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.index.html">Index </a><span 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; style="float:right">transactional-update 
2.5</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><div class="refentry"><a 
name="transactional-update.8"></a><div class="titlepage"></div><div 
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, 
transactional-update.service, transactional-update.timer — Apply updates to the 
system in an atomic way via transactional
+  </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.index.html">Index </a><span 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; style="float:right">transactional-update 
2.6</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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>  [<em 
class="replaceable"><code>options</code></em>...] [<em 
class="replaceable"><code>general-command</code></em>...] [<em 
class="replaceable"><code>package-command</code></em>
          [<em class="replaceable"><code>command-argument</code></em>...]
       ]</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [<em 
class="replaceable"><code>options</code></em>...]  <em 
class="replaceable"><code>standalone-command</code></em> 
</p></div><p>transactional-update.service</p><p>transactional-update.timer</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
@@ -99,20 +99,22 @@
        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="refsect2"><a 
name="pkg_commands"></a><h3 id="Package Commands">Package Commands<a 
class="headerlink" title="Permalink to this headline" 
href="#Package%20Commands">¶</a></h3><p>
-  Package Commands will typically invoke <span 
class="command"><strong>zypper</strong></span> to perform
+  Package Commands will invoke <span 
class="command"><strong>zypper</strong></span> to perform
   actions on the RPM packages. Only one Package Command can be used at the
   same time. Can be combined with any number of
   <a class="link" href="#general_commands" title="General Commands">General 
Commands</a>.
-</p><div class="refsect3"><a name="ni_pkg_commands"></a><h4>Non-interactive 
Package Commands</h4><p>
-  Non-interactive Package Commands are designed to be called from scripts and
-  will require no user interaction. Note that when combining Non-interactive
-  Package Commands with
-  <a class="link" href="#general_commands" title="General Commands">General 
Commands</a> those will only be
-  executed if the Package Command updated any packages.
-</p><p>In case a user decision is needed it has to be resolved by using one
-  of the <a class="link" href="#i_pkg_commands" title="Interactive Package 
Commands">Interactive Package Commands</a> or
-  <span class="command"><strong>zypper</strong></span> first.
-</p><div class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
+</p><p>
+  By default commands usually invoked from scripts are called in
+  non-interactive mode (assuming the default answer in case of questions),
+  commands typically called by the user are called in interactive mode.
+  The behaviour can be changed or enforced using the
+  <code class="option">--interactive</code> respectively the
+  <code class="option">--non-interactive</code> options.
+</p><p>
+  Note that when using Package Commands non-interactively and combining them
+  with <a class="link" href="#general_commands" title="General 
Commands">General Commands</a> the General
+  Commands will only be executed if the Package Command updated any packages.
+</p><div class="refsect3"><a name="ni_pkg_commands"></a><h4>Non-interactive 
Package Commands</h4><div class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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
@@ -127,13 +129,10 @@
        <span class="command"><strong>zypper patch</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></dl></div></div><div class="refsect3"><a 
name="i_pkg_commands"></a><h4>Interactive Package Commands</h4><p>
-  Interactive Package Commands may require user interaction to solve conflicts
-  or make decisions.
-</p><div class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
+      </p></dd></dl></div></div><div class="refsect3"><a 
name="i_pkg_commands"></a><h4>Interactive Package Commands</h4><div 
class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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.
+       made with this option.
       </p></dd><dt id="pkg install &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">pkg install</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#pkg%20install%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
        A PTF or other packages in RPM format can be installed in the system.
       </p></dd><dt id="pkg remove &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">pkg remove</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#pkg%20remove%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
@@ -152,7 +151,7 @@
        the current root file system is made the new default root file system.
        Otherwise the snapshot with <code class="option">number</code> is made 
the
        new default root filesystem.
-      </p></dd></dl></div></div></div><div class="refsect1"><a 
name="options"></a><h2 id="OPTIONS">OPTIONS<a class="headerlink" 
title="Permalink to this headline" href="#OPTIONS">¶</a></h2><div 
class="variablelist"><dl class="variablelist"><dt id="--no-selfupdate"><span 
class="term"><code class="option">--no-selfupdate</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--no-selfupdate">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Skip checking for newer 
transactional-update versions.</p></dd><dt id="--quiet"><span 
class="term"><code class="option">--quiet</code></span><a class="headerlink" 
title="Permalink to this term" href="#--quiet">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Don't print warnings and informational 
messages to stdout.</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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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>
+      </p></dd></dl></div></div></div><div class="refsect1"><a 
name="options"></a><h2 id="OPTIONS">OPTIONS<a class="headerlink" 
title="Permalink to this headline" href="#OPTIONS">¶</a></h2><div 
class="variablelist"><dl class="variablelist"><dt id="--interactive, -i"><span 
class="term"><code class="option">--interactive, -i</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--interactive,%20-i">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Ignores package command categorization, 
calls zypper in interactive mode.</p></dd><dt id="--non-interactive, -n"><span 
class="term"><code class="option">--non-interactive, -n</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--non-interactive,%20-n">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Ignores package command categorization, 
calls zypper in non-interactive mode.</p></dd><dt id="--no-selfupdate"><span 
class="term"><code class="option">--no-selfupdate</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--no-selfupdate">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Skip checking for newer 
transactional-update versions.</p></dd><dt id="--quiet"><span 
class="term"><code class="option">--quiet</code></span><a class="headerlink" 
title="Permalink to this term" href="#--quiet">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Don't print warnings and informational 
messages to stdout.</p></dd><dt id="--help, -h"><span class="term"><code 
class="option">--help, -h</code></span><a class="headerlink" title="Permalink 
to this term" href="#--help,%20-h">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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 root filesystem and
   /etc can be updated. There is also
   limited handling for adding files and directories to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/man/transactional-update.8.xml 
new/transactional-update-2.6/man/transactional-update.8.xml
--- old/transactional-update-2.5/man/transactional-update.8.xml 2018-06-15 
13:38:30.000000000 +0200
+++ new/transactional-update-2.6/man/transactional-update.8.xml 2018-08-20 
16:59:01.000000000 +0200
@@ -217,23 +217,25 @@
 </refsect2>
 <refsect2 id='pkg_commands'><title>Package Commands</title>
 <para>
-  Package Commands will typically invoke <command>zypper</command> to perform
+  Package Commands will invoke <command>zypper</command> to perform
   actions on the RPM packages. Only one Package Command can be used at the
   same time. Can be combined with any number of
   <link linkend='general_commands'>General Commands</link>.
 </para>
-<refsect3 id='ni_pkg_commands'><title>Non-interactive Package Commands</title>
 <para>
-  Non-interactive Package Commands are designed to be called from scripts and
-  will require no user interaction. Note that when combining Non-interactive
-  Package Commands with
-  <link linkend='general_commands'>General Commands</link> those will only be
-  executed if the Package Command updated any packages.
+  By default commands usually invoked from scripts are called in
+  non-interactive mode (assuming the default answer in case of questions),
+  commands typically called by the user are called in interactive mode.
+  The behaviour can be changed or enforced using the
+  <option>--interactive</option> respectively the
+  <option>--non-interactive</option> options.
 </para>
-<para>In case a user decision is needed it has to be resolved by using one
-  of the <link linkend='i_pkg_commands'>Interactive Package Commands</link> or
-  <command>zypper</command> first.
+<para>
+  Note that when using Package Commands non-interactively and combining them
+  with <link linkend='general_commands'>General Commands</link> the General
+  Commands will only be executed if the Package Command updated any packages.
 </para>
+<refsect3 id='ni_pkg_commands'><title>Non-interactive Package Commands</title>
 <variablelist>
   <varlistentry>
     <term><option>dup</option></term>
@@ -271,10 +273,6 @@
 </variablelist>
 </refsect3>
 <refsect3 id='i_pkg_commands'><title>Interactive Package Commands</title>
-<para>
-  Interactive Package Commands may require user interaction to solve conflicts
-  or make decisions.
-</para>
 <variablelist>
   <varlistentry>
     <term><option>migration</option></term>
@@ -282,7 +280,7 @@
       <para>
        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.
+       made with this option.
       </para>
     </listitem>
   </varlistentry>
@@ -339,6 +337,18 @@
 <refsect1 id='options'><title>OPTIONS</title>
 <variablelist>
   <varlistentry>
+    <term><option>--interactive, -i</option></term>
+    <listitem>
+      <para>Ignores package command categorization, calls zypper in 
interactive mode.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><option>--non-interactive, -n</option></term>
+    <listitem>
+      <para>Ignores package command categorization, calls zypper in 
non-interactive mode.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
     <term><option>--no-selfupdate</option></term>
     <listitem>
       <para>Skip checking for newer transactional-update versions.</para>
@@ -351,7 +361,7 @@
     </listitem>
   </varlistentry>
   <varlistentry>
-    <term><option>--help</option></term>
+    <term><option>--help, -h</option></term>
     <listitem>
       <para>Display help and exit</para>
     </listitem>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/man/transactional-update.conf.5 
new/transactional-update-2.6/man/transactional-update.conf.5
--- old/transactional-update-2.5/man/transactional-update.conf.5        
2018-05-07 13:36:13.000000000 +0200
+++ new/transactional-update-2.6/man/transactional-update.conf.5        
2018-07-31 17:10:57.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: transactional-update.conf
 .\"    Author: Ignaz Forster <ifors...@suse.com>
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 05/07/2018
+.\"      Date: 07/31/2018
 .\"    Manual: transactional-update.conf
 .\"    Source: transactional-update
 .\"  Language: English
 .\"
-.TH "TRANSACTIONAL\-UPDAT" "5" "05/07/2018" "transactional-update" 
"transactional-update.conf"
+.TH "TRANSACTIONAL\-UPDAT" "5" "07/31/2018" "transactional-update" 
"transactional-update.conf"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -65,6 +65,11 @@
 This is the default value\&. If the option is invalid it will also be used as 
the fallback value\&.
 .RE
 .PP
+kured
+.RS 4
+Will inform kured (kubernetes reboot daemon) to reboot the system\&.
+.RE
+.PP
 salt
 .RS 4
 Will create a Salt grain for signaling Velum to reboot the system\&.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/man/transactional-update.conf.5.html 
new/transactional-update-2.6/man/transactional-update.conf.5.html
--- old/transactional-update-2.5/man/transactional-update.conf.5.html   
2018-05-07 13:36:14.000000000 +0200
+++ new/transactional-update-2.6/man/transactional-update.conf.5.html   
2018-07-31 17:10:57.000000000 +0200
@@ -15,7 +15,7 @@
     h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, 
dt:hover > a.headerlink {
       visibility: visible;
     }
-  </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.index.html">Index </a><span 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; style="float:right">transactional-update 
2.2</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><div class="refentry"><a 
name="transactional-update.conf.5"></a><div class="titlepage"></div><div 
class="refnamediv"><h2>Name</h2><p>transactional-update.conf — 
transactional-update configuration file</p></div><div 
class="refsynopsisdiv"><h2>Synopsis</h2><p>/etc/transactional-update.conf</p></div><div
 class="refsect1"><a name="id-1.5"></a><h2 id="Description">Description<a 
class="headerlink" title="Permalink to this headline" 
href="#Description">¶</a></h2><p>This configuration file controls and defines 
the behaviour of
+  </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.index.html">Index </a><span 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; style="float:right">transactional-update 
2.5</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><div class="refentry"><a 
name="transactional-update.conf.5"></a><div class="titlepage"></div><div 
class="refnamediv"><h2>Name</h2><p>transactional-update.conf — 
transactional-update configuration file</p></div><div 
class="refsynopsisdiv"><h2>Synopsis</h2><p>/etc/transactional-update.conf</p></div><div
 class="refsect1"><a name="id-1.5"></a><h2 id="Description">Description<a 
class="headerlink" title="Permalink to this headline" 
href="#Description">¶</a></h2><p>This configuration file controls and defines 
the behaviour of
     <a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; href="transactional-update.8.html"><span 
class="citerefentry"><span 
class="refentrytitle">transactional-update</span>(8)</span></a>.</p><p>The 
transactional-update.conf file uses shell
     style assignments, e.g. <code class="code">PARAMETER=value</code>.</p><p>A 
reference file (also used for reading the default values) can be
     found in
@@ -27,6 +27,8 @@
                 </p><p>
                   This is the default value. If the option is invalid it will
                   also be used as the fallback value.
+                </p></dd><dt id="kured"><span class="term">"<code 
class="literal">kured</code>"</span><a class="headerlink" title="Permalink to 
this term" href="#kured">¶</a></dt><dd><p>
+                 Will inform kured (kubernetes reboot daemon) to reboot the 
system.
                 </p></dd><dt id="salt"><span class="term">"<code 
class="literal">salt</code>"</span><a class="headerlink" title="Permalink to 
this term" href="#salt">¶</a></dt><dd><p>
                   Will create a Salt grain for signaling Velum to reboot the
                   system.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/man/transactional-update.conf.5.xml 
new/transactional-update-2.6/man/transactional-update.conf.5.xml
--- old/transactional-update-2.5/man/transactional-update.conf.5.xml    
2018-03-29 11:19:51.000000000 +0200
+++ new/transactional-update-2.6/man/transactional-update.conf.5.xml    
2018-07-31 16:39:20.000000000 +0200
@@ -91,6 +91,14 @@
               </listitem>
             </varlistentry>
             <varlistentry>
+              <term><literal>kured</literal></term>
+              <listitem>
+                <para>
+                 Will inform kured (kubernetes reboot daemon) to reboot the 
system.
+                </para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
               <term><literal>salt</literal></term>
               <listitem>
                 <para>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/man/transactional-update.index.html 
new/transactional-update-2.6/man/transactional-update.index.html
--- old/transactional-update-2.5/man/transactional-update.index.html    
2018-06-15 14:03:40.000000000 +0200
+++ new/transactional-update-2.6/man/transactional-update.index.html    
2018-08-20 17:01:02.000000000 +0200
@@ -15,4 +15,4 @@
     h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, 
dt:hover > a.headerlink {
       visibility: visible;
     }
-  </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.index.html">Index </a><span 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; style="float:right">transactional-update 
2.5</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.conf.5.html"><span class="citerefentry"><span 
class="refentrytitle">transactional-update.conf</span>(5)</span></a> -- 
transactional-update configuration file<br><a 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.timer.8.html"><span class="citerefentry"><span 
class="refentrytitle">transactional-update.timer</span>(8)</span></a> -- Apply 
updates to the system in an atomic way via transactional 
updates.<br></p></div><div class="refsect1"><a name="id-1.5"></a><p><a 
name="counts"></a>This index contains 4 entries, referring to 2 individual 
manual pages.</p></div></div></body></html>
+  </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.index.html">Index </a><span 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; style="float:right">transactional-update 
2.6</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.conf.5.html"><span class="citerefentry"><span 
class="refentrytitle">transactional-update.conf</span>(5)</span></a> -- 
transactional-update configuration file<br><a 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.timer.8.html"><span class="citerefentry"><span 
class="refentrytitle">transactional-update.timer</span>(8)</span></a> -- Apply 
updates to the system in an atomic way via transactional 
updates.<br></p></div><div class="refsect1"><a name="id-1.5"></a><p><a 
name="counts"></a>This index contains 4 entries, referring to 2 individual 
manual pages.</p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/man/transactional-update.service.8.html 
new/transactional-update-2.6/man/transactional-update.service.8.html
--- old/transactional-update-2.5/man/transactional-update.service.8.html        
2018-06-15 14:03:40.000000000 +0200
+++ new/transactional-update-2.6/man/transactional-update.service.8.html        
2018-08-20 17:01:02.000000000 +0200
@@ -15,7 +15,7 @@
     h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, 
dt:hover > a.headerlink {
       visibility: visible;
     }
-  </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.index.html">Index </a><span 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; style="float:right">transactional-update 
2.5</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><div class="refentry"><a 
name="transactional-update.8"></a><div class="titlepage"></div><div 
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, 
transactional-update.service, transactional-update.timer — Apply updates to the 
system in an atomic way via transactional
+  </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.index.html">Index </a><span 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; style="float:right">transactional-update 
2.6</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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>  [<em 
class="replaceable"><code>options</code></em>...] [<em 
class="replaceable"><code>general-command</code></em>...] [<em 
class="replaceable"><code>package-command</code></em>
          [<em class="replaceable"><code>command-argument</code></em>...]
       ]</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [<em 
class="replaceable"><code>options</code></em>...]  <em 
class="replaceable"><code>standalone-command</code></em> 
</p></div><p>transactional-update.service</p><p>transactional-update.timer</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
@@ -99,20 +99,22 @@
        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="refsect2"><a 
name="pkg_commands"></a><h3 id="Package Commands">Package Commands<a 
class="headerlink" title="Permalink to this headline" 
href="#Package%20Commands">¶</a></h3><p>
-  Package Commands will typically invoke <span 
class="command"><strong>zypper</strong></span> to perform
+  Package Commands will invoke <span 
class="command"><strong>zypper</strong></span> to perform
   actions on the RPM packages. Only one Package Command can be used at the
   same time. Can be combined with any number of
   <a class="link" href="#general_commands" title="General Commands">General 
Commands</a>.
-</p><div class="refsect3"><a name="ni_pkg_commands"></a><h4>Non-interactive 
Package Commands</h4><p>
-  Non-interactive Package Commands are designed to be called from scripts and
-  will require no user interaction. Note that when combining Non-interactive
-  Package Commands with
-  <a class="link" href="#general_commands" title="General Commands">General 
Commands</a> those will only be
-  executed if the Package Command updated any packages.
-</p><p>In case a user decision is needed it has to be resolved by using one
-  of the <a class="link" href="#i_pkg_commands" title="Interactive Package 
Commands">Interactive Package Commands</a> or
-  <span class="command"><strong>zypper</strong></span> first.
-</p><div class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
+</p><p>
+  By default commands usually invoked from scripts are called in
+  non-interactive mode (assuming the default answer in case of questions),
+  commands typically called by the user are called in interactive mode.
+  The behaviour can be changed or enforced using the
+  <code class="option">--interactive</code> respectively the
+  <code class="option">--non-interactive</code> options.
+</p><p>
+  Note that when using Package Commands non-interactively and combining them
+  with <a class="link" href="#general_commands" title="General 
Commands">General Commands</a> the General
+  Commands will only be executed if the Package Command updated any packages.
+</p><div class="refsect3"><a name="ni_pkg_commands"></a><h4>Non-interactive 
Package Commands</h4><div class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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
@@ -127,13 +129,10 @@
        <span class="command"><strong>zypper patch</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></dl></div></div><div class="refsect3"><a 
name="i_pkg_commands"></a><h4>Interactive Package Commands</h4><p>
-  Interactive Package Commands may require user interaction to solve conflicts
-  or make decisions.
-</p><div class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
+      </p></dd></dl></div></div><div class="refsect3"><a 
name="i_pkg_commands"></a><h4>Interactive Package Commands</h4><div 
class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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.
+       made with this option.
       </p></dd><dt id="pkg install &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">pkg install</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#pkg%20install%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
        A PTF or other packages in RPM format can be installed in the system.
       </p></dd><dt id="pkg remove &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">pkg remove</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#pkg%20remove%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
@@ -152,7 +151,7 @@
        the current root file system is made the new default root file system.
        Otherwise the snapshot with <code class="option">number</code> is made 
the
        new default root filesystem.
-      </p></dd></dl></div></div></div><div class="refsect1"><a 
name="options"></a><h2 id="OPTIONS">OPTIONS<a class="headerlink" 
title="Permalink to this headline" href="#OPTIONS">¶</a></h2><div 
class="variablelist"><dl class="variablelist"><dt id="--no-selfupdate"><span 
class="term"><code class="option">--no-selfupdate</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--no-selfupdate">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Skip checking for newer 
transactional-update versions.</p></dd><dt id="--quiet"><span 
class="term"><code class="option">--quiet</code></span><a class="headerlink" 
title="Permalink to this term" href="#--quiet">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Don't print warnings and informational 
messages to stdout.</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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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>
+      </p></dd></dl></div></div></div><div class="refsect1"><a 
name="options"></a><h2 id="OPTIONS">OPTIONS<a class="headerlink" 
title="Permalink to this headline" href="#OPTIONS">¶</a></h2><div 
class="variablelist"><dl class="variablelist"><dt id="--interactive, -i"><span 
class="term"><code class="option">--interactive, -i</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--interactive,%20-i">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Ignores package command categorization, 
calls zypper in interactive mode.</p></dd><dt id="--non-interactive, -n"><span 
class="term"><code class="option">--non-interactive, -n</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--non-interactive,%20-n">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Ignores package command categorization, 
calls zypper in non-interactive mode.</p></dd><dt id="--no-selfupdate"><span 
class="term"><code class="option">--no-selfupdate</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--no-selfupdate">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Skip checking for newer 
transactional-update versions.</p></dd><dt id="--quiet"><span 
class="term"><code class="option">--quiet</code></span><a class="headerlink" 
title="Permalink to this term" href="#--quiet">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Don't print warnings and informational 
messages to stdout.</p></dd><dt id="--help, -h"><span class="term"><code 
class="option">--help, -h</code></span><a class="headerlink" title="Permalink 
to this term" href="#--help,%20-h">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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 root filesystem and
   /etc can be updated. There is also
   limited handling for adding files and directories to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/man/transactional-update.timer.8.html 
new/transactional-update-2.6/man/transactional-update.timer.8.html
--- old/transactional-update-2.5/man/transactional-update.timer.8.html  
2018-06-15 14:03:40.000000000 +0200
+++ new/transactional-update-2.6/man/transactional-update.timer.8.html  
2018-08-20 17:01:02.000000000 +0200
@@ -15,7 +15,7 @@
     h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, 
dt:hover > a.headerlink {
       visibility: visible;
     }
-  </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.index.html">Index </a><span 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; style="float:right">transactional-update 
2.5</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><div class="refentry"><a 
name="transactional-update.8"></a><div class="titlepage"></div><div 
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, 
transactional-update.service, transactional-update.timer — Apply updates to the 
system in an atomic way via transactional
+  </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; 
href="transactional-update.index.html">Index </a><span 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common"; style="float:right">transactional-update 
2.6</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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>  [<em 
class="replaceable"><code>options</code></em>...] [<em 
class="replaceable"><code>general-command</code></em>...] [<em 
class="replaceable"><code>package-command</code></em>
          [<em class="replaceable"><code>command-argument</code></em>...]
       ]</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [<em 
class="replaceable"><code>options</code></em>...]  <em 
class="replaceable"><code>standalone-command</code></em> 
</p></div><p>transactional-update.service</p><p>transactional-update.timer</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
@@ -99,20 +99,22 @@
        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="refsect2"><a 
name="pkg_commands"></a><h3 id="Package Commands">Package Commands<a 
class="headerlink" title="Permalink to this headline" 
href="#Package%20Commands">¶</a></h3><p>
-  Package Commands will typically invoke <span 
class="command"><strong>zypper</strong></span> to perform
+  Package Commands will invoke <span 
class="command"><strong>zypper</strong></span> to perform
   actions on the RPM packages. Only one Package Command can be used at the
   same time. Can be combined with any number of
   <a class="link" href="#general_commands" title="General Commands">General 
Commands</a>.
-</p><div class="refsect3"><a name="ni_pkg_commands"></a><h4>Non-interactive 
Package Commands</h4><p>
-  Non-interactive Package Commands are designed to be called from scripts and
-  will require no user interaction. Note that when combining Non-interactive
-  Package Commands with
-  <a class="link" href="#general_commands" title="General Commands">General 
Commands</a> those will only be
-  executed if the Package Command updated any packages.
-</p><p>In case a user decision is needed it has to be resolved by using one
-  of the <a class="link" href="#i_pkg_commands" title="Interactive Package 
Commands">Interactive Package Commands</a> or
-  <span class="command"><strong>zypper</strong></span> first.
-</p><div class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
+</p><p>
+  By default commands usually invoked from scripts are called in
+  non-interactive mode (assuming the default answer in case of questions),
+  commands typically called by the user are called in interactive mode.
+  The behaviour can be changed or enforced using the
+  <code class="option">--interactive</code> respectively the
+  <code class="option">--non-interactive</code> options.
+</p><p>
+  Note that when using Package Commands non-interactively and combining them
+  with <a class="link" href="#general_commands" title="General 
Commands">General Commands</a> the General
+  Commands will only be executed if the Package Command updated any packages.
+</p><div class="refsect3"><a name="ni_pkg_commands"></a><h4>Non-interactive 
Package Commands</h4><div class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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
@@ -127,13 +129,10 @@
        <span class="command"><strong>zypper patch</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></dl></div></div><div class="refsect3"><a 
name="i_pkg_commands"></a><h4>Interactive Package Commands</h4><p>
-  Interactive Package Commands may require user interaction to solve conflicts
-  or make decisions.
-</p><div class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
+      </p></dd></dl></div></div><div class="refsect3"><a 
name="i_pkg_commands"></a><h4>Interactive Package Commands</h4><div 
class="variablelist"><dl class="variablelist"><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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.
+       made with this option.
       </p></dd><dt id="pkg install &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">pkg install</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#pkg%20install%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
        A PTF or other packages in RPM format can be installed in the system.
       </p></dd><dt id="pkg remove &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">pkg remove</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#pkg%20remove%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>
@@ -152,7 +151,7 @@
        the current root file system is made the new default root file system.
        Otherwise the snapshot with <code class="option">number</code> is made 
the
        new default root filesystem.
-      </p></dd></dl></div></div></div><div class="refsect1"><a 
name="options"></a><h2 id="OPTIONS">OPTIONS<a class="headerlink" 
title="Permalink to this headline" href="#OPTIONS">¶</a></h2><div 
class="variablelist"><dl class="variablelist"><dt id="--no-selfupdate"><span 
class="term"><code class="option">--no-selfupdate</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--no-selfupdate">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Skip checking for newer 
transactional-update versions.</p></dd><dt id="--quiet"><span 
class="term"><code class="option">--quiet</code></span><a class="headerlink" 
title="Permalink to this term" href="#--quiet">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Don't print warnings and informational 
messages to stdout.</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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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>
+      </p></dd></dl></div></div></div><div class="refsect1"><a 
name="options"></a><h2 id="OPTIONS">OPTIONS<a class="headerlink" 
title="Permalink to this headline" href="#OPTIONS">¶</a></h2><div 
class="variablelist"><dl class="variablelist"><dt id="--interactive, -i"><span 
class="term"><code class="option">--interactive, -i</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--interactive,%20-i">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Ignores package command categorization, 
calls zypper in interactive mode.</p></dd><dt id="--non-interactive, -n"><span 
class="term"><code class="option">--non-interactive, -n</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--non-interactive,%20-n">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Ignores package command categorization, 
calls zypper in non-interactive mode.</p></dd><dt id="--no-selfupdate"><span 
class="term"><code class="option">--no-selfupdate</code></span><a 
class="headerlink" title="Permalink to this term" 
href="#--no-selfupdate">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Skip checking for newer 
transactional-update versions.</p></dd><dt id="--quiet"><span 
class="term"><code class="option">--quiet</code></span><a class="headerlink" 
title="Permalink to this term" href="#--quiet">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><p>Don't print warnings and informational 
messages to stdout.</p></dd><dt id="--help, -h"><span class="term"><code 
class="option">--help, -h</code></span><a class="headerlink" title="Permalink 
to this term" href="#--help,%20-h">¶</a></dt><dd 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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 
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"; 
xmlns:exsl="http://exslt.org/common";><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 root filesystem and
   /etc can be updated. There is also
   limited handling for adding files and directories to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/sbin/Makefile.am 
new/transactional-update-2.6/sbin/Makefile.am
--- old/transactional-update-2.5/sbin/Makefile.am       2018-06-15 
13:38:30.000000000 +0200
+++ new/transactional-update-2.6/sbin/Makefile.am       2018-07-31 
16:55:22.000000000 +0200
@@ -3,9 +3,7 @@
 #
 
 sbin_SCRIPTS = transactional-update tu-rebuild-kdump-initrd
-sbin_PROGRAMS = transactional-update-helper create_dirs_from_rpmdb
-transactional_update_helper_SOURCES = transactional-update-helper.cpp
-transactional_update_helper_LDADD = @LIBZYPP_LIBS@
+sbin_PROGRAMS = create_dirs_from_rpmdb
 create_dirs_from_rpmdb_SOURCES = create_dirs_from_rpmdb.c
 create_dirs_from_rpmdb_LDADD = @LIBRPM_LIBS@
 CLEANFILES = transactional-update
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/sbin/transactional-update-helper.cpp 
new/transactional-update-2.6/sbin/transactional-update-helper.cpp
--- old/transactional-update-2.5/sbin/transactional-update-helper.cpp   
2018-06-15 13:38:30.000000000 +0200
+++ new/transactional-update-2.6/sbin/transactional-update-helper.cpp   
1970-01-01 01:00:00.000000000 +0100
@@ -1,68 +0,0 @@
-/* transactional-update-helper - native helper scripts for transactional-update
-
-   Author: Ignaz Forster <ifors...@suse.de>
-   Copyright (C) 2018 SUSE Linux GmbH
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 2 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <iostream>
-#include <zypp/ZYppFactory.h>
-#include <zypp/RepoManager.h>
-using namespace std;
-
-void usage(string command) {
-  cout << "Usage: " << command << " [disable-optical]" << endl;
-}
-
-int disable_optical() {
-  const zypp::Pathname &sysroot = "/";
-  zypp::RepoManager repoManager(sysroot);
-  zypp::RepoInfoList repos = repoManager.knownRepositories();
-
-  if (repos.empty()) {
-    cerr << "No repositories found in " << sysroot << endl;
-    return 2;
-  }
-
-  for_(it, repos.begin(), repos.end()) {
-    zypp::RepoInfo &repo(*it);
-    if (repo.url().schemeIsVolatile() && repo.enabled()) {
-      cout << "Disabling optical media repository " << repo.name() << "..." << 
endl;
-      repo.setEnabled(false);
-      try {
-        repoManager.modifyRepository(repo.alias(), repo);
-      } catch (const zypp::Exception &e) {
-        cerr << "Error while disabling repository '" << repo.name() << "': " 
<< e << endl;
-      }
-    }
-  }
-  return 0;
-}
-
-int main(int argc, char** argv) {
-  if (argc == 1) {
-    usage(argv[0]);
-    return 1;
-  }
-
-  string command = argv[1];
-  if (command == "disable-optical") {
-    disable_optical();
-  } else {
-    usage(argv[0]);
-  }
-  return 0;
-}
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-2.5/sbin/transactional-update.in 
new/transactional-update-2.6/sbin/transactional-update.in
--- old/transactional-update-2.5/sbin/transactional-update.in   2018-06-15 
13:38:30.000000000 +0200
+++ new/transactional-update-2.6/sbin/transactional-update.in   2018-08-20 
16:57:14.000000000 +0200
@@ -47,13 +47,7 @@
 LOGFILE="/var/log/transactional-update.log"
 STATE_FILE="/var/lib/misc/transactional-update.state"
 NEW_SNAPSHOT_FLAG="/var/lib/overlay/transactional-update.newsnapshot"
-SELF_PATH="`dirname $0`"
-PACKAGE_UPDATES=0
 ZYPPER_AUTO_IMPORT_KEYS=0
-HAS_SEPARATE_VAR=0
-SNAPSHOT_ID=""
-BACKUP_SNAPSHOT_ID=""
-SNAPPER_NO_DBUS=""
 
 # Load config
 if [ -r ${SYSTEMCONFFILE} ]; then
@@ -63,6 +57,16 @@
     . ${CONFFILE}
 fi
 
+# Initialize internal variables
+HAS_SEPARATE_VAR=0
+FORCE_NONINTERACTIVE=""
+SNAPSHOT_ID=""
+BACKUP_SNAPSHOT_ID=""
+SNAPSHOT_DIR=""
+MOUNT_DIR=""
+SNAPPER_NO_DBUS=""
+TMPFILE=""
+
 # Log stderr to log file
 exec 4>&2 2> >(tee -a "${LOGFILE}")
 
@@ -99,31 +103,34 @@
     echo "system."
     echo ""
     echo "General Commands:"
-    echo "cleanup            Mark unused snapshots for snapper removal"
-    echo "grub.cfg           Regenerate grub.cfg"
-    echo "bootloader         Reinstall the bootloader"
-    echo "initrd             Regenerate initrd"
-    echo "kdump              Regenerate kdump initrd"
-    echo "shell              Open rw shell in new snapshot before exiting"
-    echo "reboot             Reboot after update"
+    echo "cleanup                Mark unused snapshots for snapper removal"
+    echo "grub.cfg               Regenerate grub.cfg"
+    echo "bootloader             Reinstall the bootloader"
+    echo "initrd                 Regenerate initrd"
+    echo "kdump                  Regenerate kdump initrd"
+    echo "shell                  Open rw shell in new snapshot before exiting"
+    echo "reboot                 Reboot after update"
     echo ""
     echo "Package Commands:"
-    echo "dup                Call 'zypper dup --no-allow-vendor-change'"
-    echo "up                 Call 'zypper up'"
-    echo "patch              Call 'zypper patch'"
-    echo "migration          Updates systems registered via SCC / SMT"
-    echo "pkg install ...    Install individual packages"
-    echo "pkg remove ...     Remove individual packages"
-    echo "pkg update ...     Updates individual packages"
+    echo "dup                    Call 'zypper dup --no-allow-vendor-change' 
(n)"
+    echo "up                     Call 'zypper up' (n)"
+    echo "patch                  Call 'zypper patch' (n)"
+    echo "migration              Updates systems registered via SCC / SMT (i)"
+    echo "pkg install ...        Install individual packages (i)"
+    echo "pkg remove ...         Remove individual packages (i)"
+    echo "pkg update ...         Updates individual packages (i)"
+    echo "Defaults: (i) interactive command; (n) non-interactive command"
     echo ""
     echo "Standalone Commands:"
-    echo "rollback <number>  Set given snapshot as default snapshot"
+    echo "rollback <number>      Set given snapshot as default snapshot"
     echo ""
     echo "Options:"
-    echo "--no-selfupdate    Skip checking for newer version"
-    echo "--quiet            Don't print warnings and infos to stdout"
-    echo "--help             Display this help and exit"
-    echo "--version          Display version and exit"
+    echo "--interactive, -i      Use interactive mode for package command"
+    echo "--non-interactive, -n  Use non-interactive mode for package command"
+    echo "--no-selfupdate        Skip checking for newer version"
+    echo "--quiet                Don't print warnings and infos to stdout"
+    echo "--help, -h             Display this help and exit"
+    echo "--version              Display version and exit"
     exit $1
 }
 
@@ -141,7 +148,7 @@
 
 log_error() {
     echo `date "+%Y-%m-%d %H:%M"` "$@" >> ${LOGFILE}
-    echo "$@" 1>&2
+    echo "$@" 1>&4
 }
 
 bashlock() {
@@ -199,6 +206,16 @@
 
 # Only called in error case; reverts everything to previous state.
 quit() {
+    teardown
+
+    # Wait for things to settle down
+    for delay in {1..10}; do
+       if [ -z "${SNAPSHOT_DIR}" -o -z "`lsof "${SNAPSHOT_DIR}" 2>/dev/null`" 
]; then
+           break
+       fi
+       sleep $delay
+    done
+
     if [ -n "${SNAPSHOT_ID}" ] ; then
        log_error "Removing snapshot #${SNAPSHOT_ID}..."
        snapper ${SNAPPER_NO_DBUS} delete ${SNAPSHOT_ID} |& tee -a ${LOGFILE}
@@ -225,6 +242,66 @@
     exit $1
 }
 
+# Called on exit (both on success and failure); cleans up temporary files,
+# mount points and variables
+teardown() {
+    # Unset variable
+    unset TRANSACTIONAL_UPDATE
+
+    # Cleanup temporary files
+    rm -f ${TMPFILE}
+
+    # The following commands only make sense if snapshot dir is set already
+    if [ "${SNAPSHOT_DIR}" = "" ]; then
+       return
+    fi
+
+    # Delete temporary data before unmounting everything:
+    if [ ${HAS_SEPARATE_VAR} -eq 1 ]; then
+       rm -rf ${SNAPSHOT_DIR}/var/tmp
+       rm -rf ${SNAPSHOT_DIR}/var/lib/zypp
+    fi
+
+    # Unmount everything we don't need anymore:
+    for directory in proc sys $DIR_TO_MOUNT .snapshots ; do
+       # Only try unmount if directory is mounted
+       if ! findmnt ${SNAPSHOT_DIR}/$directory >/dev/null; then
+           continue;
+       fi
+       umount -R ${SNAPSHOT_DIR}/$directory
+       if [ $? -ne 0 ]; then
+           log_error "ERROR: umount of $directory failed!"
+           fuser -v ${SNAPSHOT_DIR}/$directory >> ${LOGFILE}
+           lsof ${SNAPSHOT_DIR}/$directory >> ${LOGFILE}
+            # Try again after some time
+            sleep 30
+            umount -R ${SNAPSHOT_DIR}/$directory
+            if [ $? -ne 0 ]; then
+                log_error "ERROR 2nd try: umount of $directory failed!"
+               EXITCODE=1;
+            fi
+       fi
+    done
+    if findmnt ${MOUNT_DIR} >/dev/null; then
+       umount -R ${MOUNT_DIR}
+    fi
+
+    # Cleanup of temporary mount point
+    if [ -e ${MOUNT_DIR} ]; then
+       rmdir ${MOUNT_DIR}
+    fi
+
+    # Cleanup other stuff
+    # Cleanup cache directory
+    if [ $VAR_CACHE_CLEANUP -eq 1 ]; then
+       rm -rf ${SNAPSHOT_DIR}/var/cache/*
+    fi
+    # systemd-tmpfiles creates directories/files even if /run is no tmpfs:
+    rm -rf ${SNAPSHOT_DIR}/run/*
+    # WARNING: /var/spool/ can contain changes through RPM!
+    rm -rf ${SNAPSHOT_DIR}/var/spool/*
+}
+
 reboot_via_salt() {
     log_info "transactional-update finished - created salt grains"
     if [ -f /etc/salt/grains ]; then
@@ -261,6 +338,12 @@
     exit 0
 }
 
+reboot_via_kured() {
+    log_info "transactional-update finished - informed kured"
+    touch /var/run/reboot-required
+    exit 0
+}
+
 reboot_autodetect() {
     if [ -x /usr/sbin/rebootmgrctl ]; then
        reboot_via_rebootmgr
@@ -331,7 +414,7 @@
            ;;
        dup)
            DO_DUP=1
-           ZYPPER_ARG="dup --no-allow-vendor-change"
+           ZYPPER_ARG="--no-cd dup --no-allow-vendor-change"
            shift
            ;;
         up|patch)
@@ -343,6 +426,8 @@
            if [ $# -eq 0 ]; then
                usage 1
            fi
+            # Interactively run installing PTFs
+            ZYPPER_NONINTERACTIVE="${FORCE_NONINTERACTIVE:-}"
            case "$1" in
                install|in)
                    ZYPPER_ARG="install"
@@ -350,6 +435,9 @@
                    ;;
                remove|rm)
                    ZYPPER_ARG="remove"
+                   if [ -n "${ZYPPER_NONINTERACTIVE}" ]; then
+                       ZYPPER_NONINTERACTIVE="-y"
+                   fi
                    shift
                    ;;
                update|up)
@@ -373,13 +461,18 @@
                    shift
                fi
            done
-            # Interactively run installing PTFs
-            ZYPPER_NONINTERACTIVE=""
            ;;
        migration)
+           __NO_RESET=0
            DO_MIGRATION=1
-           ZYPPER_NONINTERACTIVE=""
-           ZYPPER_ARG="migration --no-snapshots"
+           ZYPPER_ARG="migration --no-snapshots --no-selfupdate"
+           if [ -n "${FORCE_NONINTERACTIVE}" ]; then
+               # non interative option is named different for
+               # different commands ...
+               ZYPPER_NONINTERACTIVE="--non-interactive 
--auto-agree-with-licenses"
+           else
+               ZYPPER_NONINTERACTIVE=""
+           fi
            shift
            ;;
        bootloader)
@@ -423,6 +516,14 @@
            REBOOT_METHOD="salt"
            shift
            ;;
+       -i|--interactive)
+           ZYPPER_NONINTERACTIVE=""
+           shift
+           ;;
+       -n|--non-interactive)
+           FORCE_NONINTERACTIVE="${ZYPPER_NONINTERACTIVE}"
+           shift
+           ;;
        --no-selfupdate)
            DO_SELF_UPDATE=0
            shift
@@ -480,6 +581,9 @@
     trap 'rm -f "$LOCKFILE" && rm -rf "${TA_UPDATE_TMPFILE}" && unset 
TA_UPDATE_TMPFILE' EXIT
 fi
 
+# Clean up in case the application is interrupted
+trap 'echo -e "\nReceived termination signal..." && quit 1' HUP INT QUIT TERM
+
 # Load old state file
 if [ -f ${STATE_FILE} ]; then
     . ${STATE_FILE}
@@ -639,9 +743,6 @@
     # a registration, as this can change the zypper result.
     if [ -n "${ZYPPER_ARG}" -a -n "${ZYPPER_NONINTERACTIVE}" \
          -a ${DO_REGISTRATION} -eq 0 ]; then
-       if [ $DO_DUP -eq 1 ]; then
-           "${SELF_PATH}"/transactional-update-helper disable-optical
-       fi
 
        TMPFILE=`mktemp /tmp/transactional-update.XXXXXXXXXX`
        zypper --xml ${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} --dry-run 
"${ZYPPER_ARG_PKGS[@]}" > ${TMPFILE}
@@ -649,7 +750,8 @@
            LOG_MESSAGES=`awk -v RS='<' -v FS='>' '{if ($1 ~ 
/^(message|description)/) print $2}' ${TMPFILE} | perl -MHTML::Entities -pe 
'decode_entities($_);'`
            log_error "ERROR: Zypper failed with the following message(s):"
            log_error "${LOG_MESSAGES}"
-            rm -f ${TMPFILE}
+           rm -f ${TMPFILE}
+           echo "Use '--interactive' for manual problem resolution."
            quit 1
        fi
        PACKAGE_UPDATES=`grep "install-summary download-size" ${TMPFILE} | sed 
-e 's|.*install-summary download-size=\"\(.*\)\" space-usage-diff.*|\1|g'`
@@ -675,7 +777,6 @@
     # Hint: The rw subvolume is not shown in grub2.
     log_info "Creating read-only snapshot of current system state 
(#${CURRENT_SNAPSHOT_ID})"
     BACKUP_SNAPSHOT_ID=`snapper create -p -t pre -c number -u "important=yes" 
-d "RO-Clone of #${CURRENT_SNAPSHOT_ID}"`
-    BACKUP_SNAPSHOT_DIR=/.snapshots/${BACKUP_SNAPSHOT_ID}/snapshot
     if [ $? -ne 0 ]; then
        SNAPPER_NO_DBUS="--no-dbus"
        BACKUP_SNAPSHOT_ID=`snapper --no-dbus create -p -t pre -c number -u 
"important=yes" -d "RO-Clone of #${CURRENT_SNAPSHOT_ID}"`
@@ -684,6 +785,7 @@
            quit 1
        fi
     fi
+    BACKUP_SNAPSHOT_DIR=/.snapshots/${BACKUP_SNAPSHOT_ID}/snapshot
 
     # Make the backup snapshot read-write:
     btrfs property set ${BACKUP_SNAPSHOT_DIR} ro false
@@ -789,6 +891,7 @@
     # will delete again later.
     if [ ${HAS_SEPARATE_VAR} -eq 1 ]; then
        mkdir ${SNAPSHOT_DIR}/var/tmp
+       mkdir -p ${SNAPSHOT_DIR}/var/lib/zypp
        cp /var/lib/zypp/RequestedLocales ${SNAPSHOT_DIR}/var/lib/zypp/
     fi
 
@@ -823,29 +926,38 @@
     if [ -n "${ZYPPER_ARG}" ]; then
 
        log_info "Calling zypper ${ZYPPER_ARG}"
-       # All transactional-update zypper commands except migration and pkg
        if [ -n "${ZYPPER_NONINTERACTIVE}" ]; then
-           env DISABLE_RESTART_ON_UPDATE=yes zypper -R ${MOUNT_DIR} 
${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} "${ZYPPER_ARG_PKGS[@]}" |& tee -a 
${LOGFILE}
-           RETVAL=${PIPESTATUS[0]}
+           # In non-interactive mode, we redirect everything to a log file
+           if [ ${DO_MIGRATION} -eq 1 ]; then
+               # transactional-update migration
+               env DISABLE_RESTART_ON_UPDATE=yes zypper ${ZYPPER_ARG} --root 
${MOUNT_DIR} ${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_NONINTERACTIVE} "${ZYPPER_ARG_PKGS[@]}" |& tee -a 
${LOGFILE}
+               RETVAL=${PIPESTATUS[0]}
+           fi
        else
-           # transactional-update migration
+           # in interactive mode, we don't redirect to a log file
            if [ ${DO_MIGRATION} -eq 1 ]; then
-               chroot ${MOUNT_DIR} env DISABLE_RESTART_ON_UPDATE=yes zypper 
${ZYPPER_ARG} "${ZYPPER_ARG_PKGS[@]}"
+               # transactional-update migration
+               env DISABLE_RESTART_ON_UPDATE=yes zypper ${ZYPPER_ARG} --root 
${MOUNT_DIR} "${ZYPPER_ARG_PKGS[@]}"
                RETVAL=$?
-               # Reset registration until reboot. Needed in both cases,
-               # whether an error occured or whether we had success.
-               test -x /usr/sbin/rollback-reset-registration && 
/usr/sbin/rollback-reset-registration
-               if [ $RETVAL -eq 0 ]; then
-                   # Create the trigger to re-register the system as new 
version after next
-                   # reboot.
-                   check_registration_on_next_reboot
-               fi
-           # transactional-update pkg
            else
                env DISABLE_RESTART_ON_UPDATE=yes zypper -R ${MOUNT_DIR} 
${ZYPPER_ARG} "${ZYPPER_ARG_PKGS[@]}"
                RETVAL=$?
            fi
        fi
+       # in case of migration, we need to do a little bit more:
+       if [ ${DO_MIGRATION} -eq 1 ]; then
+           # Reset registration until reboot. Needed in both cases,
+           # whether an error occured or whether we had success.
+           test -x /usr/sbin/SUSEConnect && /usr/sbin/SUSEConnect --rollback
+           if [ $RETVAL -eq 0 ]; then
+               # Create the trigger to re-register the system as new version 
after next
+               # reboot.
+               check_registration_on_next_reboot
+           fi
+       fi
 
        if [ $RETVAL -eq 0 -o $RETVAL -eq 102 -o $RETVAL -eq 103 -o \( $DO_DUP 
-eq 0 -a $RETVAL -eq 106 \) ]; then
            REBUILD_KDUMP_INITRD=1
@@ -906,45 +1018,7 @@
        env PS1="transactional update # " chroot ${MOUNT_DIR} bash 2>&4
     fi
 
-    # Unset variable
-    unset TRANSACTIONAL_UPDATE
-
-    # Delete temporary data before unmounting everything:
-    if [ ${HAS_SEPARATE_VAR} -eq 1 ]; then
-       rm -rf ${SNAPSHOT_DIR}/var/tmp
-       rm -f ${SNAPSHOT_DIR}/var/lib/zypp/RequestedLocales
-    fi
-
-    # Unmount everything we don't need anymore:
-    for directory in proc sys $DIR_TO_MOUNT .snapshots ; do
-       umount -R ${SNAPSHOT_DIR}/$directory
-       if [ $? -ne 0 ]; then
-           log_error "ERROR: umount of $directory failed!"
-           fuser -v ${SNAPSHOT_DIR}/$directory >> ${LOGFILE}
-           lsof ${SNAPSHOT_DIR}/$directory >> ${LOGFILE}
-            # Try again after some time
-            sleep 30
-            umount -R ${SNAPSHOT_DIR}/$directory
-            if [ $? -ne 0 ]; then
-                log_error "ERROR 2nd try: umount of $directory failed!"
-               EXITCODE=1;
-            fi
-       fi
-    done
-    umount -R ${MOUNT_DIR}
-
-    # Cleanup of temporary mount point
-    rmdir ${MOUNT_DIR}
-
-    # Cleanup other stuff
-    # Cleanup cache directory
-    if [ $VAR_CACHE_CLEANUP -eq 1 ]; then
-       rm -rf ${SNAPSHOT_DIR}/var/cache/*
-    fi
-    # systemd-tmpfiles creates directories/files even if /run is no tmpfs:
-    rm -rf ${SNAPSHOT_DIR}/run/*
-    # WARNING: /var/spool/ can contain changes through RPM!
-    rm -rf ${SNAPSHOT_DIR}/var/spool/*
+    teardown
 
     # Somersault:
     if [ $EXITCODE -eq 0 ]; then
@@ -998,6 +1072,9 @@
            auto)
                reboot_autodetect
                ;;
+           kured)
+               reboot_via_kured
+               ;;
            salt)
                reboot_via_salt
                ;;


Reply via email to