Hello community,

here is the log from the commit of package python-kiwi for openSUSE:Factory 
checked in at 2018-05-23 16:05:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-kiwi (Old)
 and      /work/SRC/openSUSE:Factory/.python-kiwi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-kiwi"

Wed May 23 16:05:55 2018 rev:28 rq:609805 version:9.15.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-kiwi/python-kiwi.changes  2018-05-13 
15:54:47.160835021 +0200
+++ /work/SRC/openSUSE:Factory/.python-kiwi.new/python-kiwi.changes     
2018-05-23 16:05:58.296861200 +0200
@@ -1,0 +2,56 @@
+Wed May 16 11:48:00 CEST 2018 - m...@suse.de
+
+- Bump version: 9.15.1 → 9.15.2
+  
+-------------------------------------------------------------------
+Wed May 16 11:31:40 CEST 2018 - dcass...@suse.com
+  
+- Fix zypper add lock operations
+  
+  This commit fixes the arguments passed to zypper in add lock
+  operations.
+  
+-------------------------------------------------------------------
+Tue May 15 15:48:24 CEST 2018 - dcass...@suse.com
+  
+- Add correct GPL-3.0-or-later license
+  
+  Add the correct license reference in the spec License field
+  
+  Fixes #732
+  
+-------------------------------------------------------------------
+Tue May 15 11:18:22 CEST 2018 - m...@suse.de
+  
+- Make container compression a configuration option
+  
+  Change the ContainerBuilder class to evaluate on the
+  configuration options to decide if the container archive
+  should be compressed or not. By default the archive will
+  be compressed, thus there is no change to the former behavior
+  but can be setup in ~/.config/kiwi/config.yml as follows:
+  
+  container:
+- compress: none|xz
+  
+  This Fixes #725
+  
+-------------------------------------------------------------------
+Tue May 15 10:36:57 CEST 2018 - m...@suse.de
+  
+- Return file name after archive or compression call
+  
+  Extend the ArchiveTar and Compress classes such that
+  their archiving and compression methods returns the
+  result file name after the operation
+  
+-------------------------------------------------------------------
+Tue May 15 10:02:52 CEST 2018 - m...@suse.de
+  
+- Allow docker root import from uncompressed file
+  
+  Check the given file name for its compression format and
+  only uncompress if a supported format could be detected.
+  This Fixes #730
+  
+-------------------------------------------------------------------

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

Other differences:
------------------
++++++ python-kiwi.spec ++++++
--- /var/tmp/diff_new_pack.y012Sd/_old  2018-05-23 16:05:59.244826475 +0200
+++ /var/tmp/diff_new_pack.y012Sd/_new  2018-05-23 16:05:59.252826181 +0200
@@ -38,12 +38,12 @@
 %endif
 
 Name:           python-kiwi
-Version:        9.15.1
+Version:        9.15.2
 Provides:       kiwi-schema = 6.6
 Release:        0
 Url:            https://github.com/SUSE/kiwi
 Summary:        KIWI - Appliance Builder Next Generation
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 %if %{_vendor} == "debbuild"
 # Needed to set Maintainer in output debs
 Packager:       Marcus Schaefer <m...@suse.de>
@@ -232,7 +232,7 @@
 
 %package -n kiwi-tools
 Summary:        KIWI - Collection of Boot Helper Tools
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n kiwi-tools
@@ -251,7 +251,7 @@
 %else
 Requires(pre):  shadow
 %endif
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n kiwi-pxeboot
@@ -298,7 +298,7 @@
 %ifarch s390 s390x
 Requires:       s390-tools
 %endif
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n dracut-kiwi-lib
@@ -314,7 +314,7 @@
 BuildRequires:  dracut
 %endif
 Requires:       dracut-kiwi-lib
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n dracut-kiwi-oem-repart
@@ -340,7 +340,7 @@
 Requires:       device-mapper-multipath
 %endif
 Requires:       gawk
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n dracut-kiwi-oem-dump
@@ -370,7 +370,7 @@
 %endif
 Requires:       dracut
 Requires:       xorriso
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n dracut-kiwi-live
@@ -387,7 +387,7 @@
 %endif
 Requires:       util-linux
 Requires:       dracut
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n dracut-kiwi-overlay
@@ -397,7 +397,7 @@
 
 %package -n kiwi-man-pages
 Summary:        KIWI - manual pages
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n kiwi-man-pages

++++++ python-kiwi.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/.bumpversion.cfg 
new/kiwi-9.15.2/.bumpversion.cfg
--- old/kiwi-9.15.1/.bumpversion.cfg    2018-05-09 14:53:02.000000000 +0200
+++ new/kiwi-9.15.2/.bumpversion.cfg    2018-05-16 11:48:00.000000000 +0200
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 9.15.1
+current_version = 9.15.2
 commit = True
 tag = True
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/PKG-INFO new/kiwi-9.15.2/PKG-INFO
--- old/kiwi-9.15.1/PKG-INFO    2018-05-09 14:58:53.000000000 +0200
+++ new/kiwi-9.15.2/PKG-INFO    2018-05-16 11:54:02.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: kiwi
-Version: 9.15.1
+Version: 9.15.2
 Summary: KIWI - Appliance Builder (next generation)
 Home-page: http://suse.github.io/kiwi
 Author: Marcus Schaefer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/doc/build/man/kiwi.8 
