Hello community,

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

Package is "transactional-update"

Sun Apr 22 14:40:24 2018 rev:25 rq:599342 version:1.29

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes    
    2018-04-05 15:36:04.714532813 +0200
+++ 
/work/SRC/openSUSE:Factory/.transactional-update.new/transactional-update.changes
   2018-04-22 14:40:26.123240052 +0200
@@ -1,0 +2,8 @@
+Fri Apr 20 15:57:21 CEST 2018 - ku...@suse.de
+
+- Update to version 1.29
+  - Implement self-update
+  - Disable optical media on dup
+  - Ignore certain zypper return codes
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ transactional-update.spec ++++++
--- /var/tmp/diff_new_pack.ga5Ja8/_old  2018-04-22 14:40:26.779216316 +0200
+++ /var/tmp/diff_new_pack.ga5Ja8/_new  2018-04-22 14:40:26.783216171 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           transactional-update
-Version:        1.28
+Version:        1.29
 Release:        0
 Summary:        Transactional Updates with btrfs and snapshots
 License:        GPL-2.0-or-later
@@ -25,15 +25,13 @@
 Url:            https://github.com/thkukuk/transactional-update
 Source:         %{name}-%{version}.tar.bz2
 BuildRequires:  fdupes
+BuildRequires:  gcc-c++
+BuildRequires:  pkgconfig(libzypp)
 Requires:       logrotate
 Requires:       lsof
 # psmisc is needed because of fuser
-Requires:       perl-HTML-Parser
 Requires:       psmisc
-Conflicts:      snapper-zypp-plugin
 Recommends:     rebootmgr
-BuildArch:      noarch
-%{?systemd_requires}
 
 %description
 transactional-update is a tool to update a system in an atomic
@@ -70,6 +68,7 @@
 %{_unitdir}/transactional-update.timer
 %{_sbindir}/transactional-update
 %{_sbindir}/tu-rebuild-kdump-initrd
+%{_sbindir}/transactional-update-helper
 %dir %{_prefix}%{_sysconfdir}
 %{_prefix}%{_sysconfdir}/transactional-update.conf
 %{_mandir}/man5/transactional-update.conf.5%{ext_man}

++++++ transactional-update-1.28.tar.bz2 -> transactional-update-1.29.tar.bz2 
++++++
++++ 5093 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-1.28/NEWS new/transactional-update-1.29/NEWS
--- old/transactional-update-1.28/NEWS  2018-03-12 13:17:29.000000000 +0100
+++ new/transactional-update-1.29/NEWS  2018-04-20 15:55:53.000000000 +0200
@@ -2,6 +2,11 @@
 
 Copyright (C) 2016, 2017, 2018 Thorsten Kukuk
 
+Version 1.29
+* Implement self-update
+* Disable optical media on dup
+* Ignore certain zypper return codes
+
 Version 1.28
 * Adjust for latest grub2 changes
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-1.28/configure.ac 
new/transactional-update-1.29/configure.ac
--- old/transactional-update-1.28/configure.ac  2018-03-12 13:17:10.000000000 
+0100
+++ new/transactional-update-1.29/configure.ac  2018-04-20 15:55:00.000000000 
+0200
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT(transactional-update, 1.28)
+AC_INIT(transactional-update, 1.29)
 AM_INIT_AUTOMAKE
 AC_CONFIG_SRCDIR([sbin/transactional-update.in])
 AC_PREFIX_DEFAULT(/usr)
@@ -35,9 +35,17 @@
 LOGROTATEDDIR=${sysconfdir}/logrotate.d
 AC_SUBST(LOGROTATEDDIR)
 
+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 xsltproc
 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-1.28/man/transactional-update.8 
new/transactional-update-1.29/man/transactional-update.8
--- old/transactional-update-1.28/man/transactional-update.8    2018-01-31 
16:12:29.000000000 +0100
+++ new/transactional-update-1.29/man/transactional-update.8    2018-04-20 
13:14:21.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: transactional-update
 .\"    Author: Thorsten Kukuk <ku...@suse.com>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 01/31/2018
+.\"      Date: 04/20/2018
 .\"    Manual: transactional-update
 .\"    Source: transactional-update
 .\"  Language: English
 .\"
