Hello community,

here is the log from the commit of package transactional-update for 
openSUSE:Factory checked in at 2017-02-02 15:44:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transactional-update (Old)
 and      /work/SRC/openSUSE:Factory/.transactional-update.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "transactional-update"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes    
    2017-01-20 13:08:25.532942500 +0100
+++ 
/work/SRC/openSUSE:Factory/.transactional-update.new/transactional-update.changes
   2017-02-03 20:03:50.904994713 +0100
@@ -1,0 +2,19 @@
+Wed Feb  1 14:50:37 CET 2017 - [email protected]
+
+- Update to version 1.8
+  - fix references in html docu
+  - build kdump initrd if we build standard initrd, too
+
+-------------------------------------------------------------------
+Mon Jan 30 11:20:26 CET 2017 - [email protected]
+
+- Update to version 1.7
+  - build html docu, too
+
+-------------------------------------------------------------------
+Sun Jan 29 13:27:08 UTC 2017 - [email protected]
+
+- Update to version 1.6
+  - Add support for kdump [bsc#1018098]
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ transactional-update.spec ++++++
--- /var/tmp/diff_new_pack.EJcp3e/_old  2017-02-03 20:03:51.604896198 +0100
+++ /var/tmp/diff_new_pack.EJcp3e/_new  2017-02-03 20:03:51.608895635 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           transactional-update
-Version:        1.5
+Version:        1.8
 Release:        0
 Summary:        Transactional Updates with btrfs and snapshots
 License:        GPL-2.0+
@@ -65,6 +65,7 @@
 %{_unitdir}/transactional-update.service
 %{_unitdir}/transactional-update.timer
 %{_sbindir}/transactional-update
+%{_sbindir}/tu-rebuild-kdump-initrd
 %{_mandir}/man8/transactional-update.8%{ext_man}
 %{_mandir}/man8/transactional-update.timer.8%{ext_man}
 %{_mandir}/man8/transactional-update.service.8%{ext_man}

++++++ transactional-update-1.5.tar.bz2 -> transactional-update-1.8.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/Makefile.in 
new/transactional-update-1.8/Makefile.in
--- old/transactional-update-1.5/Makefile.in    2017-01-19 10:23:42.000000000 
+0100
+++ new/transactional-update-1.8/Makefile.in    2017-02-01 14:49:19.000000000 
+0100
@@ -207,6 +207,7 @@
 ISSUEDIR = @ISSUEDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LN_S = @LN_S@
 LOGROTATEDDIR = @LOGROTATEDDIR@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/NEWS 
new/transactional-update-1.8/NEWS
--- old/transactional-update-1.5/NEWS   2017-01-19 10:22:12.000000000 +0100
+++ new/transactional-update-1.8/NEWS   2017-02-01 14:49:14.000000000 +0100
@@ -2,6 +2,17 @@
 
 Copyright (C) 2016, 2017 Thorsten Kukuk
 
+Version 1.8
+* Fix references in html pages
+* Build kdump initrd when building standard initrd, too
+
+Version 1.7
+* Disable interactive install mode for PTFs
+* Build html version of man pages, too
+
+Version 1.6
+* Add support for kdump
+
 Version 1.5
 * Install PTFs in interactive mode
 * Make sure state file is in sync between snapshots
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/configure 
new/transactional-update-1.8/configure
--- old/transactional-update-1.5/configure      2017-01-19 10:23:43.000000000 
+0100
+++ new/transactional-update-1.8/configure      2017-02-01 14:49:19.000000000 
+0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for transactional-update 1.5.
+# Generated by GNU Autoconf 2.69 for transactional-update 1.8.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -576,8 +576,8 @@
 # Identity of this package.
 PACKAGE_NAME='transactional-update'
 PACKAGE_TARNAME='transactional-update'
-PACKAGE_VERSION='1.5'
-PACKAGE_STRING='transactional-update 1.5'
+PACKAGE_VERSION='1.8'
+PACKAGE_STRING='transactional-update 1.8'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -591,6 +591,7 @@
 XML_CATALOG_FILE
 XMLLINT
 XSLTPROC
+LN_S
 LOGROTATEDDIR
 SYSTEMDDIR
 UDEVRULESDIR
@@ -1210,7 +1211,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures transactional-update 1.5 to adapt to many kinds of 
systems.
+\`configure' configures transactional-update 1.8 to adapt to many kinds of 
systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1277,7 +1278,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of transactional-update 1.5:";;
+     short | recursive ) echo "Configuration of transactional-update 1.8:";;
    esac
   cat <<\_ACEOF
 
@@ -1357,7 +1358,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-transactional-update configure 1.5
+transactional-update configure 1.8
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1374,7 +1375,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by transactional-update $as_me 1.5, which was
+It was created by transactional-update $as_me 1.8, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2237,7 +2238,7 @@
 
 # Define the identity of the package.
  PACKAGE='transactional-update'
- VERSION='1.5'
+ VERSION='1.8'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2323,6 +2324,17 @@
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
 
 enable_man=yes
 # Extract the first word of "xsltproc", so it can be a program name with args.
@@ -3085,7 +3097,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by transactional-update $as_me 1.5, which was
+This file was extended by transactional-update $as_me 1.8, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -3138,7 +3150,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-transactional-update config.status 1.5
+transactional-update config.status 1.8
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/configure.ac 
new/transactional-update-1.8/configure.ac
--- old/transactional-update-1.5/configure.ac   2017-01-19 10:23:38.000000000 
+0100
+++ new/transactional-update-1.8/configure.ac   2017-02-01 14:45:54.000000000 
+0100
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT(transactional-update, 1.5)
+AC_INIT(transactional-update, 1.8)
 AM_INIT_AUTOMAKE
 AC_CONFIG_SRCDIR([sbin/transactional-update.in])
 AC_PREFIX_DEFAULT(/usr)
@@ -36,6 +36,7 @@
 AC_SUBST(LOGROTATEDDIR)
 
 AC_PROG_INSTALL
+AC_PROG_LN_S
 
 dnl
 dnl Check for xsltproc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/logrotate/Makefile.in 
new/transactional-update-1.8/logrotate/Makefile.in
--- old/transactional-update-1.5/logrotate/Makefile.in  2017-01-19 
10:23:42.000000000 +0100
+++ new/transactional-update-1.8/logrotate/Makefile.in  2017-02-01 
14:49:19.000000000 +0100
@@ -160,6 +160,7 @@
 ISSUEDIR = @ISSUEDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LN_S = @LN_S@
 LOGROTATEDDIR = @LOGROTATEDDIR@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/man/Makefile.am 
new/transactional-update-1.8/man/Makefile.am
--- old/transactional-update-1.5/man/Makefile.am        2016-11-16 
22:51:37.000000000 +0100
+++ new/transactional-update-1.8/man/Makefile.am        2017-01-30 
09:57:04.000000000 +0100
@@ -1,20 +1,53 @@
 #
-# Copyright (c) 2016 Thorsten Kukuk, Germany
+# Copyright (c) 2016, 2017 Thorsten Kukuk, Germany
 #
 # Author: Thorsten Kukuk <[email protected]>
 #
 
-CLEANFILES = transactional-update.8 transactional-update.timer.8 \
-       transactional-update.service.8
+CLEANFILES = $(MANS) $(DATA) transactional-update.index.xml
 
-EXTRA_DIST = $(MANS) $(XMLS)
+EXTRA_DIST = $(MANS) $(XMLS) $(DATA) custom-html.xsl make-man-index.py \
+       xml_helper.py transactional-update.index.xml
 
 man_MANS = transactional-update.8 transactional-update.service.8 \
        transactional-update.timer.8
+
+noinst_DATA = transactional-update.8.html transactional-update.service.8.html \
+       transactional-update.timer.8.html transactional-update.index.html
+
 XMLS = transactional-update.8.xml
 
+XSLTPROC_FLAGS_HTML = \
+        --nonet \
+        --xinclude \
+        --stringparam man.authors.section.enabled 0 \
+        --stringparam man.copyright.section.enabled 0 \
+        --stringparam transactional-update.version $(VERSION) \
+        --stringparam chunker.output.encoding UTF-8 \
+        $(srcdir)/custom-html.xsl
+
+
 if ENABLE_REGENERATE_MAN
+define html-alias
+       $(LN_S) -f $(notdir $<) $@
+endef
+
+transactional-update.index.xml: make-man-index.py $(XMLS)
+       python $(srcdir)/make-man-index.py $(srcdir)/$@ $(XMLS)
+
 transactional-update.8: transactional-update.8.xml
-       $(XMLLINT) --nonet --xinclude --postvalid --noout $<
        $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) --xinclude --nonet 
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+
+transactional-update.8.html: transactional-update.8.xml custom-html.xsl
+       $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) $(XSLTPROC_FLAGS_HTML) $<
+
+transactional-update.service.8.html: transactional-update.8.html
+       $(html-alias)
+
+transactional-update.timer.8.html: transactional-update.8.html
+       $(html-alias)
+
+transactional-update.index.html: transactional-update.index.xml custom-html.xsl
+       $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) $(XSLTPROC_FLAGS_HTML) $<
+
 endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/man/Makefile.in 
new/transactional-update-1.8/man/Makefile.in
--- old/transactional-update-1.5/man/Makefile.in        2017-01-19 
10:23:43.000000000 +0100
+++ new/transactional-update-1.8/man/Makefile.in        2017-02-01 
14:49:19.000000000 +0100
@@ -15,10 +15,11 @@
 @SET_MAKE@
 
 #
-# Copyright (c) 2016 Thorsten Kukuk, Germany
+# Copyright (c) 2016, 2017 Thorsten Kukuk, Germany
 #
 # Author: Thorsten Kukuk <[email protected]>
 #
+
 VPATH = @srcdir@
 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
 am__make_running_with_option = \
@@ -141,6 +142,7 @@
 am__installdirs = "$(DESTDIR)$(man8dir)"
 NROFF = nroff
 MANS = $(man_MANS)
+DATA = $(noinst_DATA)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -163,6 +165,7 @@
 ISSUEDIR = @ISSUEDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LN_S = @LN_S@
 LOGROTATEDDIR = @LOGROTATEDDIR@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
@@ -225,14 +228,26 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-CLEANFILES = transactional-update.8 transactional-update.timer.8 \
-       transactional-update.service.8
+CLEANFILES = $(MANS) $(DATA) transactional-update.index.xml
+EXTRA_DIST = $(MANS) $(XMLS) $(DATA) custom-html.xsl make-man-index.py \
+       xml_helper.py transactional-update.index.xml
 
-EXTRA_DIST = $(MANS) $(XMLS)
 man_MANS = transactional-update.8 transactional-update.service.8 \
        transactional-update.timer.8
 
+noinst_DATA = transactional-update.8.html transactional-update.service.8.html \
+       transactional-update.timer.8.html transactional-update.index.html
+
 XMLS = transactional-update.8.xml
+XSLTPROC_FLAGS_HTML = \
+        --nonet \
+        --xinclude \
+        --stringparam man.authors.section.enabled 0 \
+        --stringparam man.copyright.section.enabled 0 \
+        --stringparam transactional-update.version $(VERSION) \
+        --stringparam chunker.output.encoding UTF-8 \
+        $(srcdir)/custom-html.xsl
+
 all: all-am
 
 .SUFFIXES:
@@ -348,7 +363,7 @@
        done
 check-am: all-am
 check: check-am
-all-am: Makefile $(MANS)
+all-am: Makefile $(MANS) $(DATA)
 installdirs:
        for dir in "$(DESTDIR)$(man8dir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
@@ -467,10 +482,28 @@
        uninstall-man8
 
 
+@ENABLE_REGENERATE_MAN_TRUE@define html-alias
+@ENABLE_REGENERATE_MAN_TRUE@   $(LN_S) -f $(notdir $<) $@
+@ENABLE_REGENERATE_MAN_TRUE@endef
+
+@[email protected]: make-man-index.py 
$(XMLS)
+@ENABLE_REGENERATE_MAN_TRUE@   python $(srcdir)/make-man-index.py $(srcdir)/$@ 
$(XMLS)
+
 @[email protected]: transactional-update.8.xml
-@ENABLE_REGENERATE_MAN_TRUE@   $(XMLLINT) --nonet --xinclude --postvalid 
--noout $<
 @ENABLE_REGENERATE_MAN_TRUE@   $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) 
--xinclude --nonet 
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
 
+@[email protected]: 
transactional-update.8.xml custom-html.xsl
+@ENABLE_REGENERATE_MAN_TRUE@   $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) 
$(XSLTPROC_FLAGS_HTML) $<
+
+@[email protected]: 
transactional-update.8.html
+@ENABLE_REGENERATE_MAN_TRUE@   $(html-alias)
+
+@[email protected]: 
transactional-update.8.html
+@ENABLE_REGENERATE_MAN_TRUE@   $(html-alias)
+
+@[email protected]: 
transactional-update.index.xml custom-html.xsl
+@ENABLE_REGENERATE_MAN_TRUE@   $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) 
$(XSLTPROC_FLAGS_HTML) $<
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/man/custom-html.xsl 
new/transactional-update-1.8/man/custom-html.xsl
--- old/transactional-update-1.5/man/custom-html.xsl    1970-01-01 
01:00:00.000000000 +0100
+++ new/transactional-update-1.8/man/custom-html.xsl    2017-01-30 
09:49:02.000000000 +0100
@@ -0,0 +1,253 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+
+<!--
+  This file is based on the systemd custom-html.xsl file.
+
+  Copyright 2011 Lennart Poettering
+
+  systemd is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 of the License, or
+  (at your option) any later version.
+
+  systemd 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
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
+
+<xsl:import 
href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>
+<!--
+  - The docbook stylesheet injects empty anchor tags into generated HTML, 
identified by an auto-generated ID.
+  - Ask the docbook stylesheet to generate reproducible output when generating 
(these) ID values.
+  - This makes the output of this stylesheet reproducible across identical 
invocations on the same input,
+  - which is an easy and significant win for achieving reproducible builds.
+  -
+  - It may be even better to strip the empty anchors from the document output 
in addition to turning on consistent IDs,
+  - for this stylesheet contains its own custom ID logic (for generating 
permalinks) already.
+ -->
+<xsl:param name="generate.consistent.ids" select="1"/>
+
+<!-- translate man page references to links to html pages -->
+<xsl:template match="citerefentry[not(@project)]">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:value-of select="refentrytitle"/>
+      <xsl:text>.</xsl:text>
+      <xsl:value-of select="manvolnum"/>
+      <xsl:text>.html</xsl:text>
+    </xsl:attribute>
+    <xsl:call-template name="inline.charseq"/>
+  </a>
+</xsl:template>
+
+<xsl:template match="citerefentry[@project='man-pages'] | 
citerefentry[manvolnum='2'] | citerefentry[manvolnum='4']">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:text>http://man7.org/linux/man-pages/man</xsl:text>
+      <xsl:value-of select="manvolnum"/>
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="refentrytitle"/>
+      <xsl:text>.</xsl:text>
+      <xsl:value-of select="manvolnum"/>
+      <xsl:text>.html</xsl:text>
+    </xsl:attribute>
+    <xsl:call-template name="inline.charseq"/>
+  </a>
+</xsl:template>
+
+<xsl:template match="citerefentry[@project='systemd']">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:text>https://www.freedesktop.org/software/systemd/man/</xsl:text>
+      <xsl:value-of select="refentrytitle"/>
+      <xsl:text>.html</xsl:text>
+    </xsl:attribute>
+    <xsl:call-template name="inline.charseq"/>
+  </a>
+</xsl:template>
+
+<xsl:template match="citerefentry[@project='snapper']">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:text>http://snapper.io/manpages/</xsl:text>
+      <xsl:value-of select="refentrytitle"/>
+      <xsl:text>.html</xsl:text>
+    </xsl:attribute>
+    <xsl:call-template name="inline.charseq"/>
+  </a>
+</xsl:template>
+
+
+<!--
+  - helper template to do conflict resolution between various headings with 
the same inferred ID attribute/tag from the headerlink template
+  - this conflict resolution is necessary to prevent malformed HTML output 
(multiple ID attributes with the same value)
+  - and it fixes xsltproc warnings during compilation of HTML man pages
+  -
+  - A simple top-to-bottom numbering scheme is implemented for nodes with the 
same ID value to derive unique ID values for HTML output.
+  - It uses two parameters:
+      templateID  the proposed ID string to use which must be checked for 
conflicts
+      keyNode     the context node which 'produced' the given templateID.
+  -
+  - Conflicts are detected solely based on keyNode, templateID is not taken 
into account for that purpose.
+ -->
+<xsl:template name="generateID">
+  <!-- node which generatedID needs to assume as the 'source' of the ID -->
+  <xsl:param name="keyNode"/>
+  <!-- suggested value for generatedID output, a contextually meaningful ID 
string -->
+  <xsl:param name="templateID"/>
+  <xsl:variable name="conflictSource" 
select="preceding::refsect1/title|preceding::refsect1/info/title|
+                                             
preceding::refsect2/title|preceding::refsect2/info/title|
+                                             preceding::varlistentry/term[1]"/>
+  <xsl:variable name="conflictCount" select="count($conflictSource[. = 
$keyNode])"/>
+  <xsl:choose>
+    <!-- special case conflictCount = 0 to preserve compatibility with URLs 
generated by previous versions of this XSL stylesheet where possible -->
+    <xsl:when test="$conflictCount = 0">
+      <xsl:value-of select="$templateID"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="concat($templateID, $conflictCount)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!--
+  - a helper template to abstract over the structure of generated subheading + 
permalink HTML output
+  - It helps reduce tedious repetition and groups all actual markup output (as 
opposed to URL/ID logic) in a single location.
+ -->
+<xsl:template name="permalink">
+  <xsl:param name="nodeType"/> <!-- local name of the element node to 
generate, e.g. 'h2' for <h2></h2> -->
+  <xsl:param name="nodeContent"/> <!-- nodeset to apply further templates to 
obtain the content of the subheading/term -->
+  <xsl:param name="linkTitle"/> <!-- value for title attribute of generated 
permalink, e.g. 'this is a permalink' -->
+
+  <!-- parameters passed to generateID template, otherwise unused. -->
+  <xsl:param name="keyNode"/>
+  <xsl:param name="templateID"/>
+
+  <!--
+    - If stable URLs with fragment markers (references to the ID) turn out not 
to be important:
+    - generatedID could simply take the value of generate-id(), and various 
other helper templates may be dropped entirely.
+    - Alternatively, if xsltproc is patched to generate reproducible 
generate-id() output, the same simplifications can be
+    - applied at the cost of breaking compatibility with URLs generated from 
output of previous versions of this stylesheet.
+   -->
+  <xsl:variable name="generatedID">
+    <xsl:call-template name="generateID">
+      <xsl:with-param name="keyNode" select="$keyNode"/>
+      <xsl:with-param name="templateID" select="$templateID"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:element name="{$nodeType}">
+    <xsl:attribute name="id">
+      <xsl:value-of select="$generatedID"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="$nodeContent"/>
+    <a class="headerlink" title="{$linkTitle}" href="#{$generatedID}">¶</a>
+  </xsl:element>
+</xsl:template>
+
+<!-- simple wrapper around permalink to avoid repeating common info for each 
level of subheading covered by the permalink logic (h2, h3) -->
+<xsl:template name="headerlink">
+  <xsl:param name="nodeType"/>
+  <xsl:call-template name="permalink">
+    <xsl:with-param name="nodeType" select="$nodeType"/>
+    <xsl:with-param name="linkTitle" select="'Permalink to this headline'"/>
+    <xsl:with-param name="nodeContent" select="node()"/>
+    <xsl:with-param name="keyNode" select="."/>
+    <!--
+      - To retain compatibility with IDs generated by previous versions of the 
template, inline.charseq must be called.
+      - The purpose of that template is to generate markup (according to 
docbook documentation its purpose is to mark/format something as plain text).
+      - The only reason to call this template is to get the auto-generated 
text such as brackets ([]) before flattening it.
+     -->
+    <xsl:with-param name="templateID">
+      <xsl:call-template name="inline.charseq"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="refsect1/title|refsect1/info/title">
+  <!-- the ID is output in the block.object call for refsect1 -->
+  <xsl:call-template name="headerlink">
+    <xsl:with-param name="nodeType" select="'h2'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="refsect2/title|refsect2/info/title">
+  <xsl:call-template name="headerlink">
+    <xsl:with-param name="nodeType" select="'h3'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="varlistentry">
+  <xsl:call-template name="permalink">
+    <xsl:with-param name="nodeType" select="'dt'"/>
+    <xsl:with-param name="linkTitle" select="'Permalink to this term'"/>
+    <xsl:with-param name="nodeContent" select="term"/>
+    <xsl:with-param name="keyNode" select="term[1]"/>
+    <!--
+      - To retain compatibility with IDs generated by previous versions of the 
template, inline.charseq must be called.
+      - The purpose of that template is to generate markup (according to 
docbook documentation its purpose is to mark/format something as plain text).
+      - The only reason to call this template is to get the auto-generated 
text such as brackets ([]) before flattening it.
+     -->
+    <xsl:with-param name="templateID">
+      <xsl:call-template name="inline.charseq">
+       <xsl:with-param name="content" select="term[1]"/>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+  <dd>
+    <xsl:apply-templates select="listitem"/>
+  </dd>
+</xsl:template>
+
+
+<!-- add Index link at top of page -->
+<xsl:template name="user.header.content">
+  <style>
+    a.headerlink {
+      color: #c60f0f;
+      font-size: 0.8em;
+      padding: 0 4px 0 4px;
+      text-decoration: none;
+      visibility: hidden;
+    }
+
+    a.headerlink:hover {
+      background-color: #c60f0f;
+      color: white;
+    }
+
+    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, 
dt:hover > a.headerlink {
+      visibility: visible;
+    }
+  </style>
+
+  <a>
+    <xsl:attribute name="href">
+      <xsl:text>transactional-update.index.html</xsl:text>
+    </xsl:attribute>
+    <xsl:text>Index </xsl:text>
+  </a>
+
+  <span style="float:right">
+    <xsl:text>transactional-update </xsl:text>
+    <xsl:value-of select="$transactional-update.version"/>
+  </span>
+  <hr/>
+</xsl:template>
+
+<xsl:template match="literal">
+  <xsl:text>"</xsl:text>
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text>"</xsl:text>
+</xsl:template>
+
+<!-- Switch things to UTF-8, ISO-8859-1 is soo yesteryear -->
+<xsl:output method="html" encoding="UTF-8" indent="no"/>
+
+</xsl:stylesheet>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/man/make-man-index.py 
new/transactional-update-1.8/man/make-man-index.py
--- old/transactional-update-1.5/man/make-man-index.py  1970-01-01 
01:00:00.000000000 +0100
+++ new/transactional-update-1.8/man/make-man-index.py  2017-01-30 
10:09:34.000000000 +0100
@@ -0,0 +1,123 @@
+#  -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
+#
+#  The original file is part of systemd. This one was modified for
+#  transactional-update
+#
+#  Copyright 2012 Lennart Poettering
+#  Copyright 2013 Zbigniew Jędrzejewski-Szmek
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+#
+#  systemd 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
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public License
+#  along with systemd; If not, see <http://www.gnu.org/licenses/>.
+
+import collections
+import sys
+import re
+from xml_helper import *
+
+MDASH = ' — ' if sys.version_info.major >= 3 else ' -- '
+
+TEMPLATE = '''\
+<refentry id="transactional-update.index" conditional="HAVE_PYTHON">
+
+  <refentryinfo>
+    <title>transactional-update.index</title>
+    <productname>transactional-updater</productname>
+  </refentryinfo>
+
+  <refmeta>
+    <refentrytitle>transactional-update.index</refentrytitle>
+    <manvolnum>7</manvolnum>
+  </refmeta>
+
+  <refnamediv>
+    <refname>transactional-update.index</refname>
+    <refpurpose>List all manpages from the transactional-update 
project</refpurpose>
+  </refnamediv>
+</refentry>
+'''
+
+SUMMARY = '''\
+  <refsect1>
+    <para id='counts' />
+  </refsect1>
+'''
+
+COUNTS = '\
+This index contains {count} entries, referring to {pages} individual manual 
pages.'
+
+
+def check_id(page, t):
+    id = t.getroot().get('id')
+    if not re.search('^' + id + '[.]', page):
+        raise ValueError("id='{}' is not the same as page name 
'{}'".format(id, page))
+
+def make_index(pages):
+    index = collections.defaultdict(list)
+    for p in pages:
+        t = xml_parse(p)
+        check_id(p, t)
+        section = t.find('./refmeta/manvolnum').text
+        refname = t.find('./refnamediv/refname').text
+        purpose = ' '.join(t.find('./refnamediv/refpurpose').text.split())
+        for f in t.findall('./refnamediv/refname'):
+            infos = (f.text, section, purpose, refname)
+            index[f.text[0].upper()].append(infos)
+    return index
+
+def add_letter(template, letter, pages):
+    refsect1 = tree.SubElement(template, 'refsect1')
+    title = tree.SubElement(refsect1, 'title')
+    title.text = letter
+    para = tree.SubElement(refsect1, 'para')
+    for info in sorted(pages, key=lambda info: str.lower(info[0])):
+        refname, section, purpose, realname = info
+
+        b = tree.SubElement(para, 'citerefentry')
+        c = tree.SubElement(b, 'refentrytitle')
+        c.text = refname
+        d = tree.SubElement(b, 'manvolnum')
+        d.text = section
+
+        b.tail = MDASH + purpose # + ' (' + p + ')'
+
+        tree.SubElement(para, 'sbr')
+
+def add_summary(template, indexpages):
+    count = 0
+    pages = set()
+    for group in indexpages:
+        count += len(group)
+        for info in group:
+            refname, section, purpose, realname = info
+            pages.add((realname, section))
+
+    refsect1 = tree.fromstring(SUMMARY)
+    template.append(refsect1)
+
+    para = template.find(".//para[@id='counts']")
+    para.text = COUNTS.format(count=count, pages=len(pages))
+
+def make_page(*xml_files):
+    template = tree.fromstring(TEMPLATE)
+    index = make_index(xml_files)
+
+    for letter in sorted(index):
+        add_letter(template, letter, index[letter])
+
+    add_summary(template, index.values())
+
+    return template
+
+if __name__ == '__main__':
+    with open(sys.argv[1], 'wb') as f:
+        f.write(xml_print(make_page(*sys.argv[2:])))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/man/transactional-update.8 
new/transactional-update-1.8/man/transactional-update.8
--- old/transactional-update-1.5/man/transactional-update.8     2016-12-19 
10:14:55.000000000 +0100
+++ new/transactional-update-1.8/man/transactional-update.8     2017-01-30 
10:21:16.000000000 +0100
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: transactional-update
-.\"    Author: [see the "AUTHOR" section]
+.\"    Author: Thorsten Kukuk <[email protected]>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 12/19/2016
+.\"      Date: 01/30/2017
 .\"    Manual: transactional-update
 .\"    Source: transactional-update
 .\"  Language: English
 .\"
-.TH "TRANSACTIONAL\-UPDAT" "8" "12/19/2016" "transactional-update" 
"transactional-update"
+.TH "TRANSACTIONAL\-UPDAT" "8" "01/30/2017" "transactional-update" 
"transactional-update"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -142,5 +142,6 @@
 \fBsystemd.time\fR(7)
 .SH "AUTHOR"
 .PP
-\fBtransactional\-update\fR
-was written by Thorsten Kukuk <kukuk@suse\&.com>\&.
+\fBThorsten Kukuk\fR <\&kukuk@suse\&.com\&>
+.RS 4
+.RE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.5/man/transactional-update.8.html 
new/transactional-update-1.8/man/transactional-update.8.html
--- old/transactional-update-1.5/man/transactional-update.8.html        
1970-01-01 01:00:00.000000000 +0100
+++ new/transactional-update-1.8/man/transactional-update.8.html        
2017-01-30 10:21:17.000000000 +0100
@@ -0,0 +1,92 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>transactional-update</title><meta name="generator" 
content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+    a.headerlink {
+      color: #c60f0f;
+      font-size: 0.8em;
+      padding: 0 4px 0 4px;
+      text-decoration: none;
+      visibility: hidden;
+    }
+
+    a.headerlink:hover {
+      background-color: #c60f0f;
+      color: white;
+    }
+
+    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, 
dt:hover > a.headerlink {
+      visibility: visible;
+    }
+  </style><a href="transactional-update.index.html">Index </a><span 
style="float:right">transactional-update 1.7</span><hr><div class="refentry"><a 
name="transactional-update.8"></a><div class="titlepage"></div><div 
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, 
transactional-update.service, transactional-update.timer — Apply updates to the 
system in an atomic way via transactional
+    updates.</p></div><div class="refsynopsisdiv"><a 
name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code 
class="command">/usr/sbin/transactional-update</code>  [--help] 
[--version]</p></div><div class="cmdsynopsis"><p><code 
class="command">/usr/sbin/transactional-update</code>  [cleanup] [ up  |   dup  
|   patch  |   ptf  |   bootloader  |   initrd  |  [reboot]]</p></div><p><code 
class="filename">transactional-update.service</code></p><p><code 
class="filename">transactional-update.timer</code></p></div><div 
class="refsect1"><a name="description"></a><h2 id="DESCRIPTION">DESCRIPTION<a 
class="headerlink" title="Permalink to this headline" 
href="#DESCRIPTION">¶</a></h2><p><span 
class="command"><strong>transactional-update</strong></span> updates the system
+in a transactional way, which means: it is atomic, so either the patches are
+fully applied or nothing is changed. The update does not influence your
+running system and it can be rolled back. To activate the changes, the system
+needs to be rebooted.
+</p><p>
+  This is archived by creating at first a snapshot of the system. Afterwards,
+  this snapshot is updated with zypper. Only if there were updates and they
+  could be applied without error, the snapshot will be the default with the
+  next reboot.
+</p><p>Changes made to the running root filesystem after
+<span class="command"><strong>transactional-update</strong></span> was started 
are lost after the next
+reboot. For this reason, after an successfull update, the system should be
+rebooted as fast as possible. </p><p>For easier maintenance of big clusters,
+<span class="command"><strong>transactional-update</strong></span> is regular 
run by
+<a 
href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html";><span
 class="citerefentry"><span 
class="refentrytitle">systemd.timer</span>(5)</span></a>.
+The time, at which the command is run, can be modified by a configuration file
+<code 
class="filename">/etc/systemd/system/transactional-update.timer.d/local.conf</code>.
 See
+<a 
href="https://www.freedesktop.org/software/systemd/man/systemd.unit.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.unit</span>(5)</span></a>
+for more informations.
+</p></div><div class="refsect1"><a name="options"></a><h2 
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline" 
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help and exit</p></dd><dt 
id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd><dt id="cleanup"><span class="term"><code 
class="option">cleanup</code></span><a class="headerlink" title="Permalink to 
this term" href="#cleanup">¶</a></dt><dd><p>If the current root filesystem is 
identical to the active root
+      filesystem (means after a reboot, before
+      <span class="command"><strong>transactional-update</strong></span> 
creates a new snapshot with
+      updates), all old snapshots without a cleanup algorithm get a cleanup
+      algorithm set. This is to make sure, that old snapshots will be deleted
+      by snapper. See the section about cleanup algorithms in
+      <a href="http://snapper.io/manpages/snapper.html";><span 
class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>.
+      </p></dd><dt id="up"><span class="term"><code 
class="option">up</code></span><a class="headerlink" title="Permalink to this 
term" href="#up">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper up</strong></span> is used to 
update the snapshot.
+       Afterwards, the snapshot is activated and will be used as the new root
+       filesystem during next boot.
+      </p></dd><dt id="dup"><span class="term"><code 
class="option">dup</code></span><a class="headerlink" title="Permalink to this 
term" href="#dup">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper dup</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="patch"><span class="term"><code 
class="option">patch</code></span><a class="headerlink" title="Permalink to 
this term" href="#patch">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper patch</strong></span> is used to 
update the snapshot.
+       Afterwards, the snapshot is activated and will be used as the new root
+       filesystem during next boot.
+      </p></dd><dt id="ptf install &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">ptf install</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#ptf%20install%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd><p>
+       A PTF consist of several RPMs can be installed in the system.
+      </p></dd><dt id="ptf remove &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">ptf remove</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#ptf%20remove%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd><p>
+       A PTF consist of several RPMs can be removed from the system.
+      </p></dd><dt id="bootloader"><span class="term"><code 
class="option">bootloader</code></span><a class="headerlink" title="Permalink 
to this term" href="#bootloader">¶</a></dt><dd><p>
+       A new snapshot is created, the bootloader configuration updated and
+       the boorloader newly written.
+      </p></dd><dt id="initrd"><span class="term"><code 
class="option">initrd</code></span><a class="headerlink" title="Permalink to 
this term" href="#initrd">¶</a></dt><dd><p>
+       A new initrd is created in a new snapshot.
+      </p></dd><dt id="reboot"><span class="term"><code 
class="option">reboot</code></span><a class="headerlink" title="Permalink to 
this term" href="#reboot">¶</a></dt><dd><p>
+       If a new snapshot with updates was created, the system should be
+       rebooted. This option will trigger the necessary reboot. If the
+       <a href="rebootmgrd.8.html"><span class="citerefentry"><span 
class="refentrytitle">rebootmgrd</span>(8)</span></a>
+       is running, <span 
class="command"><strong>transactional-update</strong></span> will tell the
+       daemon to reboot the system according to the configured policies. Else
+       <span class="command"><strong>systemctl reboot</strong></span> is 
called.
+      </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.
+</p><p>
+  Since all changes to the root filesystem will go lost after creating the
+  snapshot for the update, the system should be rebooted as fast as possible
+  after the update finished.
+</p><p>
+  If PTFs get installed or removed, and
+  <span class="command"><strong>transactional-update</strong></span> is called 
again before the next
+  reboot and updates packages, the changes to the PTFs are lost and need to be
+  redone with the next reboot. After installing or removing PTFs, the system
+  should be immeaditly rebooted.
+</p></div><div class="refsect1"><a name="see_also"></a><h2 id="SEE ALSO">SEE 
ALSO<a class="headerlink" title="Permalink to this headline" 
href="#SEE%20ALSO">¶</a></h2><p><a 
href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html";><span
 class="citerefentry"><span 
class="refentrytitle">systemd.timer</span>(5)</span></a>,
+<a 
href="https://www.freedesktop.org/software/systemd/man/systemd.time.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.time</span>(7)</span></a></p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.5/man/transactional-update.8.xml 
new/transactional-update-1.8/man/transactional-update.8.xml
--- old/transactional-update-1.5/man/transactional-update.8.xml 2016-12-16 
15:35:01.000000000 +0100
+++ new/transactional-update-1.8/man/transactional-update.8.xml 2017-01-30 
09:45:22.000000000 +0100
@@ -3,7 +3,7 @@
                    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd";>
 
 <!--  \-*\- nroff \-*\- -->
-<!--  Copyright 2016 Thorsten Kukuk &lt;[email protected]&gt; -->
+<!--  Copyright 2016, 2017 Thorsten Kukuk &lt;[email protected]&gt; -->
 
 <!--  This file is part of transactional\-update. -->
 
@@ -22,7 +22,20 @@
 <!--  write to the Free Software Foundation, Inc., 51 Franklin Street \- Suite 
500, -->
 <!--  Boston, MA 02111\-1307, USA. -->
 
-<refentry id='transactional-update8'>
+<refentry id='transactional-update.8'>
+  <refentryinfo>
+    <title>transactional-update</title>
+    <productname>transactional-update</productname>
+
+    <authorgroup>
+      <author>
+        <contrib></contrib>
+        <firstname>Thorsten</firstname>
+        <surname>Kukuk</surname>
+        <email>[email protected]</email>
+      </author>
+    </authorgroup>
+  </refentryinfo>
 
   <refmeta>
     <refentrytitle>transactional-update</refentrytitle>
@@ -81,10 +94,10 @@
 rebooted as fast as possible. </para>
 <para>For easier maintenance of big clusters,
 <command>transactional-update</command> is regular run by
-<citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+<citerefentry 
project='systemd'><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
 The time, at which the command is run, can be modified by a configuration file
 
<filename>/etc/systemd/system/transactional-update.timer.d/local.conf</filename>.
 See
-<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+<citerefentry 
project='systemd'><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
 for more informations.
 </para>
 </refsect1>
@@ -112,7 +125,7 @@
       updates), all old snapshots without a cleanup algorithm get a cleanup
       algorithm set. This is to make sure, that old snapshots will be deleted
       by snapper. See the section about cleanup algorithms in
-      
<citerefentry><refentrytitle>snapper</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
+      <citerefentry 
project='snapper'><refentrytitle>snapper</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
       </para>
     </listitem>
   </varlistentry>
@@ -219,15 +232,7 @@
 </refsect1>
 
 <refsect1 id='see_also'><title>SEE ALSO</title>
-<para><citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
-<citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry></para>
+<para><citerefentry 
project='systemd'><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+<citerefentry 
project='systemd'><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry></para>
 </refsect1>
-
-  <refsect1 id='author'>
-    <title>AUTHOR</title>
-    <para>
-      <command>transactional-update</command> was written by
-      Thorsten Kukuk &lt;[email protected]&gt;.
-    </para>
-  </refsect1>
 </refentry>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.5/man/transactional-update.index.html 
new/transactional-update-1.8/man/transactional-update.index.html
--- old/transactional-update-1.5/man/transactional-update.index.html    
1970-01-01 01:00:00.000000000 +0100
+++ new/transactional-update-1.8/man/transactional-update.index.html    
2017-01-30 10:21:17.000000000 +0100
@@ -0,0 +1,18 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>transactional-update.index</title><meta name="generator" 
content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+    a.headerlink {
+      color: #c60f0f;
+      font-size: 0.8em;
+      padding: 0 4px 0 4px;
+      text-decoration: none;
+      visibility: hidden;
+    }
+
+    a.headerlink:hover {
+      background-color: #c60f0f;
+      color: white;
+    }
+
+    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, 
dt:hover > a.headerlink {
+      visibility: visible;
+    }
+  </style><a href="transactional-update.index.html">Index </a><span 
style="float:right">transactional-update 1.7</span><hr><div class="refentry"><a 
name="transactional-update.index"></a><div class="titlepage"></div><div 
class="refnamediv"><h2>Name</h2><p>transactional-update.index — List all 
manpages from the transactional-update project</p></div><div 
class="refsect1"><a name="id-1.4"></a><h2 id="T">T<a class="headerlink" 
title="Permalink to this headline" href="#T">¶</a></h2><p><a 
href="transactional-update.8.html"><span class="citerefentry"><span 
class="refentrytitle">transactional-update</span>(8)</span></a> -- Apply 
updates to the system in an atomic way via transactional updates.<br><a 
href="transactional-update.service.8.html"><span class="citerefentry"><span 
class="refentrytitle">transactional-update.service</span>(8)</span></a> -- 
Apply updates to the system in an atomic way via transactional updates.<br><a 
href="transactional-update.timer.8.html"><span class="citerefentry"><span 
class="refentrytitle">transactional-update.timer</span>(8)</span></a> -- Apply 
updates to the system in an atomic way via transactional 
updates.<br></p></div><div class="refsect1"><a name="id-1.5"></a><p><a 
name="counts"></a>This index contains 3 entries, referring to 1 individual 
manual pages.</p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.5/man/transactional-update.index.xml 
new/transactional-update-1.8/man/transactional-update.index.xml
--- old/transactional-update-1.5/man/transactional-update.index.xml     
1970-01-01 01:00:00.000000000 +0100
+++ new/transactional-update-1.8/man/transactional-update.index.xml     
2017-01-30 10:21:17.000000000 +0100
@@ -0,0 +1,19 @@
+<refentry id="transactional-update.index" conditional="HAVE_PYTHON">
+
+  <refentryinfo>
+    <title>transactional-update.index</title>
+    <productname>transactional-updater</productname>
+  </refentryinfo>
+
+  <refmeta>
+    <refentrytitle>transactional-update.index</refentrytitle>
+    <manvolnum>7</manvolnum>
+  </refmeta>
+
+  <refnamediv>
+    <refname>transactional-update.index</refname>
+    <refpurpose>List all manpages from the transactional-update 
project</refpurpose>
+  </refnamediv>
+<refsect1><title>T</title><para><citerefentry><refentrytitle>transactional-update</refentrytitle><manvolnum>8</manvolnum></citerefentry>
 -- Apply updates to the system in an atomic way via transactional 
updates.<sbr/><citerefentry><refentrytitle>transactional-update.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
 -- Apply updates to the system in an atomic way via transactional 
updates.<sbr/><citerefentry><refentrytitle>transactional-update.timer</refentrytitle><manvolnum>8</manvolnum></citerefentry>
 -- Apply updates to the system in an atomic way via transactional 
updates.<sbr/></para></refsect1><refsect1>
+    <para id="counts">This index contains 3 entries, referring to 1 individual 
manual pages.</para>
+  </refsect1></refentry>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.5/man/transactional-update.service.8.html 
new/transactional-update-1.8/man/transactional-update.service.8.html
--- old/transactional-update-1.5/man/transactional-update.service.8.html        
1970-01-01 01:00:00.000000000 +0100
+++ new/transactional-update-1.8/man/transactional-update.service.8.html        
2017-01-30 10:21:17.000000000 +0100
@@ -0,0 +1,92 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>transactional-update</title><meta name="generator" 
content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+    a.headerlink {
+      color: #c60f0f;
+      font-size: 0.8em;
+      padding: 0 4px 0 4px;
+      text-decoration: none;
+      visibility: hidden;
+    }
+
+    a.headerlink:hover {
+      background-color: #c60f0f;
+      color: white;
+    }
+
+    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, 
dt:hover > a.headerlink {
+      visibility: visible;
+    }
+  </style><a href="transactional-update.index.html">Index </a><span 
style="float:right">transactional-update 1.7</span><hr><div class="refentry"><a 
name="transactional-update.8"></a><div class="titlepage"></div><div 
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, 
transactional-update.service, transactional-update.timer — Apply updates to the 
system in an atomic way via transactional
+    updates.</p></div><div class="refsynopsisdiv"><a 
name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code 
class="command">/usr/sbin/transactional-update</code>  [--help] 
[--version]</p></div><div class="cmdsynopsis"><p><code 
class="command">/usr/sbin/transactional-update</code>  [cleanup] [ up  |   dup  
|   patch  |   ptf  |   bootloader  |   initrd  |  [reboot]]</p></div><p><code 
class="filename">transactional-update.service</code></p><p><code 
class="filename">transactional-update.timer</code></p></div><div 
class="refsect1"><a name="description"></a><h2 id="DESCRIPTION">DESCRIPTION<a 
class="headerlink" title="Permalink to this headline" 
href="#DESCRIPTION">¶</a></h2><p><span 
class="command"><strong>transactional-update</strong></span> updates the system
+in a transactional way, which means: it is atomic, so either the patches are
+fully applied or nothing is changed. The update does not influence your
+running system and it can be rolled back. To activate the changes, the system
+needs to be rebooted.
+</p><p>
+  This is archived by creating at first a snapshot of the system. Afterwards,
+  this snapshot is updated with zypper. Only if there were updates and they
+  could be applied without error, the snapshot will be the default with the
+  next reboot.
+</p><p>Changes made to the running root filesystem after
+<span class="command"><strong>transactional-update</strong></span> was started 
are lost after the next
+reboot. For this reason, after an successfull update, the system should be
+rebooted as fast as possible. </p><p>For easier maintenance of big clusters,
+<span class="command"><strong>transactional-update</strong></span> is regular 
run by
+<a 
href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html";><span
 class="citerefentry"><span 
class="refentrytitle">systemd.timer</span>(5)</span></a>.
+The time, at which the command is run, can be modified by a configuration file
+<code 
class="filename">/etc/systemd/system/transactional-update.timer.d/local.conf</code>.
 See
+<a 
href="https://www.freedesktop.org/software/systemd/man/systemd.unit.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.unit</span>(5)</span></a>
+for more informations.
+</p></div><div class="refsect1"><a name="options"></a><h2 
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline" 
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help and exit</p></dd><dt 
id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd><dt id="cleanup"><span class="term"><code 
class="option">cleanup</code></span><a class="headerlink" title="Permalink to 
this term" href="#cleanup">¶</a></dt><dd><p>If the current root filesystem is 
identical to the active root
+      filesystem (means after a reboot, before
+      <span class="command"><strong>transactional-update</strong></span> 
creates a new snapshot with
+      updates), all old snapshots without a cleanup algorithm get a cleanup
+      algorithm set. This is to make sure, that old snapshots will be deleted
+      by snapper. See the section about cleanup algorithms in
+      <a href="http://snapper.io/manpages/snapper.html";><span 
class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>.
+      </p></dd><dt id="up"><span class="term"><code 
class="option">up</code></span><a class="headerlink" title="Permalink to this 
term" href="#up">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper up</strong></span> is used to 
update the snapshot.
+       Afterwards, the snapshot is activated and will be used as the new root
+       filesystem during next boot.
+      </p></dd><dt id="dup"><span class="term"><code 
class="option">dup</code></span><a class="headerlink" title="Permalink to this 
term" href="#dup">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper dup</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="patch"><span class="term"><code 
class="option">patch</code></span><a class="headerlink" title="Permalink to 
this term" href="#patch">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper patch</strong></span> is used to 
update the snapshot.
+       Afterwards, the snapshot is activated and will be used as the new root
+       filesystem during next boot.
+      </p></dd><dt id="ptf install &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">ptf install</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#ptf%20install%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd><p>
+       A PTF consist of several RPMs can be installed in the system.
+      </p></dd><dt id="ptf remove &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">ptf remove</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#ptf%20remove%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd><p>
+       A PTF consist of several RPMs can be removed from the system.
+      </p></dd><dt id="bootloader"><span class="term"><code 
class="option">bootloader</code></span><a class="headerlink" title="Permalink 
to this term" href="#bootloader">¶</a></dt><dd><p>
+       A new snapshot is created, the bootloader configuration updated and
+       the boorloader newly written.
+      </p></dd><dt id="initrd"><span class="term"><code 
class="option">initrd</code></span><a class="headerlink" title="Permalink to 
this term" href="#initrd">¶</a></dt><dd><p>
+       A new initrd is created in a new snapshot.
+      </p></dd><dt id="reboot"><span class="term"><code 
class="option">reboot</code></span><a class="headerlink" title="Permalink to 
this term" href="#reboot">¶</a></dt><dd><p>
+       If a new snapshot with updates was created, the system should be
+       rebooted. This option will trigger the necessary reboot. If the
+       <a href="rebootmgrd.8.html"><span class="citerefentry"><span 
class="refentrytitle">rebootmgrd</span>(8)</span></a>
+       is running, <span 
class="command"><strong>transactional-update</strong></span> will tell the
+       daemon to reboot the system according to the configured policies. Else
+       <span class="command"><strong>systemctl reboot</strong></span> is 
called.
+      </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.
+</p><p>
+  Since all changes to the root filesystem will go lost after creating the
+  snapshot for the update, the system should be rebooted as fast as possible
+  after the update finished.
+</p><p>
+  If PTFs get installed or removed, and
+  <span class="command"><strong>transactional-update</strong></span> is called 
again before the next
+  reboot and updates packages, the changes to the PTFs are lost and need to be
+  redone with the next reboot. After installing or removing PTFs, the system
+  should be immeaditly rebooted.
+</p></div><div class="refsect1"><a name="see_also"></a><h2 id="SEE ALSO">SEE 
ALSO<a class="headerlink" title="Permalink to this headline" 
href="#SEE%20ALSO">¶</a></h2><p><a 
href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html";><span
 class="citerefentry"><span 
class="refentrytitle">systemd.timer</span>(5)</span></a>,
+<a 
href="https://www.freedesktop.org/software/systemd/man/systemd.time.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.time</span>(7)</span></a></p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.5/man/transactional-update.timer.8.html 
new/transactional-update-1.8/man/transactional-update.timer.8.html
--- old/transactional-update-1.5/man/transactional-update.timer.8.html  
1970-01-01 01:00:00.000000000 +0100
+++ new/transactional-update-1.8/man/transactional-update.timer.8.html  
2017-01-30 10:21:17.000000000 +0100
@@ -0,0 +1,92 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>transactional-update</title><meta name="generator" 
content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+    a.headerlink {
+      color: #c60f0f;
+      font-size: 0.8em;
+      padding: 0 4px 0 4px;
+      text-decoration: none;
+      visibility: hidden;
+    }
+
+    a.headerlink:hover {
+      background-color: #c60f0f;
+      color: white;
+    }
+
+    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, 
dt:hover > a.headerlink {
+      visibility: visible;
+    }
+  </style><a href="transactional-update.index.html">Index </a><span 
style="float:right">transactional-update 1.7</span><hr><div class="refentry"><a 
name="transactional-update.8"></a><div class="titlepage"></div><div 
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update, 
transactional-update.service, transactional-update.timer — Apply updates to the 
system in an atomic way via transactional
+    updates.</p></div><div class="refsynopsisdiv"><a 
name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code 
class="command">/usr/sbin/transactional-update</code>  [--help] 
[--version]</p></div><div class="cmdsynopsis"><p><code 
class="command">/usr/sbin/transactional-update</code>  [cleanup] [ up  |   dup  
|   patch  |   ptf  |   bootloader  |   initrd  |  [reboot]]</p></div><p><code 
class="filename">transactional-update.service</code></p><p><code 
class="filename">transactional-update.timer</code></p></div><div 
class="refsect1"><a name="description"></a><h2 id="DESCRIPTION">DESCRIPTION<a 
class="headerlink" title="Permalink to this headline" 
href="#DESCRIPTION">¶</a></h2><p><span 
class="command"><strong>transactional-update</strong></span> updates the system
+in a transactional way, which means: it is atomic, so either the patches are
+fully applied or nothing is changed. The update does not influence your
+running system and it can be rolled back. To activate the changes, the system
+needs to be rebooted.
+</p><p>
+  This is archived by creating at first a snapshot of the system. Afterwards,
+  this snapshot is updated with zypper. Only if there were updates and they
+  could be applied without error, the snapshot will be the default with the
+  next reboot.
+</p><p>Changes made to the running root filesystem after
+<span class="command"><strong>transactional-update</strong></span> was started 
are lost after the next
+reboot. For this reason, after an successfull update, the system should be
+rebooted as fast as possible. </p><p>For easier maintenance of big clusters,
+<span class="command"><strong>transactional-update</strong></span> is regular 
run by
+<a 
href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html";><span
 class="citerefentry"><span 
class="refentrytitle">systemd.timer</span>(5)</span></a>.
+The time, at which the command is run, can be modified by a configuration file
+<code 
class="filename">/etc/systemd/system/transactional-update.timer.d/local.conf</code>.
 See
+<a 
href="https://www.freedesktop.org/software/systemd/man/systemd.unit.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.unit</span>(5)</span></a>
+for more informations.
+</p></div><div class="refsect1"><a name="options"></a><h2 
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline" 
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl 
class="variablelist"><dt id="--help"><span class="term"><code 
class="option">--help</code></span><a class="headerlink" title="Permalink to 
this term" href="#--help">¶</a></dt><dd><p>Display help and exit</p></dd><dt 
id="--version"><span class="term"><code 
class="option">--version</code></span><a class="headerlink" title="Permalink to 
this term" href="#--version">¶</a></dt><dd><p>Output version information and 
exit</p></dd><dt id="cleanup"><span class="term"><code 
class="option">cleanup</code></span><a class="headerlink" title="Permalink to 
this term" href="#cleanup">¶</a></dt><dd><p>If the current root filesystem is 
identical to the active root
+      filesystem (means after a reboot, before
+      <span class="command"><strong>transactional-update</strong></span> 
creates a new snapshot with
+      updates), all old snapshots without a cleanup algorithm get a cleanup
+      algorithm set. This is to make sure, that old snapshots will be deleted
+      by snapper. See the section about cleanup algorithms in
+      <a href="http://snapper.io/manpages/snapper.html";><span 
class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>.
+      </p></dd><dt id="up"><span class="term"><code 
class="option">up</code></span><a class="headerlink" title="Permalink to this 
term" href="#up">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper up</strong></span> is used to 
update the snapshot.
+       Afterwards, the snapshot is activated and will be used as the new root
+       filesystem during next boot.
+      </p></dd><dt id="dup"><span class="term"><code 
class="option">dup</code></span><a class="headerlink" title="Permalink to this 
term" href="#dup">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper dup</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="patch"><span class="term"><code 
class="option">patch</code></span><a class="headerlink" title="Permalink to 
this term" href="#patch">¶</a></dt><dd><p>
+       If new updates are available, a new snapshot is created and
+       <span class="command"><strong>zypper patch</strong></span> is used to 
update the snapshot.
+       Afterwards, the snapshot is activated and will be used as the new root
+       filesystem during next boot.
+      </p></dd><dt id="ptf install &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">ptf install</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#ptf%20install%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd><p>
+       A PTF consist of several RPMs can be installed in the system.
+      </p></dd><dt id="ptf remove &lt;RPM&gt; ... &lt;RPM&gt;"><span 
class="term"><code class="option">ptf remove</code> <em 
class="replaceable"><code>&lt;RPM&gt; ... &lt;RPM&gt;</code></em></span><a 
class="headerlink" title="Permalink to this term" 
href="#ptf%20remove%20&lt;RPM&gt;%20...%20&lt;RPM&gt;">¶</a></dt><dd><p>
+       A PTF consist of several RPMs can be removed from the system.
+      </p></dd><dt id="bootloader"><span class="term"><code 
class="option">bootloader</code></span><a class="headerlink" title="Permalink 
to this term" href="#bootloader">¶</a></dt><dd><p>
+       A new snapshot is created, the bootloader configuration updated and
+       the boorloader newly written.
+      </p></dd><dt id="initrd"><span class="term"><code 
class="option">initrd</code></span><a class="headerlink" title="Permalink to 
this term" href="#initrd">¶</a></dt><dd><p>
+       A new initrd is created in a new snapshot.
+      </p></dd><dt id="reboot"><span class="term"><code 
class="option">reboot</code></span><a class="headerlink" title="Permalink to 
this term" href="#reboot">¶</a></dt><dd><p>
+       If a new snapshot with updates was created, the system should be
+       rebooted. This option will trigger the necessary reboot. If the
+       <a href="rebootmgrd.8.html"><span class="citerefentry"><span 
class="refentrytitle">rebootmgrd</span>(8)</span></a>
+       is running, <span 
class="command"><strong>transactional-update</strong></span> will tell the
+       daemon to reboot the system according to the configured policies. Else
+       <span class="command"><strong>systemctl reboot</strong></span> is 
called.
+      </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.
+</p><p>
+  Since all changes to the root filesystem will go lost after creating the
+  snapshot for the update, the system should be rebooted as fast as possible
+  after the update finished.
+</p><p>
+  If PTFs get installed or removed, and
+  <span class="command"><strong>transactional-update</strong></span> is called 
again before the next
+  reboot and updates packages, the changes to the PTFs are lost and need to be
+  redone with the next reboot. After installing or removing PTFs, the system
+  should be immeaditly rebooted.
+</p></div><div class="refsect1"><a name="see_also"></a><h2 id="SEE ALSO">SEE 
ALSO<a class="headerlink" title="Permalink to this headline" 
href="#SEE%20ALSO">¶</a></h2><p><a 
href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html";><span
 class="citerefentry"><span 
class="refentrytitle">systemd.timer</span>(5)</span></a>,
+<a 
href="https://www.freedesktop.org/software/systemd/man/systemd.time.html";><span 
class="citerefentry"><span 
class="refentrytitle">systemd.time</span>(7)</span></a></p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/man/xml_helper.py 
new/transactional-update-1.8/man/xml_helper.py
--- old/transactional-update-1.5/man/xml_helper.py      1970-01-01 
01:00:00.000000000 +0100
+++ new/transactional-update-1.8/man/xml_helper.py      2016-10-26 
09:44:38.000000000 +0200
@@ -0,0 +1,34 @@
+#  -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
+#
+#  This file is part of systemd.
+#
+#  Copyright 2012-2013 Zbigniew Jędrzejewski-Szmek
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+#
+#  systemd 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
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public License
+#  along with systemd; If not, see <http://www.gnu.org/licenses/>.
+
+from lxml import etree as tree
+
+class CustomResolver(tree.Resolver):
+    def resolve(self, url, id, context):
+        if 'custom-entities.ent' in url:
+            return self.resolve_filename('man/custom-entities.ent', context)
+
+_parser = tree.XMLParser()
+_parser.resolvers.add(CustomResolver())
+def xml_parse(page):
+    doc = tree.parse(page, _parser)
+    doc.xinclude()
+    return doc
+def xml_print(xml):
+    return tree.tostring(xml, pretty_print=True, encoding='utf-8')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/sbin/Makefile.am 
new/transactional-update-1.8/sbin/Makefile.am
--- old/transactional-update-1.5/sbin/Makefile.am       2016-11-14 
13:07:39.000000000 +0100
+++ new/transactional-update-1.8/sbin/Makefile.am       2017-01-30 
09:19:57.000000000 +0100
@@ -1,7 +1,7 @@
 #
-# Copyright (c) 2016 Thorsten Kukuk <[email protected]>
+# Copyright (c) 2016, 2017 Thorsten Kukuk <[email protected]>
 #
 
-sbin_SCRIPTS = transactional-update
+sbin_SCRIPTS = transactional-update tu-rebuild-kdump-initrd
 
-EXTRA_DIST = transactional-update.in
+EXTRA_DIST = transactional-update.in tu-rebuild-kdump-initrd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/sbin/Makefile.in 
new/transactional-update-1.8/sbin/Makefile.in
--- old/transactional-update-1.5/sbin/Makefile.in       2017-01-19 
10:23:43.000000000 +0100
+++ new/transactional-update-1.8/sbin/Makefile.in       2017-02-01 
14:49:19.000000000 +0100
@@ -15,7 +15,7 @@
 @SET_MAKE@
 
 #
-# Copyright (c) 2016 Thorsten Kukuk <[email protected]>
+# Copyright (c) 2016, 2017 Thorsten Kukuk <[email protected]>
 #
 
 VPATH = @srcdir@
@@ -161,6 +161,7 @@
 ISSUEDIR = @ISSUEDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LN_S = @LN_S@
 LOGROTATEDDIR = @LOGROTATEDDIR@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
@@ -223,8 +224,8 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-sbin_SCRIPTS = transactional-update
-EXTRA_DIST = transactional-update.in
+sbin_SCRIPTS = transactional-update tu-rebuild-kdump-initrd
+EXTRA_DIST = transactional-update.in tu-rebuild-kdump-initrd
 all: all-am
 
 .SUFFIXES:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.5/sbin/transactional-update.in 
new/transactional-update-1.8/sbin/transactional-update.in
--- old/transactional-update-1.5/sbin/transactional-update.in   2017-01-19 
13:12:06.000000000 +0100
+++ new/transactional-update-1.8/sbin/transactional-update.in   2017-01-30 
15:57:40.000000000 +0100
@@ -3,7 +3,7 @@
 # update_snapshot - update a snapshot of the current system
 #
 # Author: Thorsten Kukuk <[email protected]>
-# Copyright (C) 2016 SUSE Linux GmbH
+# Copyright (C) 2016, 2017 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
@@ -28,6 +28,7 @@
 REWRITE_BOOTLOADER=0
 REWRITE_GRUB_CFG=0
 REWRITE_INITRD=0
+REBUILD_KDUMP_INITRD=0
 DO_CLEANUP=0
 REBOOT_AFTERWARDS=0
 LOGFILE="/var/log/transactional-update.log"
@@ -35,10 +36,11 @@
 PACKAGE_UPDATES=0
 SNAPSHOT_ID=""
 SECOND_SNAPSHOT_ID=""
+KDUMP_SYSCONFIG="/etc/sysconfig/kdump"
 
 usage() {
     echo "Usage: transactional-update --help|--version"
-    echo "       transactional-update 
[cleanup][up|dup|patch|bootloader|initrd][reboot]"
+    echo "       transactional-update 
[cleanup][up|dup|patch|bootloader|initrd][kdump][reboot]"
     echo "       transactional-update [cleanup] [reboot] ptf install|remove 
PKG1..PKGN"
     exit $1
 }
@@ -90,7 +92,7 @@
     echo "UNUSED_SNAPSHOTS=\"${UNUSED_SNAPSHOTS}\"" >>  ${STATE_FILE}
 
     if [ $1 -ne 0 ]; then
-       # if /var/lib/misc is not a seperate partition/subvolume, 
+       # if /var/lib/misc is not a seperate partition/subvolume,
        # copy it additional into the new snapshot. This will else
         # an outdated version from before taking the snapshot
        grep -q var.lib.misc /proc/mounts
@@ -100,6 +102,18 @@
     fi
 }
 
+rebuild_kdump_initrd() {
+    local MOUNT_DIR=$1
+
+    systemctl is-enabled kdump.service
+    if [ $? = 0 ]; then
+       if [ ${KDUMP_SYSCONFIG} -nt ${MOUNT_DIR}/${KDUMP_SYSCONFIG} ]; then
+           cp -a ${KDUMP_SYSCONFIG} ${MOUNT_DIR}/${KDUMP_SYSCONFIG}
+       fi
+       chroot ${MOUNT_DIR} /usr/sbin/tu-rebuild-kdump-initrd
+    fi
+}
+
 quit() {
     if [ -n "${SNAPSHOT_ID}" ] ; then
        log_error "Removing snapshot #${SNAPSHOT_ID}..."
@@ -177,7 +191,7 @@
                fi
            done
             # Run installing PTFs interactive
-            ZYPPER_NONINTERACTIVE=""
+            #ZYPPER_NONINTERACTIVE=""
            ;;
         bootloader)
            REWRITE_BOOTLOADER=1
@@ -190,6 +204,11 @@
            ;;
        initrd)
            REWRITE_INITRD=1
+           REBUILD_KDUMP_INITRD=1
+           shift
+           ;;
+       kdump)
+           REBUILD_KDUMP_INITRD=1
            shift
            ;;
        reboot)
@@ -280,7 +299,9 @@
     fi
 fi
 
-if [ -n "${ZYPPER_ARG}" -o ${REWRITE_BOOTLOADER} -eq 1 -o ${REWRITE_GRUB_CFG} 
-eq 1 -o ${REWRITE_INITRD} -eq 1 ]; then
+if [ -n "${ZYPPER_ARG}" -o ${REWRITE_BOOTLOADER} -eq 1 \
+    -o ${REWRITE_GRUB_CFG} -eq 1 -o ${REWRITE_INITRD} -eq 1 \
+    -o ${REBUILD_KDUMP_INITRD} -eq 1 ]; then
 
     if [ -n "${ZYPPER_ARG}" ]; then
        #check if there are updates at all
@@ -384,7 +405,9 @@
        env DISABLE_RESTART_ON_UPDATE=yes zypper ${ZYPPER_NONINTERACTIVE} -R 
${MOUNT_DIR} ${ZYPPER_ARG} ${ZYPPER_ARG_PKGS} |& tee -a ${LOGFILE}
        if [ $? -ne 0 ]; then
            log_error "ERROR: zypper ${ZYPPER_ARG} on $directory failed!"
-           EXITCODE=1;
+           EXITCODE=1
+       else
+           REBUILD_KDUMP_INITRD=1
        fi
     fi
 
@@ -393,9 +416,17 @@
        chroot ${MOUNT_DIR} /sbin/mkinitrd
        if [ $? -ne 0 ]; then
            log_error "ERROR: mkinitrd failed!"
-           EXITCODE=1;
+           EXITCODE=1
+       else
+           REBUILD_KDUMP_INITRD=1
        fi
     fi
+
+    if [ ${REBUILD_KDUMP_INITRD} -eq 1 ]; then
+       log_info "Try to rebuild kdump initrd"
+       rebuild_kdump_initrd ${MOUNT_DIR}
+    fi
+
     if [ ${REWRITE_GRUB_CFG} -eq 1 ]; then
        log_info "Create a new grub2 config"
        chroot ${MOUNT_DIR} /usr/sbin/grub2-mkconfig > 
${MOUNT_DIR}/boot/grub2/grub.cfg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-1.5/sbin/tu-rebuild-kdump-initrd 
new/transactional-update-1.8/sbin/tu-rebuild-kdump-initrd
--- old/transactional-update-1.5/sbin/tu-rebuild-kdump-initrd   1970-01-01 
01:00:00.000000000 +0100
+++ new/transactional-update-1.8/sbin/tu-rebuild-kdump-initrd   2017-01-30 
09:19:57.000000000 +0100
@@ -0,0 +1,54 @@
+#! /bin/bash
+#
+#  Copyright Thorsten Kukuk <[email protected]>
+#  Copyright Petr Tesarik <[email protected]>
+#
+# Based on load.sh --update from kdump package
+
+KDUMPTOOL=/usr/sbin/kdumptool
+
+EFI_SYSTAB=/sys/firmware/efi/systab
+FADUMP_ENABLED=/sys/kernel/fadump_enabled
+FADUMP_REGISTERED=/sys/kernel/fadump_registered
+
+#
+# Find the desired kernel and initrd
+function find_kernel()
+{
+    local output=$($KDUMPTOOL find_kernel)
+    test $? -eq 0 || return 1
+
+    kdump_kernel=$(echo "$output" | grep ^Kernel | cut -f 2)
+    kdump_initrd=$(echo "$output" | grep ^Initrd | cut -f 2)
+
+    return 0
+}
+
+#
+# Rebuild the kdump initramfs if necessary
+function rebuild_kdumprd()
+{
+    local output=$(mkdumprd -K "$kdump_kernel" -I "$kdump_initrd" 2>&1)
+    if [ $? -ne 0 ] ; then
+       echo "$output"
+       return 1
+    fi
+    if [ ! -e "$kdump_kernel" ]; then
+        echo "$kdump_kernel does not exist!"
+       return 1
+    fi
+    if [ ! -e "$kdump_initrd" ]; then
+        echo "$kdump_initrd does not exist!"
+        return 1
+    fi
+
+    return 0
+}
+
+############################################################
+# MAIN PROGRAM STARTS HERE
+#
+
+find_kernel || exit 6
+rebuild_kdumprd || exit 1
+exit 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-1.5/systemd/Makefile.in 
new/transactional-update-1.8/systemd/Makefile.in
--- old/transactional-update-1.5/systemd/Makefile.in    2017-01-19 
10:23:43.000000000 +0100
+++ new/transactional-update-1.8/systemd/Makefile.in    2017-02-01 
14:49:19.000000000 +0100
@@ -160,6 +160,7 @@
 ISSUEDIR = @ISSUEDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LN_S = @LN_S@
 LOGROTATEDDIR = @LOGROTATEDDIR@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@


Reply via email to