new/kiwi-9.15.2/doc/build/man/kiwi.8
--- old/kiwi-9.15.1/doc/build/man/kiwi.8        2018-05-09 14:58:43.000000000 
+0200
+++ new/kiwi-9.15.2/doc/build/man/kiwi.8        2018-05-16 11:53:50.000000000 
+0200
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "KIWI" "8" "May 09, 2018" "9.15.1" "kiwi"
+.TH "KIWI" "8" "May 16, 2018" "9.15.2" "kiwi"
 .SH NAME
 kiwi \- Creating Operating System Images
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/doc/build/man/kiwi::image::info.8 
new/kiwi-9.15.2/doc/build/man/kiwi::image::info.8
--- old/kiwi-9.15.1/doc/build/man/kiwi::image::info.8   2018-05-09 
14:58:43.000000000 +0200
+++ new/kiwi-9.15.2/doc/build/man/kiwi::image::info.8   2018-05-16 
11:53:50.000000000 +0200
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "KIWI::IMAGE::INFO" "8" "May 09, 2018" "9.15.1" "kiwi"
+.TH "KIWI::IMAGE::INFO" "8" "May 16, 2018" "9.15.2" "kiwi"
 .SH NAME
 kiwi::image::info \- Provide detailed information about an image description
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/doc/build/man/kiwi::image::resize.8 
new/kiwi-9.15.2/doc/build/man/kiwi::image::resize.8
--- old/kiwi-9.15.1/doc/build/man/kiwi::image::resize.8 2018-05-09 
14:58:43.000000000 +0200
+++ new/kiwi-9.15.2/doc/build/man/kiwi::image::resize.8 2018-05-16 
11:53:50.000000000 +0200
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "KIWI::IMAGE::RESIZE" "8" "May 09, 2018" "9.15.1" "kiwi"
+.TH "KIWI::IMAGE::RESIZE" "8" "May 16, 2018" "9.15.2" "kiwi"
 .SH NAME
 kiwi::image::resize \- Resize disk images to new geometry
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/doc/build/man/kiwi::result::bundle.8 
new/kiwi-9.15.2/doc/build/man/kiwi::result::bundle.8
--- old/kiwi-9.15.1/doc/build/man/kiwi::result::bundle.8        2018-05-09 
14:58:43.000000000 +0200
+++ new/kiwi-9.15.2/doc/build/man/kiwi::result::bundle.8        2018-05-16 
11:53:50.000000000 +0200
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "KIWI::RESULT::BUNDLE" "8" "May 09, 2018" "9.15.1" "kiwi"
+.TH "KIWI::RESULT::BUNDLE" "8" "May 16, 2018" "9.15.2" "kiwi"
 .SH NAME
 kiwi::result::bundle \- Bundle build results
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/doc/build/man/kiwi::result::list.8 
new/kiwi-9.15.2/doc/build/man/kiwi::result::list.8
--- old/kiwi-9.15.1/doc/build/man/kiwi::result::list.8  2018-05-09 
14:58:43.000000000 +0200
+++ new/kiwi-9.15.2/doc/build/man/kiwi::result::list.8  2018-05-16 
11:53:50.000000000 +0200
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "KIWI::RESULT::LIST" "8" "May 09, 2018" "9.15.1" "kiwi"
+.TH "KIWI::RESULT::LIST" "8" "May 16, 2018" "9.15.2" "kiwi"
 .SH NAME
 kiwi::result::list \- List build results
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/doc/build/man/kiwi::system::build.8 
new/kiwi-9.15.2/doc/build/man/kiwi::system::build.8
--- old/kiwi-9.15.1/doc/build/man/kiwi::system::build.8 2018-05-09 
14:58:43.000000000 +0200
+++ new/kiwi-9.15.2/doc/build/man/kiwi::system::build.8 2018-05-16 
11:53:50.000000000 +0200
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "KIWI::SYSTEM::BUILD" "8" "May 09, 2018" "9.15.1" "kiwi"
+.TH "KIWI::SYSTEM::BUILD" "8" "May 16, 2018" "9.15.2" "kiwi"
 .SH NAME
 kiwi::system::build \- Build image in combined prepare and create step
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/doc/build/man/kiwi::system::create.8 
new/kiwi-9.15.2/doc/build/man/kiwi::system::create.8
--- old/kiwi-9.15.1/doc/build/man/kiwi::system::create.8        2018-05-09 
14:58:43.000000000 +0200
+++ new/kiwi-9.15.2/doc/build/man/kiwi::system::create.8        2018-05-16 
11:53:50.000000000 +0200
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "KIWI::SYSTEM::CREATE" "8" "May 09, 2018" "9.15.1" "kiwi"
+.TH "KIWI::SYSTEM::CREATE" "8" "May 16, 2018" "9.15.2" "kiwi"
 .SH NAME
 kiwi::system::create \- Create image from prepared root system
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/doc/build/man/kiwi::system::prepare.8 
new/kiwi-9.15.2/doc/build/man/kiwi::system::prepare.8
--- old/kiwi-9.15.1/doc/build/man/kiwi::system::prepare.8       2018-05-09 
14:58:43.000000000 +0200
+++ new/kiwi-9.15.2/doc/build/man/kiwi::system::prepare.8       2018-05-16 
11:53:50.000000000 +0200
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "KIWI::SYSTEM::PREPARE" "8" "May 09, 2018" "9.15.1" "kiwi"
+.TH "KIWI::SYSTEM::PREPARE" "8" "May 16, 2018" "9.15.2" "kiwi"
 .SH NAME
 kiwi::system::prepare \- Prepare image root system
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/doc/build/man/kiwi::system::update.8 
new/kiwi-9.15.2/doc/build/man/kiwi::system::update.8
--- old/kiwi-9.15.1/doc/build/man/kiwi::system::update.8        2018-05-09 
14:58:43.000000000 +0200
+++ new/kiwi-9.15.2/doc/build/man/kiwi::system::update.8        2018-05-16 
11:53:50.000000000 +0200
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "KIWI::SYSTEM::UPDATE" "8" "May 09, 2018" "9.15.1" "kiwi"
+.TH "KIWI::SYSTEM::UPDATE" "8" "May 16, 2018" "9.15.2" "kiwi"
 .SH NAME
 kiwi::system::update \- Update/Upgrade image root system
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/doc/source/conf.py 
new/kiwi-9.15.2/doc/source/conf.py
--- old/kiwi-9.15.1/doc/source/conf.py  2018-05-09 14:53:02.000000000 +0200
+++ new/kiwi-9.15.2/doc/source/conf.py  2018-05-16 11:48:00.000000000 +0200
@@ -90,7 +90,7 @@
 # built documents.
 #
 # The short X.Y version.