-.TH "TRANSACTIONAL\-UPDAT" "8" "01/31/2018" "transactional-update" 
"transactional-update"
+.TH "TRANSACTIONAL\-UPDAT" "8" "04/20/2018" "transactional-update" 
"transactional-update"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -33,11 +33,11 @@
 .HP \w'\fBtransactional\-update\fR\ 'u
 \fBtransactional\-update\fR [\-\-help] [\-\-version]
 .HP \w'\fBtransactional\-update\fR\ 'u
-\fBtransactional\-update\fR [cleanup] [up | dup | patch | bootloader | initrd] 
[kdump] [reboot]
+\fBtransactional\-update\fR [\-\-no\-selfupdate] [cleanup] [up | dup | patch | 
bootloader | initrd] [kdump] [reboot]
 .HP \w'\fBtransactional\-update\fR\ 'u
-\fBtransactional\-update\fR [cleanup] [reboot] pkg install | remove | update  
<RPM>\&.\&.\&.<RPM>
+\fBtransactional\-update\fR [\-\-no\-selfupdate] [cleanup] [reboot] pkg 
install | remove | update  <RPM>\&.\&.\&.<RPM>
 .HP \w'\fBtransactional\-update\fR\ 'u
-\fBtransactional\-update\fR migration
+\fBtransactional\-update\fR [\-\-no\-selfupdate] migration
 .HP \w'\fBtransactional\-update\fR\ 'u
 \fBtransactional\-update\fR rollback [number]
 .PP
@@ -161,6 +161,11 @@
 is used to update the snapshot\&. Afterwards, the snapshot is activated and 
will be used as the new root filesystem during next boot\&.
 .RE
 .PP
+\fB\-\-no\-selfupdate\fR
+.RS 4
+Skip checking for newer transactional\-update versions\&.
+.RE
+.PP
 \fB\-\-help\fR
 .RS 4
 Display help and exit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-1.28/man/transactional-update.8.html 
new/transactional-update-1.29/man/transactional-update.8.html
--- old/transactional-update-1.28/man/transactional-update.8.html       
2018-03-06 13:27:29.000000000 +0100
+++ new/transactional-update-1.29/man/transactional-update.8.html       
2018-04-20 13:14:22.000000000 +0200
@@ -15,8 +15,8 @@
     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 
1.27</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>  [--help] [--version]</p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>  
[cleanup] [ up  |   dup  |   patch  |   bootloader  |   initrd ] [kdump] 
[reboot]</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [cleanup] [reboot]  pkg    install 
 |   remove  |   update    &lt;RPM&gt;...&lt;RPM&gt; </p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>   
migration </p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>   rollback  
[number]</p></div><p>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
+  </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 
1.28</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>  [--help] [--version]</p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>  
[--no-selfupdate] [cleanup] [ up  |   dup  |   patch  |   bootloader  |   
initrd ] [kdump] [reboot]</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [--no-selfupdate] [cleanup] 
[reboot]  pkg    install  |   remove  |   update    &lt;RPM&gt;...&lt;RPM&gt; 
</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [--no-selfupdate]  migration 
</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>   rollback  
[number]</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
 in a transactional way, which means: it is atomic, so either the patches are
 fully applied or nothing is changed. The update does not influence your
 running system and it can be rolled back. To activate the changes, the system
@@ -101,7 +101,7 @@
        <span class="command"><strong>zypper up</strong></span> is used to 
update the snapshot.
        Afterwards, the snapshot is activated and will be used as the new root
        filesystem during next boot.
-      </p></dd><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd 
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><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="--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>
   Only RPMs, which are fully part of the snapshot of the root filesystem, can
   be updated. If RPMs contains files outside of the snapshot, the update
   itself can break or can break the system.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-1.28/man/transactional-update.8.xml 
new/transactional-update-1.29/man/transactional-update.8.xml
--- old/transactional-update-1.28/man/transactional-update.8.xml        
2018-01-22 13:01:43.000000000 +0100
+++ new/transactional-update-1.29/man/transactional-update.8.xml        
2018-04-20 11:09:40.000000000 +0200
@@ -60,6 +60,7 @@
     </cmdsynopsis>
     <cmdsynopsis>
       <command>transactional-update</command>
