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 <RPM>...<RPM> </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 <RPM>...<RPM> </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 <RPM>...<RPM> </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 <RPM>...<RPM> </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 <RPM>...<RPM> </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 <RPM>...<RPM> </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