-version = u'9.15.1'
+version = u'9.15.2'
 # The full version, including alpha/beta/rc tags.
 release = version
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi/archive/tar.py 
new/kiwi-9.15.2/kiwi/archive/tar.py
--- old/kiwi-9.15.1/kiwi/archive/tar.py 2018-04-20 15:57:24.000000000 +0200
+++ new/kiwi-9.15.2/kiwi/archive/tar.py 2018-05-15 14:43:16.000000000 +0200
@@ -70,6 +70,7 @@
                 '-c', '-f', self.filename
             ] + self._get_archive_items(source_dir, exclude)
         )
+        return self.filename
 
     def append_files(self, source_dir, files_to_append, options=None):
         """
@@ -88,6 +89,7 @@
             ] + options +
             self.xattrs_options + files_to_append
         )
+        return self.filename
 
     def create_xz_compressed(
         self, source_dir, exclude=None, options=None, xz_options=None
@@ -114,6 +116,7 @@
             '>', self.filename + '.xz'
         ]
         Command.run(['bash', '-c', ' '.join(bash_command)])
+        return self.filename + '.xz'
 
     def create_gnu_gzip_compressed(self, source_dir, exclude=None):
         """
@@ -128,6 +131,7 @@
                 '--format=gnu', '-cSz', '-f', self.filename + '.gz'
             ] + self._get_archive_items(source_dir, exclude)
         )
+        return self.filename + '.gz'
 
     def extract(self, dest_dir):
         """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi/builder/container.py 
new/kiwi-9.15.2/kiwi/builder/container.py
--- old/kiwi-9.15.1/kiwi/builder/container.py   2018-04-20 15:57:24.000000000 
+0200
+++ new/kiwi-9.15.2/kiwi/builder/container.py   2018-05-15 14:43:16.000000000 
+0200
@@ -82,7 +82,7 @@
                 xml_state.xml_data.get_name(),
                 '.' + platform.machine(),
                 '-' + xml_state.get_image_version(),
-                '.', self.requested_container_type, '.tar.xz'
+                '.', self.requested_container_type, '.tar'
             ]
         )
         self.result = Result(xml_state)
@@ -125,7 +125,7 @@
         container_image = ContainerImage(
             self.requested_container_type, self.root_dir, self.container_config
         )
-        container_image.create(
+        self.filename = container_image.create(
             self.filename, self.base_image
         )
         self.result.verify_image_size(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi/container/docker.py 
new/kiwi-9.15.2/kiwi/container/docker.py
--- old/kiwi-9.15.1/kiwi/container/docker.py    2018-04-20 15:57:24.000000000 
+0200
+++ new/kiwi-9.15.2/kiwi/container/docker.py    2018-05-15 14:43:16.000000000 
+0200
@@ -34,23 +34,26 @@
 
         :param string filename: file name of the resulting packed image
         """
-        docker_tarfile = filename.replace('.xz', '')
         oci_image = os.sep.join([
             self.oci_dir, ':'.join(['umoci_layout', self.container_tag])
         ])
 
-        # make sure the target tar file does not exist
+        # make sure the target archive file does not exist
         # skopeo doesn't support force overwrite
-        Path.wipe(docker_tarfile)
+        Path.wipe(filename)
         Command.run(
             [
                 'skopeo', 'copy', 'oci:{0}'.format(
                     oci_image
                 ),
                 'docker-archive:{0}:{1}:{2}'.format(
-                    docker_tarfile, self.container_name, self.container_tag
+                    filename, self.container_name, self.container_tag
                 )
             ]
         )
-        compressor = Compress(docker_tarfile)
-        compressor.xz(self.xz_options)
+        container_compressor = self.runtime_config.get_container_compression()
+        if container_compressor:
+            compressor = Compress(filename)
+            return compressor.xz(self.runtime_config.get_xz_options())
+        else:
+            return filename
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi/container/oci.py 
new/kiwi-9.15.2/kiwi/container/oci.py
--- old/kiwi-9.15.1/kiwi/container/oci.py       2018-04-20 15:57:24.000000000 
+0200
+++ new/kiwi-9.15.2/kiwi/container/oci.py       2018-05-15 14:43:16.000000000 
+0200
@@ -26,6 +26,7 @@
 from kiwi.utils.sync import DataSync
 from kiwi.archive.tar import ArchiveTar
 from kiwi.logger import log
+from kiwi.runtime_config import RuntimeConfig
 
 
 class ContainerImageOCI(object):
@@ -63,8 +64,7 @@
                     '--config.volume=/tmp'
                 ],
                 'environment': ['--config.env=PATH=/bin'],
-                'labels': ['--config.label=name=value'],
-                'xz_options': ['--threads=0']
+                'labels': ['--config.label=name=value']
             }
     """
     def __init__(self, root_dir, custom_args=None):         # noqa: C901
@@ -72,7 +72,6 @@
         self.oci_dir = None
         self.oci_root_dir = None
 
-        self.xz_options = None
         self.container_name = 'kiwi-container'
         self.container_tag = 'latest'
         self.entry_command = []
@@ -85,6 +84,8 @@
         self.environment = []
         self.labels = []
 
+        self.runtime_config = RuntimeConfig()
+
         if custom_args:
             if 'container_name' in custom_args:
                 self.container_name = custom_args['container_name']
@@ -119,9 +120,6 @@
             if 'labels' in custom_args:
                 self.labels = custom_args['labels']
 
-            if 'xz_options' in custom_args:
-                self.xz_options = custom_args['xz_options']
-
         # for builds inside the buildservice we include a reference to the
         # specific build. Thus disturl label only exists inside the
         # buildservice.
@@ -214,7 +212,7 @@
             ['umoci', 'gc', '--layout', container_dir]
         )
 
-        self.pack_image_to_file(filename)
+        return self.pack_image_to_file(filename)
 
     def pack_image_to_file(self, filename):
         """