+      <arg choice='opt'>--no-selfupdate</arg>
       <arg choice='opt'>cleanup</arg>
       <group choice='opt'>
        <arg choice='plain'>up</arg>
@@ -73,6 +74,7 @@
     </cmdsynopsis>
     <cmdsynopsis>
       <command>transactional-update</command>
+      <arg choice='opt'>--no-selfupdate</arg>
       <arg choice='opt'>cleanup</arg>
       <arg choice='opt'>reboot</arg>
       <arg choice='plain'>pkg</arg>
@@ -85,6 +87,7 @@
     </cmdsynopsis>
     <cmdsynopsis>
       <command>transactional-update</command>
+      <arg choice='opt'>--no-selfupdate</arg>
       <arg choice='plain'>migration</arg>
     </cmdsynopsis>
     <cmdsynopsis>
@@ -282,6 +285,12 @@
     </listitem>
   </varlistentry>
   <varlistentry>
+    <term><option>--no-selfupdate</option></term>
+    <listitem>
+      <para>Skip checking for newer transactional-update versions.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
     <term><option>--help</option></term>
     <listitem>
       <para>Display help and exit</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-1.28/man/transactional-update.service.8.html 
new/transactional-update-1.29/man/transactional-update.service.8.html
--- old/transactional-update-1.28/man/transactional-update.service.8.html       
2018-03-06 13:27:29.000000000 +0100
+++ new/transactional-update-1.29/man/transactional-update.service.8.html       
2018-04-20 13:14:22.000000000 +0200
@@ -15,8 +15,8 @@
     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 
1.27</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>  [--help] [--version]</p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>  
[cleanup] [ up  |   dup  |   patch  |   bootloader  |   initrd ] [kdump] 
[reboot]</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [cleanup] [reboot]  pkg    install 
 |   remove  |   update    &lt;RPM&gt;...&lt;RPM&gt; </p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>   
migration </p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>   rollback  
[number]</p></div><p>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
+  </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 
1.28</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>  [--help] [--version]</p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>  
[--no-selfupdate] [cleanup] [ up  |   dup  |   patch  |   bootloader  |   
initrd ] [kdump] [reboot]</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [--no-selfupdate] [cleanup] 
[reboot]  pkg    install  |   remove  |   update    &lt;RPM&gt;...&lt;RPM&gt; 
</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [--no-selfupdate]  migration 
</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>   rollback  
[number]</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
 in a transactional way, which means: it is atomic, so either the patches are
 fully applied or nothing is changed. The update does not influence your
 running system and it can be rolled back. To activate the changes, the system
@@ -101,7 +101,7 @@
        <span class="command"><strong>zypper up</strong></span> is used to 
update the snapshot.
        Afterwards, the snapshot is activated and will be used as the new root
        filesystem during next boot.
-      </p></dd><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd 
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><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="--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>
   Only RPMs, which are fully part of the snapshot of the root filesystem, can
   be updated. If RPMs contains files outside of the snapshot, the update
   itself can break or can break the system.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-1.28/man/transactional-update.timer.8.html 
new/transactional-update-1.29/man/transactional-update.timer.8.html
--- old/transactional-update-1.28/man/transactional-update.timer.8.html 
2018-03-06 13:27:29.000000000 +0100
+++ new/transactional-update-1.29/man/transactional-update.timer.8.html 
2018-04-20 13:14:22.000000000 +0200
@@ -15,8 +15,8 @@
     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 
1.27</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>  [--help] [--version]</p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>  
[cleanup] [ up  |   dup  |   patch  |   bootloader  |   initrd ] [kdump] 
[reboot]</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [cleanup] [reboot]  pkg    install 
 |   remove  |   update    &lt;RPM&gt;...&lt;RPM&gt; </p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>   
migration </p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>   rollback  
[number]</p></div><p>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
+  </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 
1.28</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>  [--help] [--version]</p></div><div 
class="cmdsynopsis"><p><code class="command">transactional-update</code>  
[--no-selfupdate] [cleanup] [ up  |   dup  |   patch  |   bootloader  |   
initrd ] [kdump] [reboot]</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [--no-selfupdate] [cleanup] 
[reboot]  pkg    install  |   remove  |   update    &lt;RPM&gt;...&lt;RPM&gt; 
</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>  [--no-selfupdate]  migration 
</p></div><div class="cmdsynopsis"><p><code 
class="command">transactional-update</code>   rollback  
[number]</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
 in a transactional way, which means: it is atomic, so either the patches are
 fully applied or nothing is changed. The update does not influence your
 running system and it can be rolled back. To activate the changes, the system
