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 - [email protected]
+
+- 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 <[email protected]>
.\" 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 <RPM> ... <RPM>"><span
class="term"><code class="option">pkg install</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20install%20<RPM>%20...%20<RPM>">¶</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 <RPM> ... <RPM>"><span
class="term"><code class="option">pkg remove</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20remove%20<RPM>%20...%20<RPM>">¶</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 <[email protected]>
.\" 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 <RPM> ... <RPM>"><span
class="term"><code class="option">pkg install</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20install%20<RPM>%20...%20<RPM>">¶</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 <RPM> ... <RPM>"><span
class="term"><code class="option">pkg remove</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20remove%20<RPM>%20...%20<RPM>">¶</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 <RPM> ... <RPM>"><span
class="term"><code class="option">pkg install</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20install%20<RPM>%20...%20<RPM>">¶</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 <RPM> ... <RPM>"><span
class="term"><code class="option">pkg remove</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20remove%20<RPM>%20...%20<RPM>">¶</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 <[email protected]>
- 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
;;