@@ -223,10 +221,14 @@
         :param string filename: file name of the resulting packed image
         """
         image_dir = os.sep.join([self.oci_dir, 'umoci_layout'])
-        oci_tarfile = ArchiveTar(filename.replace('.xz', ''))
-        oci_tarfile.create_xz_compressed(
-            image_dir, xz_options=self.xz_options
-        )
+        oci_tarfile = ArchiveTar(filename)
+        container_compressor = self.runtime_config.get_container_compression()
+        if container_compressor:
+            return oci_tarfile.create_xz_compressed(
+                image_dir, xz_options=self.runtime_config.get_xz_options()
+            )
+        else:
+            return oci_tarfile.create(image_dir)
 
     def _append_buildservice_disturl_label(self):
         with open(os.sep + Defaults.get_buildservice_env_name()) as env:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi/defaults.py 
new/kiwi-9.15.2/kiwi/defaults.py
--- old/kiwi-9.15.1/kiwi/defaults.py    2018-04-20 15:57:24.000000000 +0200
+++ new/kiwi-9.15.2/kiwi/defaults.py    2018-05-15 14:43:16.000000000 +0200
@@ -1071,6 +1071,17 @@
         return 'xorriso'
 
     @classmethod
+    def get_container_compression(self):
+        """
+        Provides default container compression algorithm
+
+        :return: name
+
+        :rtype: str
+        """
+        return 'xz'
+
+    @classmethod
     def set_python_default_encoding_to_utf8(self):
         """
         Set python default encoding to utf-8 if not already done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi/package_manager/zypper.py 
new/kiwi-9.15.2/kiwi/package_manager/zypper.py
--- old/kiwi-9.15.1/kiwi/package_manager/zypper.py      2018-04-20 
15:57:24.000000000 +0200
+++ new/kiwi-9.15.2/kiwi/package_manager/zypper.py      2018-05-16 
11:47:53.000000000 +0200
@@ -130,11 +130,8 @@
                 Path.create(metadata_dir)
             for package in self.exclude_requests:
                 Command.run(
-                    [
-                        'chroot', self.root_dir, 'zypper'
-                    ] + self.chroot_zypper_args + [
-                        'al'
-                    ] + self.custom_args + [package],
+                    ['chroot', self.root_dir, 'zypper'] +
+                    self.chroot_zypper_args + ['al'] + [package],
                     self.chroot_command_env
                 )
         return Command.call(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi/runtime_config.py 
new/kiwi-9.15.2/kiwi/runtime_config.py
--- old/kiwi-9.15.1/kiwi/runtime_config.py      2018-04-20 15:57:24.000000000 
+0200
+++ new/kiwi-9.15.2/kiwi/runtime_config.py      2018-05-15 14:43:16.000000000 
+0200
@@ -108,6 +108,37 @@
         xz_options = self._get_attribute(element='xz', attribute='options')
         return xz_options.split() if xz_options else None
 
+    def get_container_compression(self):
+        """
+        Return compression algorithm to use for compression of container images
+
+        container:
+          - compress: xz|none
+
+        if no or invalid configuration data is provided, the default
+        compression algorithm from the Defaults class is returned
+
+        :return: A name
+
+        :rtype: str
+        """
+        container_compression = self._get_attribute(
+            element='container', attribute='compress'
+        )
+        if not container_compression:
+            return Defaults.get_container_compression()
+        elif 'xz' in container_compression:
+            return container_compression
+        elif 'none' in container_compression:
+            return None
+        else:
+            log.warning(
+                'Skipping invalid container compression: {0}'.format(
+                    container_compression
+                )
+            )
+            return Defaults.get_container_compression()
+
     def get_iso_tool_category(self):
         """
         Return tool category which should be used to build iso images
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi/system/root_import/docker.py 
new/kiwi-9.15.2/kiwi/system/root_import/docker.py
--- old/kiwi-9.15.1/kiwi/system/root_import/docker.py   2018-04-18 
10:31:36.000000000 +0200
+++ new/kiwi-9.15.2/kiwi/system/root_import/docker.py   2018-05-15 
14:43:16.000000000 +0200
@@ -34,8 +34,11 @@
         """
         if not self.unknown_uri:
             compressor = Compress(self.image_file)
-            compressor.uncompress(True)
-            self.uncompressed_image = compressor.uncompressed_filename
+            if compressor.get_format():
+                compressor.uncompress(True)
+                self.uncompressed_image = compressor.uncompressed_filename
+            else:
+                self.uncompressed_image = self.image_file
             skopeo_uri = 'docker-archive:{0}'.format(self.uncompressed_image)
         else:
             log.warning('Bypassing base image URI to skopeo tool')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi/system/root_import/oci.py 
new/kiwi-9.15.2/kiwi/system/root_import/oci.py
--- old/kiwi-9.15.1/kiwi/system/root_import/oci.py      2018-04-18 
10:31:36.000000000 +0200
+++ new/kiwi-9.15.2/kiwi/system/root_import/oci.py      2018-05-15 
14:43:16.000000000 +0200
@@ -31,7 +31,7 @@
 class RootImportOCI(RootImportBase):
     """
     Implements the base class for importing a root system from
-    a oci image compressed tarball file.
+    a oci image tarball file.
     """
     def post_init(self, image_uri):
         """
@@ -73,8 +73,8 @@
 
     def extract_oci_image(self):
         """
-        Extract the image from the provided image file to a temporary
-        location to KIWI can work with it.
+        Extract the contents from the provided image file to a temporary
+        location KIWI can work with.
         """
         if not self.unknown_uri:
             tar = ArchiveTar(self.image_file)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi/utils/compress.py 
new/kiwi-9.15.2/kiwi/utils/compress.py
--- old/kiwi-9.15.1/kiwi/utils/compress.py      2018-04-20 15:57:24.000000000 
+0200
+++ new/kiwi-9.15.2/kiwi/utils/compress.py      2018-05-15 14:43:16.000000000 
+0200
@@ -67,6 +67,7 @@
             ['xz', '-f'] + options + [self.source_filename]
         )
         self.compressed_filename = self.source_filename + '.xz'
+        return self.compressed_filename
 
     def gzip(self):
         """
@@ -81,6 +82,7 @@
             ['gzip', '-f'] + options + [self.source_filename]
         )
         self.compressed_filename = self.source_filename + '.gz'