@@ -101,7 +101,7 @@
        <span class="command"><strong>zypper up</strong></span> is used to 
update the snapshot.
        Afterwards, the snapshot is activated and will be used as the new root
        filesystem during next boot.
-      </p></dd><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd 
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><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="--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>
   Only RPMs, which are fully part of the snapshot of the root filesystem, can
   be updated. If RPMs contains files outside of the snapshot, the update
   itself can break or can break the system.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-1.28/sbin/Makefile.am 
new/transactional-update-1.29/sbin/Makefile.am
--- old/transactional-update-1.28/sbin/Makefile.am      2018-03-05 
16:44:00.000000000 +0100
+++ new/transactional-update-1.29/sbin/Makefile.am      2018-04-20 
15:48:00.000000000 +0200
@@ -3,6 +3,9 @@
 #
 
 sbin_SCRIPTS = transactional-update tu-rebuild-kdump-initrd
+sbin_PROGRAMS = transactional-update-helper
+transactional_update_helper_SOURCES = transactional-update-helper.cpp
+transactional_update_helper_LDADD = @LIBZYPP_LIBS@
 CLEANFILES = transactional-update
 EXTRA_DIST = transactional-update.in tu-rebuild-kdump-initrd
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/transactional-update-1.28/sbin/transactional-update-helper.cpp 
new/transactional-update-1.29/sbin/transactional-update-helper.cpp
--- old/transactional-update-1.28/sbin/transactional-update-helper.cpp  
1970-01-01 01:00:00.000000000 +0100
+++ new/transactional-update-1.29/sbin/transactional-update-helper.cpp  
2018-04-20 11:09:40.000000000 +0200
@@ -0,0 +1,67 @@
+/* transactional-update-helper - native helper scripts for transactional-update
+
+   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-1.28/sbin/transactional-update.in 
new/transactional-update-1.29/sbin/transactional-update.in
--- old/transactional-update-1.28/sbin/transactional-update.in  2018-03-12 
13:17:01.000000000 +0100
+++ new/transactional-update-1.29/sbin/transactional-update.in  2018-04-20 
15:47:38.000000000 +0200
@@ -31,7 +31,9 @@
 REBUILD_KDUMP_INITRD=0
 DO_CLEANUP=0
 DO_MIGRATION=0
+DO_DUP=0
 DO_ROLLBACK=0
+DO_SELF_UPDATE=1
 ROLLBACK_SNAPSHOT=0
 REBOOT_AFTERWARDS=0
 REBOOT_METHOD="auto"
@@ -41,6 +43,7 @@
 SYSTEMCONFFILE="@prefix@@sysconfdir@/transactional-update.conf"
 LOGFILE="/var/log/transactional-update.log"
 STATE_FILE="/var/lib/misc/transactional-update.state"
+SELF_PATH="`dirname $0`"
 PACKAGE_UPDATES=0
 ZYPPER_AUTO_IMPORT_KEYS=0
 HAS_SEPARATE_VAR=0
@@ -60,11 +63,28 @@
     . ${CONFFILE}
 fi
 
+self_update() {
+    if [ ${DO_SELF_UPDATE} == 0 ]; then
+       return
+    fi
+
+    echo "Checking for newer version."
+    if zypper info transactional-update | grep -q '^Status *: out-of-date'; 
then
+       echo "New version found - updating..."
+       export TA_UPDATE_TMPFILE="`mktemp -d 
/tmp/transactional-update.XXXXXXXXXX`"
+       cd "${TA_UPDATE_TMPFILE}"
+       zypper --pkg-cache-dir "${TA_UPDATE_TMPFILE}" download 
transactional-update
+       find . -name transactional-update*.rpm -exec rpm2cpio {} \; | cpio 
-idmv >/dev/null
+       rm -f "${LOCKFILE}"
+       exec "${TA_UPDATE_TMPFILE}/usr/sbin/transactional-update" $@
+    fi
+}
+
 usage() {
     echo "Usage: transactional-update --help|--version"
-    echo "       transactional-update 
[cleanup][up|dup|patch|initrd][kdump][reboot]"
-    echo "       transactional-update [cleanup] [reboot] pkg 
install|remove|update PKG1..PKGN"
-    echo "       transactional-update migration"
+    echo "       transactional-update [--no-selfupdate] 
[cleanup][up|dup|patch|initrd][kdump][reboot]"
+    echo "       transactional-update [--no-selfupdate] [cleanup] [reboot] pkg 
install|remove|update PKG1..PKGN"
+    echo "       transactional-update [--no-selfupdate] migration"
     echo "       transactional-update rollback [number]"
     exit $1
 }
@@ -271,7 +291,7 @@
     fi
 }
 
-ORIG_ARGS="$@"
+ORIG_ARGS=("$@")
 
 # If no option is given, assume "up"
 if [ $# -eq 0 ]; then
@@ -289,6 +309,7 @@
            shift
            ;;
        dup)
+           DO_DUP=1
            ZYPPER_ARG="dup --no-allow-vendor-change"
            shift
            ;;
@@ -368,6 +389,7 @@
            ;;
        rollback)
            DO_ROLLBACK=1
+           DO_SELF_UPDATE=0
            shift
            if [ $# -eq 1 ]; then
                ROLLBACK_SNAPSHOT=$1
@@ -380,6 +402,10 @@
            REBOOT_METHOD="salt"
            shift
            ;;
+       --no-selfupdate)
+           DO_SELF_UPDATE=0
+           shift
+           ;;
        -h|--help)
            usage 0
            ;;
@@ -398,6 +424,12 @@
     usage 1;
 fi
 
+if [ -z "${TA_UPDATE_TMPFILE}" ]; then
+  self_update "${ORIG_ARGS[@]}"
+else
+  trap 'rm -rf "${TA_UPDATE_TMPFILE}" && unset TA_UPDATE_TMPFILE' EXIT
+fi
+
 bashlock "/var/run/transactional-update.pid"
 if [ $? -ne 0 ]; then
   echo "Couldn't get lock, is another instance already running?"
@@ -410,7 +442,7 @@
 fi
 
 log_info "transactional-update @VERSION@ started"
-log_info "Options: $ORIG_ARGS"
+log_info "Options: ${ORIG_ARGS[@]}"
 
 if [ "`stat -f -c %T /`" != "btrfs" ]; then
   log_error "ERROR: not using btrfs as root file system!"
@@ -553,6 +585,10 @@
 
     # Check if there are updates at all.
     if [ -n "${ZYPPER_ARG}" -a -n "${ZYPPER_NONINTERACTIVE}" ]; 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}
        if [ $? -ne 0 ]; then
@@ -707,7 +743,7 @@
        VAR_CACHE_CLEANUP=1
     fi
 
-    # Create bind mount or else grub2 will fail
+    # Create bind mounts or else grub2 will fail
     MOUNT_DIR=`mktemp -d`
     mount -o rbind ${SNAPSHOT_DIR} ${MOUNT_DIR}
     mount -o bind,ro /.snapshots ${MOUNT_DIR}/.snapshots
@@ -749,10 +785,7 @@
            fi
        fi
 
-       if [ $RETVAL -ne 0 ]; then
-           log_error "ERROR: zypper ${ZYPPER_ARG} on ${MOUNT_DIR} failed!"
-           EXITCODE=1
-       else
+       if [ $RETVAL -eq 0 -o $RETVAL -eq 102 -o $RETVAL -eq 103 -o \( $DO_DUP 
-eq 0 -a $RETVAL -eq 106 \) ]; then
            copy_user_group_accounts
            REBUILD_KDUMP_INITRD=1
            # check if products are updated and we need to re-register
@@ -761,6 +794,9 @@
            if [ $? -ne 0 ]; then
                check_registration_on_next_reboot
            fi
+       else
+           log_error "ERROR: zypper ${ZYPPER_ARG} on ${MOUNT_DIR} failed!"
+           EXITCODE=1
        fi
     fi
 


Reply via email to