+        return self.compressed_filename
 
     def uncompress(self, temporary=False):
         """
@@ -109,6 +111,7 @@
             ]
             Command.run(['bash', '-c', ' '.join(bash_command)])
             self.uncompressed_filename = self.temp_file.name
+        return self.uncompressed_filename
 
     def get_format(self):
         """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi/version.py 
new/kiwi-9.15.2/kiwi/version.py
--- old/kiwi-9.15.1/kiwi/version.py     2018-05-09 14:53:02.000000000 +0200
+++ new/kiwi-9.15.2/kiwi/version.py     2018-05-16 11:48:00.000000000 +0200
@@ -18,5 +18,5 @@
 """
 Global version information used in kiwi and the package
 """
-__version__ = '9.15.1'
-__githash__ = '2a6ef0fe5217b3fa52c5c8212c080e9d2aebad4b'
+__version__ = '9.15.2'
+__githash__ = 'bb28768b39596e969a2b226145e33cebfb8160a0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/kiwi.egg-info/PKG-INFO 
new/kiwi-9.15.2/kiwi.egg-info/PKG-INFO
--- old/kiwi-9.15.1/kiwi.egg-info/PKG-INFO      2018-05-09 14:58:53.000000000 
+0200
+++ new/kiwi-9.15.2/kiwi.egg-info/PKG-INFO      2018-05-16 11:54:01.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: kiwi
-Version: 9.15.1
+Version: 9.15.2
 Summary: KIWI - Appliance Builder (next generation)
 Home-page: http://suse.github.io/kiwi
 Author: Marcus Schaefer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/package/python-kiwi-spec-template 
new/kiwi-9.15.2/package/python-kiwi-spec-template
--- old/kiwi-9.15.1/package/python-kiwi-spec-template   2018-03-23 
08:53:27.000000000 +0100
+++ new/kiwi-9.15.2/package/python-kiwi-spec-template   2018-05-16 
11:30:14.000000000 +0200
@@ -43,7 +43,7 @@
 Release:        0
 Url:            https://github.com/SUSE/kiwi
 Summary:        KIWI - Appliance Builder Next Generation
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 %if %{_vendor} == "debbuild"
 # Needed to set Maintainer in output debs
 Packager:       Marcus Schaefer <m...@suse.de>
@@ -232,7 +232,7 @@
 
 %package -n kiwi-tools
 Summary:        KIWI - Collection of Boot Helper Tools
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n kiwi-tools
@@ -251,7 +251,7 @@
 %else
 Requires(pre):  shadow
 %endif
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n kiwi-pxeboot
@@ -298,7 +298,7 @@
 %ifarch s390 s390x
 Requires:       s390-tools
 %endif
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n dracut-kiwi-lib
@@ -314,7 +314,7 @@
 BuildRequires:  dracut
 %endif
 Requires:       dracut-kiwi-lib
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n dracut-kiwi-oem-repart
@@ -340,7 +340,7 @@
 Requires:       device-mapper-multipath
 %endif
 Requires:       gawk
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n dracut-kiwi-oem-dump
@@ -370,7 +370,7 @@
 %endif
 Requires:       dracut
 Requires:       xorriso
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n dracut-kiwi-live
@@ -387,7 +387,7 @@
 %endif
 Requires:       util-linux
 Requires:       dracut
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n dracut-kiwi-overlay
@@ -397,7 +397,7 @@
 
 %package -n kiwi-man-pages
 Summary:        KIWI - manual pages
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          %{sysgroup}
 
 %description -n kiwi-man-pages
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/test/unit/archive_tar_test.py 
new/kiwi-9.15.2/test/unit/archive_tar_test.py
--- old/kiwi-9.15.1/test/unit/archive_tar_test.py       2018-01-22 
19:28:47.000000000 +0100
+++ new/kiwi-9.15.2/test/unit/archive_tar_test.py       2018-05-15 
14:43:16.000000000 +0200
@@ -36,7 +36,7 @@
     @patch('os.listdir')
     def test_create(self, mock_os_dir, mock_command):
         mock_os_dir.return_value = ['foo', 'bar']
-        self.archive.create('source-dir')
+        assert self.archive.create('source-dir') == 'foo.tar'
         mock_command.assert_called_once_with(
             [
                 'tar', '-C', 'source-dir',
@@ -47,7 +47,8 @@
 
     @patch('kiwi.archive.tar.Command.run')
     def test_append_files(self, mock_command):
-        self.archive.append_files('source-dir', ['foo', 'bar'])
+        assert self.archive.append_files('source-dir', ['foo', 'bar']) \
+            == 'foo.tar'
         mock_command.assert_called_once_with(
             [
                 'tar', '-C', 'source-dir', '-r',
@@ -61,9 +62,9 @@
     @patch('os.listdir')
     def test_create_with_options(self, mock_os_dir, mock_command):
         mock_os_dir.return_value = ['foo', 'bar']
-        self.archive.create('source-dir', options=[
+        assert self.archive.create('source-dir', options=[
             '--fake-option', 'fake_arg'
-        ])
+        ]) == 'foo.tar'
         mock_command.assert_called_once_with(
             [
                 'tar', '-C', 'source-dir',
@@ -81,7 +82,7 @@
         mock_command.return_value = command
         archive = ArchiveTar('foo.tar')
         mock_os_dir.return_value = ['foo', 'bar']
-        archive.create('source-dir')
+        assert archive.create('source-dir') == 'foo.tar'
         calls = [
             call(['tar', '--version']),
             call(
@@ -100,7 +101,7 @@
         command.output = 'version 1.27.0'
         mock_command.return_value = command
         archive = ArchiveTar('foo.tar', False)
-        archive.create('source-dir', ['foo', 'bar'])
+        assert archive.create('source-dir', ['foo', 'bar']) == 'foo.tar'
         calls = [
             call(['tar', '--version']),
             call(
@@ -118,7 +119,7 @@
     @patch('os.listdir')
     def test_create_xz_compressed(self, mock_os_dir, mock_command):
         mock_os_dir.return_value = ['foo', 'bar']
-        self.archive.create_xz_compressed('source-dir')
+        assert self.archive.create_xz_compressed('source-dir') == 'foo.tar.xz'
         mock_command.assert_called_once_with(
             [
                 'bash', '-c',
@@ -137,7 +138,9 @@
         self, mock_os_dir, mock_command
     ):
         mock_os_dir.return_value = ['foo', 'bar']
-        self.archive.create_xz_compressed('source-dir', xz_options=['-a', 
'-b'])
+        assert self.archive.create_xz_compressed(
+            'source-dir', xz_options=['-a', '-b']
+        ) == 'foo.tar.xz'
         mock_command.assert_called_once_with(
             [
                 'bash', '-c',
@@ -154,7 +157,8 @@
     @patch('os.listdir')
     def test_create_gnu_gzip_compressed(self, mock_os_dir, mock_command):
         mock_os_dir.return_value = ['foo', 'bar']
-        self.archive.create_gnu_gzip_compressed('source-dir')
+        assert self.archive.create_gnu_gzip_compressed('source-dir') \
+            == 'foo.tar.gz'
         mock_command.assert_called_once_with(
             [
                 'tar', '-C', 'source-dir',
@@ -166,7 +170,7 @@
     @patch('os.listdir')
     def test_create_exclude(self, mock_os_dir, mock_command):
         mock_os_dir.return_value = ['foo', 'bar']
-        self.archive.create('source-dir', ['foo'])
+        assert self.archive.create('source-dir', ['foo']) == 'foo.tar'
         mock_command.assert_called_once_with(
             [
                 'tar', '-C', 'source-dir', '--xattrs', '--xattrs-include=*',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/test/unit/builder_container_test.py 
new/kiwi-9.15.2/test/unit/builder_container_test.py
--- old/kiwi-9.15.1/test/unit/builder_container_test.py 2017-11-22 
09:06:34.000000000 +0100
+++ new/kiwi-9.15.2/test/unit/builder_container_test.py 2018-05-15 
14:43:16.000000000 +0200
@@ -110,6 +110,9 @@
         container_setup = mock.Mock()
         mock_setup.return_value = container_setup
         container_image = mock.Mock()
+        container_image.create = mock.Mock(
+            return_value='target_dir/image_name.x86_64-1.2.3.docker.tar.xz'
+        )
         mock_image.return_value = container_image
         self.setup.export_package_verification.return_value = '.verified'
         self.setup.export_package_list.return_value = '.packages'
@@ -123,7 +126,7 @@
             'docker', 'root_dir', self.container_config
         )
         container_image.create.assert_called_once_with(
-            'target_dir/image_name.x86_64-1.2.3.docker.tar.xz', None
+            'target_dir/image_name.x86_64-1.2.3.docker.tar', None
         )
         assert self.container.result.add.call_args_list == [
             call(
@@ -167,6 +170,12 @@
 
         mock_exists.side_effect = side_effect
 
+        container_image = mock.Mock()
+        container_image.create = mock.Mock(
+            return_value='target_dir/image_name.x86_64-1.2.3.docker.tar.xz'
+        )
+        mock_image.return_value = container_image
+
         container = ContainerBuilder(
             self.xml_state, 'target_dir', 'root_dir'
         )
@@ -178,8 +187,6 @@
         )
         mock_checksum.return_value = checksum
 
-        container_image = mock.Mock()
-        mock_image.return_value = container_image
         self.setup.export_package_verification.return_value = '.verified'
         self.setup.export_package_list.return_value = '.packages'
 
@@ -194,7 +201,7 @@
             'docker', 'root_dir', self.container_config
         )
         container_image.create.assert_called_once_with(
-            'target_dir/image_name.x86_64-1.2.3.docker.tar.xz',
+            'target_dir/image_name.x86_64-1.2.3.docker.tar',
             'root_dir/image/imported_root'
         )
         assert container.result.add.call_args_list == [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/test/unit/container_image_docker_test.py 
new/kiwi-9.15.2/test/unit/container_image_docker_test.py
--- old/kiwi-9.15.1/test/unit/container_image_docker_test.py    2017-09-15 
10:37:16.000000000 +0200
+++ new/kiwi-9.15.2/test/unit/container_image_docker_test.py    2018-05-15 
14:43:16.000000000 +0200
@@ -1,17 +1,29 @@
-from mock import call
-from mock import patch
+from mock import (
+    call, patch, Mock
+)
 
 from kiwi.container.docker import ContainerImageDocker
 
 
 class TestContainerImageDocker(object):
-
     @patch('kiwi.container.docker.Compress')
     @patch('kiwi.container.oci.Command.run')
-    def test_pack_image_to_file(self, mock_command, mock_compress):
+    @patch('kiwi.container.oci.RuntimeConfig')
+    def test_pack_image_to_file(
+        self, mock_RuntimeConfig, mock_command, mock_compress
+    ):
+        compressor = Mock()
+        compressor.xz = Mock(
+            return_value='result.tar.xz'
+        )
+        mock_compress.return_value = compressor
         docker = ContainerImageDocker('root_dir', {'container_name': 
'foo/bar'})
         docker.oci_dir = 'kiwi_oci_dir'
-        docker.pack_image_to_file('result.tar.xz')
+        docker.runtime_config.get_container_compression = Mock(
+            return_value='xz'
+        )
+
+        assert docker.pack_image_to_file('result.tar') == 'result.tar.xz'
 
         assert mock_command.call_args_list == [
             call(['rm', '-r', '-f', 'result.tar']),
@@ -21,3 +33,12 @@
             ])
         ]
         mock_compress.assert_called_once_with('result.tar')
+        compressor.xz.assert_called_once_with(
+            docker.runtime_config.get_xz_options.return_value
+        )
+
+        docker.runtime_config.get_container_compression = Mock(
+            return_value=None
+        )
+
+        assert docker.pack_image_to_file('result.tar') == 'result.tar'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/test/unit/container_image_oci_test.py 
new/kiwi-9.15.2/test/unit/container_image_oci_test.py
--- old/kiwi-9.15.1/test/unit/container_image_oci_test.py       2017-10-25 
12:23:42.000000000 +0200
+++ new/kiwi-9.15.2/test/unit/container_image_oci_test.py       2018-05-15 
14:43:16.000000000 +0200
@@ -9,7 +9,8 @@
 
 
 class TestContainerImageOCI(object):
-    def setup(self):
+    @patch('kiwi.container.oci.RuntimeConfig')
+    def setup(self, mock_RuntimeConfig):
         self.oci = ContainerImageOCI(
             'root_dir', {
                 'container_name': 'foo/bar'
@@ -46,8 +47,7 @@
             'labels': [
                 '--config.label=a=value',
                 '--config.label=b=value'
-            ],
-            'xz_options': ['-a', '-b']
+            ]
         }
         container = ContainerImageOCI(
             'root_dir', custom_args
@@ -63,7 +63,6 @@
         assert container.volumes == custom_args['volumes']
         assert container.environment == custom_args['environment']
         assert container.labels == custom_args['labels']
-        assert container.xz_options == custom_args['xz_options']
 
     def test_init_without_custom_args(self):
         container = ContainerImageOCI('root_dir')
@@ -117,6 +116,8 @@
         self, mock_cache, mock_mkdtemp,
         mock_sync, mock_command, mock_tar, mock_datetime
     ):
+        oci_tarfile = mock.Mock()
+        mock_tar.return_value = oci_tarfile
         strftime = mock.Mock()
         strftime.strftime = mock.Mock(return_value='current_date')
         mock_datetime.utcnow = mock.Mock(
@@ -133,7 +134,11 @@
 
         mock_mkdtemp.side_effect = call_mkdtemp
 
-        self.oci.create('result.tar.xz', None)
+        self.oci.runtime_config.get_container_compression = mock.Mock(
+            return_value='xz'
+        )
+
+        self.oci.create('result.tar', None)
 
         assert mock_command.call_args_list == [
             call([
@@ -170,8 +175,22 @@
             ],
             options=['-a', '-H', '-X', '-A', '--delete']
         )
+        mock_tar.assert_called_once_with('result.tar')
+        oci_tarfile.create_xz_compressed.assert_called_once_with(
+            'kiwi_oci_dir/umoci_layout',
+            xz_options=self.oci.runtime_config.get_xz_options.return_value
+        )
 
-        mock_tar.called_once_with('result.tar.xz')
+        tmpdirs = ['kiwi_oci_root_dir', 'kiwi_oci_dir']
+        self.oci.runtime_config.get_container_compression = mock.Mock(
+            return_value=None
+        )
+
+        self.oci.create('result.tar', None)
+
+        oci_tarfile.create.assert_called_once_with(
+            'kiwi_oci_dir/umoci_layout'
+        )
 
     @patch('kiwi.container.oci.datetime')
     @patch('kiwi.container.oci.ArchiveTar')
@@ -200,7 +219,7 @@
 
         mock_mkdtemp.side_effect = call_mkdtemp
 
-        self.oci.create('result.tar.xz', 'root_dir/image/image_file')
+        self.oci.create('result.tar', 'root_dir/image/image_file')
 
         mock_create.assert_called_once_with('kiwi_oci_dir/umoci_layout')
 
@@ -235,6 +254,6 @@
             ],
             options=['-a', '-H', '-X', '-A', '--delete']
         )
-        mock_tar.call_args_list == [
-            call('root_dir/image/image_file'), call('result.tar.xz')
+        assert mock_tar.call_args_list == [
+            call('root_dir/image/image_file'), call('result.tar')
         ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/test/unit/runtime_config_test.py 
new/kiwi-9.15.2/test/unit/runtime_config_test.py
--- old/kiwi-9.15.1/test/unit/runtime_config_test.py    2018-03-22 
17:25:31.000000000 +0100
+++ new/kiwi-9.15.2/test/unit/runtime_config_test.py    2018-05-15 
14:43:16.000000000 +0200
@@ -38,6 +38,30 @@
             assert runtime_config.get_obs_download_server_url() == \
                 Defaults.get_obs_download_server_url()
 
+    def test_get_container_compression(self):
+        assert self.runtime_config.get_container_compression() is None
+
+    def test_get_container_compression_default(self):
+        with patch.dict('os.environ', {'HOME': './'}):
+            runtime_config = RuntimeConfig()
+            assert runtime_config.get_container_compression() == 'xz'
+
+    @patch.object(RuntimeConfig, '_get_attribute')
+    @patch('kiwi.logger.log.warning')
+    def test_get_container_compression_invalid(
+        self, mock_warning, mock_get_attribute
+    ):
+        mock_get_attribute.return_value = 'foo'
+        assert self.runtime_config.get_container_compression() == 'xz'
+        mock_warning.assert_called_once_with(
+            'Skipping invalid container compression: foo'
+        )
+
+    @patch.object(RuntimeConfig, '_get_attribute')
+    def test_get_container_compression_xz(self, mock_get_attribute):
+        mock_get_attribute.return_value = 'xz'
+        assert self.runtime_config.get_container_compression() == 'xz'
+
     def test_get_iso_tool_category(self):
         assert self.runtime_config.get_iso_tool_category() == 'cdrtools'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kiwi-9.15.1/test/unit/system_root_import_docker_test.py 
new/kiwi-9.15.2/test/unit/system_root_import_docker_test.py
--- old/kiwi-9.15.1/test/unit/system_root_import_docker_test.py 2017-10-25 
12:23:42.000000000 +0200
+++ new/kiwi-9.15.2/test/unit/system_root_import_docker_test.py 2018-05-15 
14:43:16.000000000 +0200
@@ -6,20 +6,22 @@
 
 
 class TestRootImportDocker(object):
-
     @patch('os.path.exists')
     @patch('kiwi.command.Command.run')
     @patch('kiwi.system.root_import.docker.Compress')
     @patch('kiwi.system.root_import.oci.mkdtemp')
     @patch('kiwi.system.uri.Defaults.is_buildservice_worker')
-    def test_extract_oci_image(
+    def test_extract_compressed_oci_image(
         self, mock_buildservice, mock_mkdtemp, mock_compress,
         mock_run, mock_exists
     ):
         mock_buildservice.return_value = False
         mock_exists.return_value = True
         uncompress = mock.Mock()
-        uncompress.uncompressed_filename = 'tmp_uncompressed'
+        uncompress.get_format = mock.Mock(
+            return_value='xz'
+        )
+        uncompress.uncompressed_filename = 'tmp_uncompressed.tar'
         mock_compress.return_value = uncompress
         tmpdirs = ['kiwi_unpack_dir', 'kiwi_layout_dir']
 
@@ -36,7 +38,41 @@
         mock_compress.assert_called_once_with('/image.tar.xz')
         uncompress.uncompress.assert_called_once_with(True)
         mock_run.assert_called_once_with([
-            'skopeo', 'copy', 'docker-archive:tmp_uncompressed',
+            'skopeo', 'copy', 'docker-archive:tmp_uncompressed.tar',
+            'oci:kiwi_layout_dir:base_layer'
+        ])
+
+    @patch('os.path.exists')
+    @patch('kiwi.command.Command.run')
+    @patch('kiwi.system.root_import.docker.Compress')
+    @patch('kiwi.system.root_import.oci.mkdtemp')
+    @patch('kiwi.system.uri.Defaults.is_buildservice_worker')
+    def test_extract_uncompressed_oci_image(
+        self, mock_buildservice, mock_mkdtemp, mock_compress,
+        mock_run, mock_exists
+    ):
+        mock_buildservice.return_value = False
+        mock_exists.return_value = True
+        uncompress = mock.Mock()
+        uncompress.get_format = mock.Mock(
+            return_value=None
+        )
+        mock_compress.return_value = uncompress
+        tmpdirs = ['kiwi_unpack_dir', 'kiwi_layout_dir']
+
+        def call_mkdtemp(prefix):
+            return tmpdirs.pop()
+
+        mock_mkdtemp.side_effect = call_mkdtemp
+
+        with patch.dict('os.environ', {'HOME': '../data'}):
+            docker_import = RootImportDocker(
+                'root_dir', Uri('file:///image.tar')
+            )
+        docker_import.extract_oci_image()
+        mock_compress.assert_called_once_with('/image.tar')
+        mock_run.assert_called_once_with([
+            'skopeo', 'copy', 'docker-archive:/image.tar',
             'oci:kiwi_layout_dir:base_layer'
         ])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi-9.15.1/test/unit/utils_compress_test.py 
new/kiwi-9.15.2/test/unit/utils_compress_test.py
--- old/kiwi-9.15.1/test/unit/utils_compress_test.py    2017-09-15 
10:37:16.000000000 +0200
+++ new/kiwi-9.15.2/test/unit/utils_compress_test.py    2018-05-15 
14:43:16.000000000 +0200
@@ -23,7 +23,7 @@
 
     @patch('kiwi.command.Command.run')
     def test_xz(self, mock_command):
-        self.compress.xz()
+        assert self.compress.xz() == 'some-file.xz'
         mock_command.assert_called_once_with(
             [
                 'xz', '-f', '--threads=0', '--keep',
@@ -34,7 +34,7 @@
 
     @patch('kiwi.command.Command.run')
     def test_xz_with_custom_options(self, mock_command):
-        self.compress.xz(options=['foo', 'bar'])
+        assert self.compress.xz(options=['foo', 'bar']) == 'some-file.xz'
         mock_command.assert_called_once_with(
             [
                 'xz', '-f', 'foo', 'bar', '--keep',
@@ -45,7 +45,7 @@
 
     @patch('kiwi.command.Command.run')
     def test_gzip(self, mock_command):
-        self.compress.gzip()
+        assert self.compress.gzip() == 'some-file.gz'
         mock_command.assert_called_once_with(
             ['gzip', '-f', '-9', '--keep', 'some-file']
         )


Reply via email to