Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
Name: kiwi-systemdeps-containers-wsl | Distribution: SUSE Linux Framework One |
Version: 10.1.16 | Vendor: SUSE LLC <https://www.suse.com/> |
Release: slfo.1.1.2 | Build date: Wed Oct 23 12:21:32 2024 |
Group: System/Management | Build host: reproducible |
Size: 0 | Source RPM: python-kiwi-10.1.16-slfo.1.1.2.src.rpm |
Packager: https://www.suse.com/ | |
Url: https://github.com/OSInside/kiwi | |
Summary: KIWI - host requirements for WSL container images |
Host setup helper to pull in all packages required/useful on the build host to build WSL container images
GPL-3.0-or-later
* Wed Oct 23 2024 marcus.schaefer@gmail.com - Bump version: 10.1.15 → 10.1.16 * Wed Oct 23 2024 marcus.schaefer@gmail.com - Fix erofs requires in spec erofs-utils for SUSE only exists in Tumbleweed. The former conditon would also add the requirement for ALP and SLFO which is wrong. This commit fixes it * Tue Oct 22 2024 marcus.schaefer@gmail.com - Add vagrantconfig rule for vagrant format If the format="vagrant" attribute is set, a vagrantconfig section becomes mandatory. This commit enforces this rule on the schema. This Fixes #2666 * Mon Oct 21 2024 marcus.schaefer@gmail.com - Bump version: 10.1.14 → 10.1.15 * Thu Oct 17 2024 marcus.schaefer@gmail.com - Fixed sphinx_rtd_theme setup Delete obsolete display_version attribute * Thu Oct 17 2024 marcus.schaefer@gmail.com - Evaluate eficsm everywhere Fixed _supports_bios_modules() to take an eventually provided eficsm setup into account. The grub config still searches for i386 grub modules even if eficsm="false" is set. * Thu Oct 17 2024 marcus.schaefer@gmail.com - Fixed debian bootstrap script calls Run scripts as commands with their native shebang and not through bash. Not all debian package scripts uses bash, some of them uses sh which can be a link to dash or other interpreters. This Fixes #2660 * Thu Oct 17 2024 marcus.schaefer@gmail.com - Update TW integration tests The package x86info was dropped from TW * Wed Oct 16 2024 dcermak@suse.com - Turn DiskFormat into an ordinary class - it does not need to be an abstract base class - use f-strings where applicable instead of format() - change return type of _custom_args_for_format from list to tuple * Tue Oct 15 2024 marcus.schaefer@gmail.com - Add new containers section Allow to specify references to OCI containers in the image description like in the following example: <containers source="registry.suse.com" backend="podman"> <container name="some" tag="some" path="/some/path"/> </containers> During the kiwi process the containers are fetched into a temporary location and a systemd service is configured to one time load the containers into the local registry at first boot of the system. This Fixes #2663 * Fri Oct 04 2024 marcus.schaefer@gmail.com - Bump version: 10.1.13 → 10.1.14 * Fri Oct 04 2024 marcus.schaefer@gmail.com - Revert "Install usrmerge for Debian integration test" This reverts commit 95ac861741f14c4f35611c16328384c18e53dcfb. Solution needs to be provided in code * Fri Oct 04 2024 marcus.schaefer@gmail.com - Install usrmerge for Debian integration test * Mon Sep 30 2024 marcus.schaefer@gmail.com - Support older apt versions for bootstrap This Fixes #2660 * Fri Sep 27 2024 marcus.schaefer@gmail.com - Run package scripts in apt bootstrap phase The bootstrap procedure based on apt only runs a manual collection of package scripts. This commit refactors the code that unpacks the bootstrap packages to a python implementation and adds a method to run the bootstrap scripts from all packages resolved by apt. * Thu Sep 26 2024 marcus.schaefer@gmail.com - Bump version: 10.1.12 → 10.1.13 * Thu Sep 26 2024 marcus.schaefer@gmail.com - Fix bundle extension for vagrant type When bundling result files that uses a vagrant type, kiwi creates them with the extension .vagrant.virtualbox.box or .vagrant.libvirt.box. The bundler code renames them using only the .box suffix which is too short as it is missing the subformat information. This commit fixes it and keeps this information in the result bundle file name. This Fixes #2656 * Thu Sep 26 2024 marcus.schaefer@gmail.com - Use simple quotas (squota) for volumes * Wed Sep 25 2024 marcus.schaefer@gmail.com - Add quota attribute to volume section Allow to set quota per volume for the btrfs filesystem This Fixes #2651 * Tue Sep 24 2024 alyssa@rosenzweig.io - Fix globbing with exclude with regex This fixes a collection of bugs when producing erofs images. On one hand, this ensures that an exclude of `/sys` doesn't accidentally match `/lib/libsystemd.so`, only `/sys/whatever`. On the other hand, this ensures that `/dev/*` does match `/dev/vda` and not just `/dev///////////`. This fixes libsystemd.so getting dropped in Kiwi-built FEX images. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> * Tue Sep 24 2024 alyssa@rosenzweig.io - Honour custom exclude for filesystem builds All other call sites honour the custom exclude file, it's just this one that needs to be fixed. This unblocks use of Kiwi for generating FEX rootfs. Closes: #2652 Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> * Mon Sep 23 2024 isaac@is.having.coffee - test: storage: update clone_device tests with new block size Signed-off-by: Isaac True <isaac@is.having.coffee> * Fri Sep 20 2024 isaac@is.having.coffee - storage: clone_device: increase dd block size Increasing the block size used for dd reduces the time needed to clone a device. Signed-off-by: Isaac True <isaac@is.having.coffee> * Tue Sep 17 2024 marcus.schaefer@gmail.com - Bump version: 10.1.11 → 10.1.12 * Tue Sep 17 2024 marcus.schaefer@gmail.com - Add missing erofscompression validation In the filesystem builder I forgot to evaluate the erofscompression attribute. This Fixes #2647 * Mon Sep 16 2024 marcus.schaefer@gmail.com - Include PI and comments in XSL stylesheets So far comments and processing instructions (PI) were ignored when applying the XSL stylesheets. This commit updates all stylesheets to take them into account * Fri Sep 13 2024 marcus.schaefer@gmail.com - Bump version: 10.1.10 → 10.1.11 * Fri Sep 13 2024 marcus.schaefer@gmail.com - doc: Add login information test build test images * Fri Sep 13 2024 marcus.schaefer@gmail.com - Bump version: 10.1.9 → 10.1.10 * Thu Sep 12 2024 msuchanek@suse.de - bootloader: Fix up ppc64 bootinfo again To make the code look pretty extra newline is inserted at the start of bootinfo file. This appears to break boot on Power9 PowerVM LPARs. * Thu Sep 12 2024 marcus.schaefer@gmail.com - Add support for erofs erofs is an alternative readonly filesystem that can be used as alternative to squashfs. This Fixes #2633 * Thu Sep 12 2024 marcus.schaefer@gmail.com - Fixed enclave integration test The SELinux policy of Fedora Rawhide when running completely in an initrd is not suitable to let the system boot up. Thus the current solution is to boot in permissive mode. A better solution for the future would probably be a selinux policy for enclaves * Wed Sep 11 2024 marcus.schaefer@gmail.com - limit eif_build requires to fedora >= 42 * Wed Sep 11 2024 marcus.schaefer@gmail.com - Bump version: 10.1.8 → 10.1.9 * Wed Sep 11 2024 marcus.schaefer@gmail.com - Added sshd to nitro-enclave integration test * Wed Sep 11 2024 marcus.schaefer@gmail.com - Fixed container sync options Do not exclude/filter any security/xattr capabilities. * Wed Sep 11 2024 marcus.schaefer@gmail.com - Update container integration test Add getcap to check on filesystem capabilities * Wed Sep 11 2024 marcus.schaefer@gmail.com - Add new build type provides for enclave Add a provides tag (read by the open buildservice) for the new enclave builder. Also add a recommends to eif_builder in the systemdeps-core meta package * Tue Sep 10 2024 marcus.schaefer@gmail.com - Update enclave documentation Fixup repo setup in the build documentation * Tue Sep 10 2024 marcus.schaefer@gmail.com - Bump version: 10.1.7 → 10.1.8 * Tue Sep 10 2024 marcus.schaefer@gmail.com - Fixed enclave documentation Path to the build test was not correct * Tue Sep 10 2024 marcus.schaefer@gmail.com - Update test-image-nitro-enclave package list Fixup package list to match Fedora rawhide * Tue Sep 10 2024 marcus.schaefer@gmail.com - Move test-image-nitro-enclave to rawhide * Tue Sep 10 2024 msuchanek@suse.de - Fix ppc64 chrp bootinfo generation * Mon Sep 09 2024 marcus.schaefer@gmail.com - Fixed documentation header Fixed double H1 headers from the boxbuild tweaks chapter. * Mon Sep 09 2024 marcus.schaefer@gmail.com - Bump version: 10.1.6 → 10.1.7 * Mon Sep 09 2024 marcus.schaefer@gmail.com - Move EXEC log message to the right place The log information of the command execution was not printed directly before the actual command invocation. There are other actions after the log information (e.g Path.which) which itself produce log information prior the real subprocess execution. This is very misleading when reading the log file and fixed in this commit. * Mon Sep 09 2024 marcus.schaefer@gmail.com - Add support for architectures in deb source file When apt resolves packages on a multiarch repo it can happen that dependencies for packages from other architectures are pulled into the solver process but are not provided by any repository. To overcome this behavior the repository can be setup to serve packages only for a specified architecture or list of architectures. This is related to OSInside/kiwi-descriptions#102 * Fri Sep 06 2024 marcus.schaefer@gmail.com - Bump version: 10.1.5 → 10.1.6 * Thu Sep 05 2024 16296930+kastakhov@users.noreply.github.com - add allowExtraConfig and exportFlags to ovftool options Add allowExtraConfig and exportFlags to ovftool options * Thu Sep 05 2024 marcus.schaefer@gmail.com - Bump version: 10.1.4 → 10.1.5 * Wed Sep 04 2024 wfeldt@opensuse.org - create EFI/BOOT only if UEFI boot is intended * Wed Sep 04 2024 wfeldt@opensuse.org - Fix boot support for ISO media on ppc64 add CHRP boot support for ppc64 and add xorriso option to avoid file name reduction to MS-DOS compatible 8.3 format * Tue Sep 03 2024 marcus.schaefer@gmail.com - Fix initrd permissions kiwi stored the initrd for ISO images as 600 which might be too restrictive. This commit makes sure the initrd is stored as 644 and Fixes bsc#1229257 * Tue Sep 03 2024 marcus.schaefer@gmail.com - Fixed ramdisk size setup For setting up the brd rd_size option kiwi creates 99-brd.conf used at load time of the kernel brd driver. The location for the conf file is set to /etc/modprobe.d/ However, in newer versions the location has changed to /usr/lib/modprobe.d/ and /etc/modprobe.d is no longer expected to exist. This commit makes sure /etc/modprobe.d is created if not present. * Tue Sep 03 2024 marcus.schaefer@gmail.com - Bump version: 10.1.3 → 10.1.4 * Mon Sep 02 2024 16296930+kastakhov@users.noreply.github.com - Add note about guestOS values for vmware ovftools. * Mon Sep 02 2024 16296930+kastakhov@users.noreply.github.com - Add note about guestOS values for vmware platform. * Mon Sep 02 2024 marcus.schaefer@gmail.com - Fixed resize of dos table type on s390 On s390, parted is used to detect the partition table type. In contrast to blkid the name for DOS tables is reported as 'msdos' and not 'dos' which impacts several conditions in the kiwi initrd code which checks for 'dos'. This commit fixes the get_partition_table_type() method to return a consistent table name for DOS tables. This Fixes bsc#1228729 * Mon Sep 02 2024 marcus.schaefer@gmail.com - Revert "remove dependency on /usr/bin/python" This reverts commit 15b450188483b567ca10bb459bf50ed90e905bb7. The change provided here entirely broke kiwi in OBS. With this patch applied every image build in OBS fails with the following message: 'line 1: /usr/sbin/kiwi: No such file or directory' * Mon Sep 02 2024 marcus.schaefer@gmail.com - Bump version: 10.1.2 → 10.1.3 * Sun Sep 01 2024 marcus.schaefer@gmail.com - Fix bundle extension for archive types When bundling result files that uses an archive type like tbz or docker, kiwi creates them with the extension tar.xz/tar.gz The bundler code only uses the extension from the last tuple in a "." split which is wrong for "tar." filenames. This commit adds an exception to the prefix rule for this output filenames and Fixes #2628 * Sun Sep 01 2024 marcus.schaefer@gmail.com - Fix ImageSystem mount procedure The mount() method did not take custom partitions into account. This commit fixes it. This Fixes #2619 * Tue Aug 27 2024 pgajdos@suse.cz - remove dependency on /usr/bin/python * Sun Aug 25 2024 ngompa@velocitylimitless.com - Add support for isomd5sum for tagging iso files The isomd5sum tool suite is used and available on all supported distributions except SUSE distributions, and is necessary to produce conformant ISOs for most Linux distributions. This change adds support for isomd5sum tool suite for kiwi, though it does not extend the kiwi-live dracut module to use it. The upstream dracut dmsquash-live module must be used instead. Co-authored-by: Dan Čermák <dcermak@suse.com> * Sat Aug 24 2024 ngompa@velocitylimitless.com - kiwi/builder/live: Log the correct value for Application ID Since it is now possible to set a custom application ID, we want to see this when it is being used for the image. * Sat Aug 24 2024 ngompa@velocitylimitless.com - kiwi/builder/live: Clean up leftover dracut configuration file The existence of this file breaks installers on live media that sync the full filesystem to disk and are not aware of this configuration before generating the target system initramfs. * Fri Aug 23 2024 ngompa@velocitylimitless.com - Allow string versions and test "word" versions There are descriptions out in the wild that use "non-numeric" versions in their descriptions, particularly without separators for splitting. This change switches all of this to strings rather than assuming numbers and gracefully handles the single word case. * Sat Aug 17 2024 holdenrf2021@gmail.com - Add documentation for boxbuild tweaks * Fri Aug 16 2024 marcus.schaefer@gmail.com - Fixed wrong log level on --logfile When using --logfile, the log generated there matches the stdout log (which without --debug, does not include any debug info). This is in contrast to the automatically generated one in the output directory, which always does and also not following the way how it is documented. This Fixes #2503 * Mon Aug 12 2024 marcus.schaefer@gmail.com - Fixed arch flag for namedCollection The arch flag in a namedCollection was not taken into account. This commit fixes this and also makes sure the result information is sorted and unique like we have it for the package lists. This Fixes #2600 * Fri Aug 09 2024 marcus.schaefer@gmail.com - Fix handling of zipl.conf in plain zipl bootloader When using the plain zipl bootloader kiwi created a /etc/zipl.conf file. However, this file was only useful during image build as it points to a loop target device and geometry but does not represent a proper config file to be used in the running system. In addition the different distributors provides their own version and layout of the zipl.conf to be used inside of the system and with their respective tools. Thus this commit changes the way how kiwi operates in a way that the zipl.conf used in the initial image only exists during the image build process. An eventual present /etc/zipl.conf will not be touched by kiwi. This Fixes #2597 * Thu Aug 08 2024 marcus.schaefer@gmail.com - Bump version: 10.1.1 → 10.1.2 * Thu Aug 08 2024 marcus.schaefer@gmail.com - Improve error reporting for remote deployment Add new method called show_log_and_quit which displays the written error log file as a file box to the user * Thu Aug 08 2024 marcus.schaefer@gmail.com - Update test-image-orthos integration test Update the test such that you can also build it locally. Change the remote installation target to be a ramdisk for easy testing of remote deployments * Thu Aug 08 2024 marcus.schaefer@gmail.com - Setup default minimum volume size per filesystem The former method provided a static value but there are huge differences for the minimum size requirement of a filesystem. For example extX is fine with 30MB whereas XFS requires 300MB. This commit adds a more dynamic default value based on the used filesystem. * Wed Aug 07 2024 marcus.schaefer@gmail.com - Increase default volume size So far 30MB was set as default volume size which is by far too small for a number of filesystems, e.g btrfs and also XFS. This commit increases the default volume size such that all modern filesystems builds if the default volume size is used. * Wed Aug 07 2024 marcus.schaefer@gmail.com - Update test-image-raid Apart from testing raid this integration test also tests a certain LVM volume setup. The test has been updated to use the btrfs filesystem because it has the most strict size requirements. * Tue Aug 06 2024 dcermak@suse.com - Use shutil.which for Path.which * Tue Aug 06 2024 dcermak@suse.com - Drop Path.remove & Path.rename Both methods were only used in one place each and it makes much more sense to use the pathlib builtin methods instead * Tue Aug 06 2024 dcermak@suse.com - Replace Path.create implementation with pathlib builtin * Tue Aug 06 2024 marcus.schaefer@gmail.com - Bump version: 10.1.0 → 10.1.1 * Mon Aug 05 2024 marcus.schaefer@gmail.com - Mandatory package scripts for Debian bootstrap Make sure to run some mandatory package pre/post scripts such that settings like /etc/passwd, a root user, etc.. exists. This action can also be done in post_bootstrap.sh but I think it's better to do this in the core code * Mon Aug 05 2024 marcus.schaefer@gmail.com - Bump version: 10.0.28 → 10.1.0 * Mon Aug 05 2024 marcus.schaefer@gmail.com - kiwi no longer uses debootstrap For building Debian based images we used debootstrap to bootstrap an empty root until apt-get could be used to complete the job. This has now changed such hat apt-get is also used for bootstrapping a new system. The concept and also potential alternatives to the way kiwi bootstraps Debian based systems can be found here: * https://osinside.github.io/kiwi/working_with_images/build_without_debianbootstrap.html Due to the drop of debootstrap it might happen that package lists of existing image descriptions needs to be extended with packages that were formerly pulled in by debootstrap but did not get properly pulled in with the new apt based bootstrap. As reference please check out the integration tests from here: * https://github.com/OSInside/kiwi/tree/main/build-tests/x86/ubuntu * https://github.com/OSInside/kiwi/tree/main/build-tests/x86/debian Thanks * Mon Aug 05 2024 marcus.schaefer@gmail.com - Bump version: 10.0.27 → 10.0.28 * Sat Aug 03 2024 marcus.schaefer@gmail.com - Update documentation kiwi no longer uses debootstrap * Fri Aug 02 2024 marcus.schaefer@gmail.com - Fix test_process_result_bundle_as_rpm * Fri Aug 02 2024 marcus.schaefer@gmail.com - Fix Debian/Ubuntu integration tests Remove package hacks for debootstrap, explicitly add required packages and or configurations. * Fri Aug 02 2024 marcus.schaefer@gmail.com - Drop types-pkg_resources Got removed from PyPI * Wed Jul 31 2024 marcus.schaefer@gmail.com - Fix test_process_result_bundle_as_rpm os.path.basename was called on a MagicMock object which sometimes confused pytest * Wed Jul 31 2024 marcus.schaefer@gmail.com - Fix kiwi-repart restrictions The kiwi repart dracut module reads a profile file and if it does not exists it dies in the initrd. However, that profile file is not mandatory for the main resize functionality. Thus this commit turns this into a warning message. In addition the module-setup for 90kiwi-repart makes sure to include the required and optional profile files. This Fixes bsc#1228118 * Tue Jul 30 2024 marcus.schaefer@gmail.com - Do not exclude the .profile env file by default kiwi's initrd modules read a .profile file which gets included into the initrd produced at build time. To allow rebuild of a host-only initrd from the booted system this information should be present such that it is possible to re-use kiwi initrd code. * Tue Jul 30 2024 marcus.schaefer@gmail.com - Get rid of debootstrap Replace debootstrap with an apt-get based pre-download of packages followed by a dpkg-deb extraction. This Fixes #2599 * Tue Jul 30 2024 marcus.schaefer@gmail.com - Bump version: 10.0.26 → 10.0.27 * Tue Jul 30 2024 fvogt@suse.de - Fix dracut-interactive with systemd 256 With systemd 256, /usr (and thus also /bin/) is read-only in the initrd. Move dracut-interactive and its .service into /run instead. * Sun Jul 21 2024 marcus.schaefer@gmail.com - Bump version: 10.0.25 → 10.0.26 * Fri Jul 19 2024 dpopov@suse.com - Revise scripts_testing.rst * Fri Jul 19 2024 dpopov@suse.com - Revise schema_extensions.rst * Wed Jul 17 2024 marcus.schaefer@gmail.com - Pass kernel cmdline to agama In the agama integration test make sure to pass along the kernel boot parameters to allow controlling the behavior of agama better * Mon Jul 15 2024 marcus.schaefer@gmail.com - Add <file> directive to incorporate custom files Usually custom files are managed by placing them as overlay files or archives. However, overlay files must be structured inside of a root/ subdirectory and archive files are binary data. It is therefore not straight forward to just reference one or more files as source files to the image description to be placed into the image. This commit adds a new <file> element which allows to do this. This Fixes #1953 * Sun Jul 14 2024 marcus.schaefer@gmail.com - Bump version: 10.0.24 → 10.0.25 * Fri Jul 12 2024 marcus.schaefer@gmail.com - Fix mocking of test_process_result_bundle_as_rpm * Fri Jul 12 2024 marcus.schaefer@gmail.com - Fixed logging behavior of Compress::get_format The get_format() method allows to check which compression format a given input stream has. This is done by calling the supported compression tools in a row and let them check if they can deal with the provided data or not. As a result error messages are logged for streams that some tool doesn't understand. However, those error messages are no errors and only the result of the checking. This information in the kiwi log file is confusing and several users already complained when they see information like: EXEC: Failed with stderr: /usr/bin/xz: ...: File format not recognized This commit changes how the compression tooling is called in a way that no exception is raised (which leads to the above error message) but the result returncode is used to decide on the success or error of the respective compression tooling. * Fri Jul 12 2024 marcus.schaefer@gmail.com - Allow to set custom ISO Application ID Add new <type ... application_id="..."/> attribute to be set in the ISO header main block. The application ID was used as identifier in the legacy initrd code from former kiwi versions. Because of this there is still the compat layer which sets an App ID as MBR identifier string unless the new application_id overwrites it. This Fixes #1810 * Fri Jul 12 2024 marcus.schaefer@gmail.com - Bump version: 10.0.23 → 10.0.24 * Thu Jul 11 2024 marcus.schaefer@gmail.com - Added integration test for SUSE agama installer This integration test builds a self-install ISO image which drops the SUSE Agama installer into a ramdisk for performing an interactive installation procedure to test Agama * Thu Jul 11 2024 marcus.schaefer@gmail.com - Add --set-type-attr and --set-release-version Allow to set/overwrite type section attributes via the cmdline. Allow to set/add the release-version element via the cmdline. This Fixes #2478 and Fixes #2588 * Wed Jul 10 2024 marcus.schaefer@gmail.com - Update integration test for eficsm Update the type of the Secure profile of the live image integration test as well as the type of the simple-disk test to make use of the eficsm="false" attribute to switch off CSM mode and test an EFI only layout. * Wed Jul 10 2024 marcus.schaefer@gmail.com - Add new eficsm type attribute Allow to produce EFI/UEFI images without hybrid CSM capabilities. This Fixes #2407 * Wed Jul 10 2024 dpopov@suse.com - kiwi_plugin_architecture.rst * Wed Jul 10 2024 dpopov@suse.com - Revise kiwi_from_python.rst * Wed Jul 10 2024 marcus.schaefer@gmail.com - Wait for loop device detach to complete Detaching a loop device via 'losetup -d' is an async operation. Once the command returns the loop can still be associated with the block special. Therefore this commit waits until the block device got released or a timeout is hit. This Fixes #2580 * Tue Jul 09 2024 marcus.schaefer@gmail.com - Update requires for kiwi-systemdeps-disk-images On Tumbleweed several changes caused tools like strings or the codepage for mtools to be missing in a standard installation. For building disk images especially EFI capable ones with vendor information kiwi needs the above tool. This commit adds the packages providing them on Tumbleweed to the meta systemdeps for disk images. This Fixes #2585 * Mon Jul 08 2024 marcus.schaefer@gmail.com - Supplements are not understood by Debian/Ubuntu * Fri Jul 05 2024 marcus.schaefer@gmail.com - Add new builder for enclaves Add new EnclaveBuilder class which allows to build initrd-only image types. The first enclave implementation covers aws-nitro images produced via the eif_build tooling. * Thu Jul 04 2024 marcus.schaefer@gmail.com - Split out bash completion into a sub-package Per review of the SUSE packaging team we should split out the bash completion into its own sub-package to give users better control over the completion feature. * Thu Jul 04 2024 marcus.schaefer@gmail.com - Bump version: 10.0.22 → 10.0.23 * Thu Jul 04 2024 neal@gompa.dev - package: Add fully qualified provides for python3-kiwi in spec On SUSE distributions, currently the expectation is that packages built against the Python interpreter should have fully qualified names in the form of pythonXY-<modulename>. Additionally, all other Linux distributions prefer something similar in the form of pythonX.Y-<modulename>. This ensures we have those names so that distribution dependency generation works as expected. * Thu Jul 04 2024 marcus.schaefer@gmail.com - Add support for arch selector on volumes The optional <volume ... arch=""/> attribute allows to create the volume only if it matches the specified host architecture. Multiple architecture names can be specified as comma separated list. * Wed Jun 26 2024 marcus.schaefer@gmail.com - Add rd.kiwi.oem.force_resize boot option Forces the disk resize process on an OEM disk image. If set, no sanity check for unpartitioned/free space is performed and also an eventually configured <oem-resize-once> configuration from the image description will not be taken into account. This Fixes bsc#1224389 * Tue Jun 25 2024 marcus.schaefer@gmail.com - Fixed leap integration tests For whatever reason procps is not longer pulled in by the core dependencies. Thus we have to explicitly request it * Thu Jun 20 2024 marcus.schaefer@gmail.com - Fix potential race condition in loop detach The call to 'losetup -d' is in fact an async operation. Once the command returns the loop can still be associated with the former file because it gets lazy unbound and releases later. Prior re-use of the same loop device it is therefore required to wait until the kernel event queue is processed. * Wed Jun 19 2024 marcus.schaefer@gmail.com - Fixed repository include to image with dnf When specifying a repository element with imageinclude="true", kiwi permanently adds the repo file inside of the image. The distribution standard path is used to store the repo file in this case. With dnf a package manager exists that is primarily used on Fedora and RHEL systems. Thus the standard path for the repo files is set to "/etc/yum.repos.d". However, dnf can also be used for other rpm based distributions e.g SUSE. On such a system the default path does not exist or is different because another package manager is the default. This commit makes sure that the expected path is created prior adding any repo files. * Tue Jun 18 2024 marcus.schaefer@gmail.com - Bump version: 10.0.21 → 10.0.22 * Mon Jun 17 2024 marcus.schaefer@gmail.com - Fixed selinux labels for boot files When kiwi calls the bootloader config and installation modules several files gets created as unlabeled_t because the labeling happened earlier. This commit ensures that setfiles gets called after BootLoaderConfig and/or BootLoaderInstall has done its job. This Fixes #2568 * Mon Jun 17 2024 marcus.schaefer@gmail.com - Add bash to package requirements If there are script evaluations that does not specify an interpreter, kiwi uses bash for it. The same applies for sub-process invocations using shell pipelines. Thus the bash shell is a required tool for kiwi under certain circumstances. Further details in Issue #2567 * Wed Jun 12 2024 pavel@zhukoff.net - test-image-live: add shadow package Fixes: KiwiCommandError: chroot: stderr: /usr/bin/chroot: failed to run command ‘usermod’: No such file or directory * Tue Jun 11 2024 fvogt@suse.de - Fix displaying the image verification failure dialog Kiwi must wait for the previous dialog to finish before showing another one as it's the same systemd service behind it. * Mon Jun 10 2024 marcus.schaefer@gmail.com - Allow to customize the path of the isoscan cowfile Added rd.live.cowfile.path option to specify the cowfile at any path below the isoscan-loop-mount. This Fixes #2554 * Mon Jun 10 2024 marcus.schaefer@gmail.com - Better error handling on grub vendor dir lookup The strings command is used to lookup the in-efi binary encoded vendor path. However, if the strings or bash command is not availabe on the build host, the command silently failed and moved into the standard (non vendored) EFI boot path. This can lead to a broken boot for those distros and image targets which requires a vendor directory and should lead to an error message instead of a successful image build. This Fixes #2565 * Mon Jun 10 2024 marcus.schaefer@gmail.com - Fixed profile variable settings for preferences It's allowed to have multiple preferences sections. If those sections provides the same value multiple times, e.g keytable, the last one in the row will win. The setup of the variables in .profile environment file for the preferences elements is not following this rule and used the first section not the last. This commit fixes the profile variables to match the actual setup and Fixes #2560 * Thu Jun 06 2024 dpopov@suse.com - Revise users.rst * Thu Jun 06 2024 dpopov@suse.com - REvise systemdeps.rst * Thu Jun 06 2024 dpopov@suse.com - Revise shell_scripts.rst * Thu Jun 06 2024 marcus.schaefer@gmail.com - Add initrd boot option rd.kiwi.allow_plymouth By default kiwi stops plymouth if present and active in the initrd. Setting rd.kiwi.allow_plymouth will keep plymouth active in the initrd including all effects that might have to the available consoles. This is related to bsc#1214824 * Thu Jun 06 2024 marcus.schaefer@gmail.com - Drop use of obsolete tool isconsole isconsole was provided with the dropped kiwi-tools package. It was a simple C application that checked the capabilities of the current console. In the context of fbiterm it was just used to provide proper error messages which fbiterm on its own did not show. As also fbiterm is on its way to become obsolete and isconsole is already no longer present, it's ok to just drop that extra check and therefore keep the fbiterm mode functional if one manages to include fbiterm and its fonts into the initrd * Tue Jun 04 2024 marcus.schaefer@gmail.com - Bump version: 10.0.20 → 10.0.21 * Mon Jun 03 2024 marcus.schaefer@gmail.com - Add missing write_meta_data method to BLS base The standard bootloader interface class provided a method named write_meta_data which is expected to be implemented in the specialized bootloader implementation. For BLS bootloaders this method was missing in the BLS base class. write_meta_data can provide additional cmdline options for booting. If not covered some boot options might be missing. This patch fixes it * Mon Jun 03 2024 marcus.schaefer@gmail.com - Fix TW integration test to build outside OBS * Mon Jun 03 2024 marcus.schaefer@gmail.com - Make sure BootLoaderConfig fixes are effective The BootLoaderConfigGrub2 class has methods to fix the grub-mkconfig generated files. It does that by mounting the system and changing the respective files after the mkconfig call. However, after the change the class instance stays open in combination with BootLoaderInstallGrub2 instance which itself under certain circumstances also mounts the system to call grub-install. At the time grub-install is called it cannot be guaranteed that all changes has been written unless an explicit umount in the BootLoaderConfigGrub2 class instance happened. This commit address the potential race condition. * Mon Jun 03 2024 marcus.schaefer@gmail.com - Bump version: 10.0.19 → 10.0.20 * Mon Jun 03 2024 marcus.schaefer@gmail.com - Update rawhide integration test Use new arch attribute for testing in the repository element of the rawhide/test-image-live-disk integration test. * Sat Jun 01 2024 marcus.schaefer@gmail.com - Add support for arch attr in repository element Allow to provide different repository sections per architecture * Fri May 31 2024 marcus.schaefer@gmail.com - Add --list-profiles to image info Allow to list available profiles from the processed image description * Thu May 30 2024 marcus.schaefer@gmail.com - Bump version: 10.0.18 → 10.0.19 * Wed May 29 2024 neal@gompa.dev - package: Always include patches and number all sources and patches This ensures that stuff is applied reliably and all sources and patches are included as expected. Then the added kiwi-revert-bls-default-for-suse.patch is applied conditionally for SUSE distributions. * Wed May 29 2024 marcus.schaefer@gmail.com - Bump version: 10.0.17 → 10.0.18 * Wed May 29 2024 aplanas@suse.com - package: adjust openSUSE patch * Wed May 29 2024 marcus.schaefer@gmail.com - Bump version: 10.0.16 → 10.0.17 * Wed May 29 2024 marcus.schaefer@gmail.com - Fixed box plugin documentation The provided example was no longer correct according to changes on the image description referenced in the example * Fri May 17 2024 marcus.schaefer@gmail.com - Add procps to Tumbleweed integration tests * Thu May 16 2024 marcus.schaefer@gmail.com - Add procps to Tumbleweed integration tests * Sun May 12 2024 marcus.schaefer@gmail.com - Fix sdist upstream tarball contents The .virtualenv.dev-requirements.txt file is referenced by tox.ini but not put into the sdist tarball and therefore missing in the pypi upstream data. * Fri May 10 2024 marcus.schaefer@gmail.com - Drop use of obsolete pkg_resources As documented in https://setuptools.pypa.io/en/latest/pkg_resources.html the use of pkg_resources is obsolete and will cause issues. So happened on Debian unstable. This Fixes #2548 * Thu May 09 2024 awilliam@redhat.com - RepositoryDnf5: correct defaults, set system_cachedir The "defaults" in `use_default_location` here are the dnf4 defaults, not the dnf5 defaults, so let's update them. Also, for dnf5, we need to set `system_cachedir` instead of `cachedir` - see https://dnf5.readthedocs.io/en/latest/misc/caching.7.html , `system_cachedir` is the cache location used when running as root, `cachedir` is the cache location used when running as a regular user. Signed-off-by: Adam Williamson <awilliam@redhat.com> * Wed May 08 2024 marcus.schaefer@gmail.com - Bump version: 10.0.15 → 10.0.16 * Wed May 08 2024 marcus.schaefer@gmail.com - poetry build doesn't like symlinks The sdist tarball produced by poetry build does not include all files and skipped symlinks in test/data. This caused the unit test run to fail if called from within that sources * Wed May 08 2024 marcus.schaefer@gmail.com - Fix spec file Require docopt-ng for Fedora 41+ * Tue May 07 2024 marcus.schaefer@gmail.com - Bump version: 10.0.14 → 10.0.15 * Tue May 07 2024 dpopov@suse.com - REview runtime_configuration.rst * Tue May 07 2024 dpopov@suse.com - Review repository_setup.rst * Thu May 02 2024 marcus.schaefer@gmail.com - Add support for stopsignal in containerconfig Allow to specify the stopsignal via the containerconfig element as the following example shows <type image="docker"> <containerconfig ...> <stopsignal>SIGINT</stopsignal> </containerconfig> </type> This Fixes #2543 * Thu May 02 2024 wfeldt@opensuse.org - Fix set_disk_password to be effective Since commit 8aa517eb7 it is necessary to call _mount_device_and_volumes() prior making any modifications to boot files. In addition handle potential errors from the grub.cfg modification better. * Thu May 02 2024 marcus.schaefer@gmail.com - Update Makefile Make sure custom patches are part of the package sources * Thu May 02 2024 marcus.schaefer@gmail.com - Bump version: 10.0.13 → 10.0.14 * Thu May 02 2024 neal@gompa.dev - doc: Document the bls option for the grub bootloader * Wed May 01 2024 ngompa@opensuse.org - Temporarily revert grub-bls default to false for SUSE distributions For the time being, SUSE distributions cannot handle KIWI's default to use BLS with GRUB2. Until they catch up, revert this for them only. * Wed May 01 2024 neal@gompa.dev - kiwi/bootloader: restore backward compatibility for grub2 with bls The change to introduce the bls parameter broke backward compatibility with all existing kiwi descriptions for distributions that default to BLS. This fixes that by allowing the unset state to be equivalent to enabling it. Fixes: 8a8190098cb30358459ba10a4db1ba6446eee8c2 * Tue Apr 30 2024 marcus.schaefer@gmail.com - Bump version: 10.0.12 → 10.0.13 * Mon Apr 29 2024 marcus.schaefer@gmail.com - Overwrite compression setting only if randomized When building an encrypted image, the bundler never compressed the result. This overwrite from the runtime configuration and the default compression setting actually only makes sense when the image is randomized because only then a compression is for sure useless. This Fixes #2540 * Mon Apr 29 2024 marcus.schaefer@gmail.com - Make sure lsblk output is sorted by dev name lsblk without the sorting option can provide the list of devices in different order. This patch makes sure lsblk sorts the output by the device name. This Fixes bsc#1223374 * Fri Apr 26 2024 romain.geissler@amadeus.com - Stop leaking plugins/{priorities,versionlock}.conf file with dnf4/5. This fixes the fedora issue https://bugzilla.redhat.com/show_bug.cgi?id=2270364 Signed-off-by: Romain Geissler <romain.geissler@amadeus.com> * Fri Apr 26 2024 marcus.schaefer@gmail.com - Fix luks_randomize setting Make sure the value passed for luks_randomize in the description becomes effective. It was not possible to switch off luks_randomize because any "not" value was turned into a true value. The actual default should therefore only apply in case luks_randomize is not specified at all which means only a None value will turn into a true value for this setting. * Fri Apr 26 2024 awilliam@redhat.com - Fix package removal with dnf5 dnf5 does not implement `dnf autoremove <package>` as a synonym for `--setopt=clean_requirements_on_remove=true remove <package>` as dnf4 did. So, we should do it this way instead. Signed-off-by: Adam Williamson <awilliam@redhat.com> * Thu Apr 25 2024 aplanas@suse.com - Add 'bls' parameter for the bootloader * Sat Apr 20 2024 ichavero@chavero.com.mx - Fix efifatimagesize attribute type The efifatimagesize attribute type value is set to "oem" but the documentation says that it is intended to be also used for creating ISO images. This causes a schema error when this attribute is set on a profile with type "iso" and blocks changing the EFI boot image size which is a problem if the image is bigger than 20M. This commit allows to specify the attribute also for the "iso" type * Fri Apr 19 2024 marcus.schaefer@gmail.com - Add missing tool requires Latest changes on the bundler used sed and file which were not required by the spec. This is related to bsc#1221790 * Fri Apr 19 2024 marcus.schaefer@gmail.com - Add vmdk format to test-image-bundle-format Allow to check if the bundle format rename is applied in the new bundle reference checker code * Fri Apr 19 2024 marcus.schaefer@gmail.com - Fix file references in kiwi bundler result files When using a custom bundle_format the kiwi result bundler renames the output files to match the bundle_format. However, if there are output files that references other output files, for example the vmware binary (.vmdk) in the guest config file (.vmx) then this renaming breaks those result files. This patch adds a reference file check for all non binary output files if they contain a reference to another output file and updates the data accordingly. This Fixes bsc#1221790 * Fri Apr 19 2024 marcus.schaefer@gmail.com - Don't compress vmdk images Like with qcow2 it's not expected that the format type gets compressed in the bundle * Fri Apr 19 2024 aplanas@suse.com - kiwi.rnc: define bls parameter for bootloader * Fri Apr 19 2024 marcus.schaefer@gmail.com - Keep runtime_checker_metadata.yml as module file It was a bad idea to install a mandatory source file outside the module path. This prevents running kiwi from source * Fri Apr 19 2024 marcus.schaefer@gmail.com - Fixed Arch build Forgot to add install of runtime_checker_metadata.yml * Thu Apr 18 2024 marcus.schaefer@gmail.com - Update tumbleweed/test-image-disk integration test * Thu Apr 18 2024 marcus.schaefer@gmail.com - Handle XSLT errors better Make sure etree.XSLTApplyError is a known error in the kiwi scope and raise an appropriate exception * Wed Apr 17 2024 dpopov@suse.com - Revise profiles.rst * Wed Apr 17 2024 dpopov@suse.com - Revise packages.rst * Wed Apr 17 2024 dpopov@suse.com - Revise customize_the_boot_process.rst * Wed Apr 17 2024 marcus.schaefer@gmail.com - Bump version: 10.0.11 → 10.0.12 * Mon Apr 15 2024 marcus.schaefer@gmail.com - Drop concept of volumes_mounted_initially The volume mount should be the same process no matter if it happens for the first time or subsequently * Mon Apr 15 2024 marcus.schaefer@gmail.com - Fixed mountpoint to use for read-only property Make sure get_mountpoint() is used to retrieve the correct mountpoint for the root entry point. Using the self.mountpoint member is not always correct * Mon Apr 15 2024 marcus.schaefer@gmail.com - Prevent extra volume mount/umount on btrfs For setting up the read-only property an extra mount of the btrfs sub-volumes was issued. However, all volumes are mounted at that time. Thus it's not required to mount them again, resulting in a busy state because of the auto-snapshot mounts which does not get umounted and keeps a busy state until the lazy umount kicks in. This Fixes #2529 * Tue Apr 09 2024 marcus.schaefer@gmail.com - Fix typo in documentation main page Superfluous format sequence * Mon Apr 08 2024 marcus.schaefer@gmail.com - Added another search path for signed EFI binaries Add /usr/lib/grub/*-efi-signed to search for shim signed EFI binaries too. This Fixes #2525 * Mon Apr 08 2024 marcus.schaefer@gmail.com - Fixed runtime checks for dracut module packages Unfortunately the packaging of kiwi on Debian follows different naming conventions for dracut module packages which causes the runtime check to fail. This commit allows to check for multiple package names and adds the variants used on Debian. This Fixes #2524 * Thu Apr 04 2024 marcus.schaefer@gmail.com - Bump version: 10.0.10 → 10.0.11 * Wed Apr 03 2024 marcus.schaefer@gmail.com - Add schema upgrade opportunity for old schemas kiwi files using a schema version < 7.4 are no longer supported by kiwi >= v10.x.x. Thus this commit provides the required XSL stylesheets to upgrade older schemas to v74 such that they can be consumed by the latest kiwi version. The needed xsltproc instruction is placed on the main page of the documentation. * Wed Apr 03 2024 marcus.schaefer@gmail.com - Delete kiwi compat mode The compat mode allowed a kiwi v7 legacy argument translation and is obsolete since a long time * Wed Apr 03 2024 marcus.schaefer@gmail.com - Make excludes in bootstrap effective for dnf Followup fix to really use the ignore information in the dnf package manager implementation. This Fixes #2499 * Thu Mar 28 2024 marcus.schaefer@gmail.com - Bump version: 10.0.9 → 10.0.10 * Wed Mar 27 2024 marcus.schaefer@gmail.com - Bump version: 10.0.8 → 10.0.9 * Wed Mar 27 2024 marcus.schaefer@gmail.com - Fix setup of discoverable partitions Make sure GUI is unique and typecode is set according to the standard. This Fixes #2517 * Tue Mar 26 2024 dpopov@suse.com - Revise customize_boot * Mon Mar 25 2024 marcus.schaefer@gmail.com - Live ISO Wait for udev events after repart Make sure to wait for the event queue to become empty after the creation of the write partition. When kiwi calls the code to create the write partition this emits new udev events. It's important to wait for the event queue to become empty to avoid a potential regression on the use of the device nodes. In the processing of the events it can happen that a device gets removed and re-added. If we don't want for udev to process the entire queue it can happen that the wrong block device is used. This wrong selection is only possible because the way how hybrid ISOs are designed exposes both, the disk and the partition for the root device with the same label. This Fixes bsc#1213595 * Sat Mar 23 2024 marcus.schaefer@gmail.com - Bump version: 10.0.7 → 10.0.8 * Fri Mar 22 2024 marcus.schaefer@gmail.com - Fix zipl setup for use with custom btrfs root vol In the setup case that btrfs is used for the system and the root partition is on a custom named volume (not /), this information was not passed to the zipl bootloader instance and this caused the mounting of the overall root system to fail. This commit fixes it * Fri Mar 22 2024 marcus.schaefer@gmail.com - Allow ignore stanza in bootstrap So far the <ignore> stanza was only effective when placed as part of the type="image" packages section. This commit allows to place it also to the type="bootstrap" packages. This Fixes #2499 * Wed Mar 20 2024 marcus.schaefer@gmail.com - Bump version: 10.0.6 → 10.0.7 * Tue Mar 19 2024 marcus.schaefer@gmail.com - Add support for %v in bundle format Allow a placeholder for the entire version text as provided by the <version> section * Tue Mar 19 2024 marcus.schaefer@gmail.com - Allow bundle format to be set on the commandline The bundle format is usually specified as part of the image description in the bundle_format attribute. This commit also allows to specify/overwrite the bundle format in the kiwi result bundle command via the new --bundle-format option. This Fixes #2509 * Tue Mar 19 2024 marcus.schaefer@gmail.com - Bump version: 10.0.5 → 10.0.6 * Mon Mar 18 2024 marcus.schaefer@gmail.com - Fixup cleanup of zipl templates Make sure temporary modifications to the zipl template and config file are not effective in the later system. This Fixes bsc#1221469 * Thu Mar 14 2024 dpopov@suse.com - Revise system_update.rst * Thu Mar 14 2024 dpopov@suse.com - Revise system_prepare.rst * Wed Mar 13 2024 dpopov@suse.com - Revise system_create.rst * Wed Mar 13 2024 marcus.schaefer@gmail.com - Bump version: 10.0.4 → 10.0.5 * Wed Mar 13 2024 marcus.schaefer@gmail.com - Followup fix for use of /boot/zipl The mounting of /boot/zipl is also only required if the bootloader is set to grub2_s390x_emu * Wed Mar 13 2024 marcus.schaefer@gmail.com - Update schema version in spec file * Tue Mar 12 2024 marcus.schaefer@gmail.com - Drop rpm-dir from allowed repository type Using an arbitrary list of rpm packages as repository is a zypper only feature, barely tested and from our pov not really needed as a simple createrepo call turns any custom list of packages into a clean rpm-md repo including metadata. This commit drops rpm-dir from the list of allowed repository types and auto converts those image descriptions which makes use of it. Please note this does not prevent users from using flat package directories with zypper, because the type argument in the repository section is an optional attribute. In case there is no type specification zypper auto-detects and handles the data as it handles it. This Fixes #1926 * Tue Mar 12 2024 dpopov@suse.com - Revise system_build.rst * Tue Mar 12 2024 marcus.schaefer@gmail.com - Fixup use of /boot/zipl Only for the grub2_s390x_emu bootloader setup an optional boot partition setup must be put to /boot/zipl rather than to /boot * Mon Mar 11 2024 marcus.schaefer@gmail.com - Lookup distro provided BLS entries for zipl Check if there is already an entry file name produced by the distribution logic/policy. If we can find an already present entry name, prefer this name over the kiwi naming policy * Mon Mar 11 2024 marcus.schaefer@gmail.com - Install audit in s390 rawhide integration test * Sun Mar 10 2024 marcus.schaefer@gmail.com - Bump version: 10.0.3 → 10.0.4 * Sat Mar 09 2024 marcus.schaefer@gmail.com - Delete invalid EPEL repo from rawhide tests * Fri Mar 08 2024 marcus.schaefer@gmail.com - Fix s390 tools and grub requirement On Fedora/RHEL this is named s390utils and there is no grub2 * Fri Mar 08 2024 marcus.schaefer@gmail.com - Added rawhide integration test * Fri Mar 08 2024 dpopov@suse.com - Temp commit * Thu Mar 07 2024 marcus.schaefer@gmail.com - Bump version: 10.0.2 → 10.0.3 * Thu Mar 07 2024 dpopov@suse.com - Revise image_size, kiwi * Thu Mar 07 2024 neal@gompa.dev - Ensure we use a compatible docopt-ng version To ensure our trick to switch between docopt and docopt-ng works, we need to have a higher minimum version for docopt-ng where compatibility with the original docopt was restored. * Wed Mar 06 2024 marcus.schaefer@gmail.com - Fixed delta_root build The support for delta_root allows to build a delta container image from a given base container. Due to the refactoring of the kiwi code base using context managers no explicit deletion of instances happens anymore. This uncovered a weakness of the delta root code at the level of the overlay mount. At the time of the umount there are still active temporary mount handlers which keeps the mountpoint busy. In order to fix this properly also the PackageManager factory is now a context manager and the Repository factory received a cleanup method which is called when the PackageManager goes out of scope. This refactoring also fixes the busy state when building deltas * Wed Mar 06 2024 marcus.schaefer@gmail.com - Bump version: 10.0.1 → 10.0.2 * Wed Mar 06 2024 marcus.schaefer@gmail.com - Don't use poetry publish Publishing to pypi is done via pypa/gh-action-pypi-publish and the respective auth token. Calling poetry publish does not work because this is not authorized * Wed Mar 06 2024 marcus.schaefer@gmail.com - Bump version: 10.0.0 → 10.0.1 * Wed Mar 06 2024 marcus.schaefer@gmail.com - Drop ci-kiwi-9-compliant.yml Delete this action as it existed in the intermediate state prior the new major version v10.x.x * Wed Mar 06 2024 marcus.schaefer@gmail.com - Add tzdata to Debian tests * Wed Mar 06 2024 marcus.schaefer@gmail.com - Fixed sync script for test-image-rpi on Ubuntu * Wed Mar 06 2024 marcus.schaefer@gmail.com - Install language-pack-en for Ubuntu arm test * Wed Mar 06 2024 marcus.schaefer@gmail.com - Install locales-all for Debian tests * Wed Mar 06 2024 marcus.schaefer@gmail.com - Install language-pack-en for Debian tests * Wed Mar 06 2024 marcus.schaefer@gmail.com - Fix repo setup for Ubuntu arm test * Wed Mar 06 2024 marcus.schaefer@gmail.com - Install network stack for Debian test * Wed Mar 06 2024 marcus.schaefer@gmail.com - Request util-linux explicitly for Ubuntu tests * Wed Mar 06 2024 marcus.schaefer@gmail.com - Add usr-is-merged to package list for bootstrap * Wed Mar 06 2024 marcus.schaefer@gmail.com - Install language-pack-en for Ubuntu tests * Tue Mar 05 2024 marcus.schaefer@gmail.com - Move Ubuntu integration tests to Lunar * Tue Mar 05 2024 marcus.schaefer@gmail.com - Update test-image-rpi for Ubuntu on arm Do not install kiwi as test application * Tue Mar 05 2024 marcus.schaefer@gmail.com - Fix repo setup for Debian integration tests Staging repo must be first for higher prio * Tue Mar 05 2024 marcus.schaefer@gmail.com - Update test-image-docker-derived Don't install kiwi as test application, use something smaller, just vim * Tue Mar 05 2024 marcus.schaefer@gmail.com - Move Debian build test from Buster to Bookworm Move from Debian 11 to Debian 12 for integration testing * Tue Mar 05 2024 marcus.schaefer@gmail.com - Move Ubuntu integration tests from Jammy to Mantic Use Ubuntu 23.10 for the integration tests and move away from 22.04 * Tue Mar 05 2024 neal@gompa.dev - Switch to Poetry and use pyproject.toml definitions This allows kiwi to be built, developed, tested, and installed through Poetry. This also raises the minimum Python version to 3.9. * Tue Mar 05 2024 marcus.schaefer@gmail.com - Delete test-image-microdnf microdnf is dead and dnf5 took over * Tue Mar 05 2024 marcus.schaefer@gmail.com - Delete test-image-live-disk-v8 CentOS-8 is EOL and dropped from upstream kiwi * Tue Mar 05 2024 dpopov@suse.com - Revise image info * Mon Mar 04 2024 marcus.schaefer@gmail.com - Add support for BLS zipl Add support for <bootloader name="zipl" .../> to support BLS based zipl configuration. This Fixes #2481 * Fri Mar 01 2024 dpopov@suse.com - Review Build WSL container * Fri Mar 01 2024 dpopov@suse.com - Revise Build simple disk * Thu Feb 29 2024 marcus.schaefer@gmail.com - Update v9 compliance action put the cherry-pick tests into an extra script and provide a skip list of commits for manual checking if needed * Thu Feb 29 2024 marcus.schaefer@gmail.com - Fix activation of luks pool in the initrd kiwi called systemd-cryptsetup directly which does not take the settings available in /etc/crypttab into account. This commit changes the activation procedure in a way that the generator created unit file systemd-cryptsetup@... is used This Fixes bsc#1219009 * Thu Feb 29 2024 marcus.schaefer@gmail.com - Apply changelog fixes by glob Does not require Makefile changes when maintaining branches * Wed Feb 28 2024 marcus.schaefer@gmail.com - Add changelog fix file for commit deb6ca The commit used a wrong e-mail address which should not land in the created changes file for the packaging * Wed Feb 28 2024 marcus.schaefer@gmail.com - Set default output console to gfxterm for grub If no console setting is done in the image description for grub the default output console is set to: gfxterm and the default input console is set to: console. This Fixes bsc#1219074 * Wed Feb 28 2024 marcus.schaefer@gmail.com - Catch error condition more specific Only a KiwiCommandError is an exception we want to catch and handle, everything else is a bug and should not be masked * Tue Feb 27 2024 marcus.schaefer@gmail.com - Add silent flag to CommandCapabilities an instance of CommandCapabilities allows to check for specific options of a command. If the parsing of options has failed a warning message is created by default. Under certain circumstances like the check for the --help option of setfiles, such a warning message can be misleading information in the build log file. Therefore the new silent flag allows to suppress the warning message and the flag is used for the capabilities of the setfiles utility. This Fixes #2350 * Tue Feb 27 2024 marcus.schaefer@gmail.com - Fix documentation preferlvm example The custom volumes example shows a faulty XML description. This Fixes #2483 * Tue Feb 27 2024 marcus.schaefer@gmail.com - Move SystemPrepare to context manager Change the SystemPrepare class to context manager. All code using SystemPrepare was updated to the following with statement: with SystemPrepare(...) as system_prepare: system_prepare.some_member() This completes the refactoring from finalizers to context managers and Fixes #2412 * Mon Feb 26 2024 marcus.schaefer@gmail.com - Fallback to built-in partition UUID table If systemd-id128 is not found or failed use the kiwi built-in table as defined by the UAPI group to assign the partition UUID * Mon Feb 26 2024 marcus.schaefer@gmail.com - Move DiskFormat to context manager Change the DiskFormat Factory to be a context manager. All code using DiskFormat was updated to the following with statement: with DiskFormat(...).new as disk_format: disk_format.some_member() This is related to Issue #2412 * Sat Feb 24 2024 marcus.schaefer@gmail.com - Added requirement for xmltodict to spec Actually the real issue to this defect seems to live in the anymarkup source code. It seems that the import of xmltodict at the beginning of the core module is optional, but later on when handling XML xmltodict seems to be mandatory, see here: https://github.com/bkabrda/anymarkup-core/blob/08896a8215819edcc413e3f2588518046 9a4c2ed/anymarkup_core/__init__.py#L210-L229. Because this issue can result in a "ImportError: Can't parse xml: xmltodict not installed" turning kiwi into a bad exit condition I propose to add this python requirement to the kiwi spec as a workaround and try fixing the anymarkup packaging and module setup upstream in addition. To my knowledge all relevant distributions provides xmltodict * Sat Feb 24 2024 marcus.schaefer@gmail.com - Fixed type hint for pinch_system method The PackageManager argument is allowed to be optional * Sat Feb 24 2024 marcus.schaefer@gmail.com - Add support for discoverable partitions Set PARTUUID according to systemd-id128 if applicable This Fixes #1385 * Thu Feb 22 2024 marcus.schaefer@gmail.com - Move Repository to context manager Change the Repository Factory to be a context manager. All code using Repository was updated to the following with statement: with Repository(...).new as repo: repo.some_member() This is related to Issue #2412 * Thu Feb 22 2024 dpopov@suse.com - Build LiveISO review * Wed Feb 21 2024 dpopov@suse.com - Buil KIS review * Wed Feb 21 2024 dpopov@suse.com - Build expandable disk review * Wed Feb 21 2024 dpopov@suse.com - Build container image review * Wed Feb 21 2024 marcus.schaefer@gmail.com - Allow terminal emulation setup from the cmdline Using rd.kiwi.term will export the TERM variable into the initrd environment. In case the default value for the terminal emulation is not appropriate rd.kiwi.term can be used to overwrite the default. The environment is also passed to the systemd unit which calls dialog based programs in kiwi dracut code, such that the TERM setting will be effective there too. For example: rd.kiwi.term=vt100 This is related to bsc#1218095 * Tue Feb 20 2024 marcus.schaefer@gmail.com - Fixed implementation for oem-shutdown If specified oem-shutdown caused a reboot -f -p which is a powerdown but not a graceful shutdown. This commit fixes this by using systemctl halt for a clean shutdown. This Fixes #2474 * Mon Feb 19 2024 marcus.schaefer@gmail.com - Move VolumeManager to context manager Change the VolumeManager Factory to be a context manager. All code using VolumeManager was updated to the following with statement: with VolumeManager(...).new as volume_manager: volume_manager.some_member() This is related to Issue #2412 * Mon Feb 19 2024 45594031+dcermak@users.noreply.github.com - Refactor Command class Command.run() currently has a bit of a confusing behavior: if raise_on_error is False and the executable is not found, then a weird CommandT is returned (return code is -1 and stdout+stderr is None). This makes it possible to hanlde command not found errors separately, but it makes that needlessly verbose. So instead, let's just return None in *this* special case. That in turn uncovered, that in most cases when we set `raise_on_error=True`, we actually want an error if the command is not present but no error if the command fails to execute (e.g. because it returns -1 if you run `$cmd --version`). Hence we introduce the flag `raise_on_command_not_found`, which causes an exception to be raised if the command is not found. This makes it independent of the `raise_on_error` flag. Additionally, we add a small optimization: if command starts with /, then we assume it's a full path and we omit the call to which (and just check whether it exists). Co-authored-by: Marcus Schäfer <marcus.schaefer@gmail.com> * Mon Feb 19 2024 marcus.schaefer@gmail.com - Move ImageSystem to context manager Change the ImageSystem class to context manager. All code using ImageSystem was updated to the following with statement: with ImageSystem(...) as image_system: image_system.some_member() This is related to Issue #2412 * Mon Feb 19 2024 marcus.schaefer@gmail.com - Allow empty cherry-picks for compliance test If we cherry-pick from main to master the compliance check will notice that a commit already exists. This is not an error and we can allow to continue the picking via --allow-empty * Mon Feb 19 2024 marcus.schaefer@gmail.com - Followup fix for .profile.extra Allow to source .profile.extra such that it is possible to read and act on e.g cmdline parameters. This is related to bsc#1218095 * Sun Feb 18 2024 alexandre.detiste@gmail.com - Use unittest.mock from core python everywhere mock was an independent module that has been merged into the Python standard library. * Fri Feb 16 2024 dcassany@suse.com - Include partprobe in initrd for s390 This commit includes partprobe, in addition to parted, on s390 based systems. Otherwise partx is used and apparently it does not properly support s390. Fixes bsc#1219798 Signed-off-by: David Cassany <dcassany@suse.com> * Fri Feb 16 2024 marcus.schaefer@gmail.com - Fixed MicroOS integration test temporarily disable ignition/combustion/growpart and use kiwi's resize code for testing, oem-resize set to true * Thu Feb 15 2024 marcus.schaefer@gmail.com - Fixed kis documentation The procedure to run qemu with a filesystem image as disk was not quite correct. * Wed Feb 14 2024 marcus.schaefer@gmail.com - Update documentation about partition clones Using the root_clone attribute comes with some requirements and consequences. This commit documents them * Wed Feb 14 2024 fvogt@suse.de - Improve documentation generation With Sphinx >= 6.0.0, jQuery is no longer included but the rtd theme's search functionality needs it. The theme was changed to load sphinxcontrib-jquery automatically with https://github.com/readthedocs/sphinx_rtd_theme/pull/1399, but kiwi broke this fix by loading the theme in the wrong way. Now that the theme is loaded properly, the search functionality also works with newer versions of sphinx again and the version pinning can be lifted. This Fixes: #2462 * Wed Feb 14 2024 fvogt@suse.de - Allow specifying the filesystem for live image, also direct squashfs Allow specifying the filesystem for live image, also direct squashfs By setting <type image="iso" filesystem="FSTYPE" .../> it's now possible to specify the filesystem used for live images. By using "squashfs", the rootfs container is skipped entirely. * Wed Feb 14 2024 marcus.schaefer@gmail.com - Add support for reading .profile.extra in initrd If there is the file /.profile.extra available in the initrd, kiwi will import this additional environment file after the import of the standard /.profile file. This is related to bsc#1218095 * Wed Feb 14 2024 marcus.schaefer@gmail.com - Don't run ci-kiwi-9-compliant action on forks * Tue Feb 13 2024 marcus.schaefer@gmail.com - Fix setup of UUID for btrfs When setting up the UUID for a btrfs filesystem via btrfstune it could happen that the call becomes interactive asking a question and give a recommendation. All this is unwanted and can be forced via the -f switch. This Fixes #2456 * Mon Feb 12 2024 marcus.schaefer@gmail.com - Move OCI to context manager Change the OCI Factory to be a context manager. All code using OCI was updated to the following with statement: with OCI(...).new as oci: oci.some_member() This is related to Issue #2412 * Mon Feb 12 2024 marcus.schaefer@gmail.com - Drop destructor from CommandProcess There is code that sends a SIGTERM to the process in case there is no error code information. I believe in this case sending SIGTERM will not kill the process (defunct) and I also don't see in what good condition we would be entering this state. * Mon Feb 12 2024 marcus.schaefer@gmail.com - Fixed use of custom bootloader In case no bootloader implementation by kiwi should be used, users can specify the bootloader="custom" attribute. Instead of skipping the bootloader stage in the builders it is better to consistently create an instance of bootloader but raise if a method of the bootloader interface is called for which the custom bootloader has no implementation. This commit adds the consistency bits. * Mon Feb 12 2024 marcus.schaefer@gmail.com - Fixed scope of BootLoaderConfig instance Due to the refactor of BootLoaderConfig into context managers we had two instances of BootLoaderConfig. However, the first instance holds data the second instance needs which caused an issue. This commit makes sure there is one BootLoaderInstance within the lifetime of required services * Mon Feb 12 2024 marcus.schaefer@gmail.com - Allow integration test to build outside of obs too * Mon Feb 12 2024 marcus.schaefer@gmail.com - Follow up fix for drop obsolete C tools from kiwi The spec file make call to build the C code was forgotten to be deleted * Sun Feb 11 2024 marcus.schaefer@gmail.com - Drop obsolete C tools from kiwi For building custom initrd images kiwi provided some optional helper tools. All these C written tools are old and outdated and either not useful anymore or replaced by other tools that are part of the distribution matrix we support. Thus with the move to the next major release those can go away. This also include the package kiwi-tools which was used to provide them * Wed Feb 07 2024 marcus.schaefer@gmail.com - Update documentation Several examples still pointed to Leap 15.3 repos, but we are at Leap 15.5. Thus this commit shifts towards Leap 15.5 * Mon Feb 05 2024 marcus.schaefer@gmail.com - Remove destructor from BootLoaderInstallGrub2 With MountManager as context manager the BootLoaderInstallGrub2 class doesn't need a destructor anymore. This is related to Issue #2412 * Mon Feb 05 2024 marcus.schaefer@gmail.com - Remove obsolete destructor from BootImageDracut With MountManager as context manager the BootImageDracut class doesn't need a destructor anymore. This is related to Issue #2412 * Mon Feb 05 2024 marcus.schaefer@gmail.com - Move Raid Luks and Integrity to context manager Change the RaidDevice, LuksDevice and IntegrityDevice classes to context manager: with RaidDevice(...) as raid: raid.some_member() with LuksDevice(...) as luks: luks.some_member() with IntegrityDevice(...) as integrity: integrity.some_member() In the context of the disk builder an ExitStack is used to handle the new context manager based classes This is related to Issue #2412 * Fri Feb 02 2024 marcus.schaefer@gmail.com - Fix error message regarding ovftool For ova support kiwi still uses the proprietary ovftool from VMware. The error message if the tool could not be found was broken and the link to the VMware page was also outdated. * Fri Feb 02 2024 marcus.schaefer@gmail.com - Drop PDF build of the documentation The kiwi.pdf file as provided in the kiwi-man-pages package was never really used by our users but comes with a huge dependency chain to LaTex. We provide the documentation online as well as converted to DocBook from where all other formats could be derived. Thus there is no need for us to produce an extra PDF document which is imho never consulted. In addition to this change also the contributing chapter has been reworked. Due to recent changes and drop of obsolete components from kiwi as well as the effort to move the development setup to poetry, there is only one non python tool needed for the development of kiwi. The check for this tool has been moved into the Makefile and all other checks formerly done in the helper/install_devel_packages script were deleted. * Wed Jan 31 2024 marcus.schaefer@gmail.com - Fix crypto LUKS integration test The integration test build also encrypts /boot which requires grub to open the LUKS pool using cryptomount. grub does not support the argonID salted password hashes. Thus the integration test description configures pbkdf2 instead * Wed Jan 31 2024 marcus.schaefer@gmail.com - Use ExitStack for MountManagers * Wed Jan 31 2024 marcus.schaefer@gmail.com - Only pass appropriate bootloader arguments When constructing a BootLoaderConfig instance only pass arguments appropriate to the selected bootloader. It does not hurt but it is bad style and unnecessary data and code points if e.g grub relevant information is passed when we actually setup systemd-boot * Wed Jan 31 2024 marcus.schaefer@gmail.com - Fix reading of os-release file If the /etc/os-release file contains comments or spaces python's csv reader will throw an exception. Thus this data must be ripped out prior reading * Tue Jan 30 2024 marcus.schaefer@gmail.com - Allow to use Literal for all python versions * Tue Jan 30 2024 marcus.schaefer@gmail.com - Better error message on module import * Tue Jan 30 2024 marcus.schaefer@gmail.com - Move Disk to context manager Change the Disk class to be a context manager. All code using Disk was updated to the following with statement: with Disk(...) as disk: disk.some_member() This is related to Issue #2412 * Fri Jan 26 2024 marcus.schaefer@gmail.com - Fixed test-image-rpi for TW No need to pull in zypper plugin that does not resolve on TW * Fri Jan 26 2024 marcus.schaefer@gmail.com - Update documentation drop documentation for isolinux in API and user docs * Fri Jan 26 2024 dcermak@suse.com - Fix invalid escape sequence * Fri Jan 26 2024 dcermak@suse.com - Add missing assert call to install_test * Fri Jan 26 2024 dcermak@suse.com - Correct type hint of mbrid parameter * Fri Jan 26 2024 dcermak@suse.com - Convert BootLoaderConfigBase into an abstract base class * Fri Jan 26 2024 dcermak@suse.com - Convert BootLoaderConfig to free function The class serves really no purpose except for creating another namespace. This function now allows us to have more stricter type checking. * Fri Jan 26 2024 marcus.schaefer@gmail.com - better function name * Mon Jan 22 2024 marcus.schaefer@gmail.com - Drop support for syslinux/isolinux SYSLINUX has been abandoned for several years now, and it does not even work with modern versions of the filesystems supported in kiwi. This commit drops it and Fixes #2433 * Mon Jan 22 2024 marcus.schaefer@gmail.com - Update build tests Delete use of syslinux/isolinux * Fri Jan 19 2024 marcus.schaefer@gmail.com - Move BootLoaderConfig to context manager Change the BootLoaderConfig class to be a context manager. All code using BootLoaderConfig was updated to the following with statement: with BootLoaderConfig.new(...) as bootloader_config: bootloader_config.some_member() This is related to Issue #2412 * Fri Jan 19 2024 dcermak@suse.com - [docs] make copyright year dynamic * Fri Jan 19 2024 dcermak@suse.com - Silence Shellcheck warning SC2004 It causes false positives in array expressions, e.g. device_array[${device_index}] (see: https://www.shellcheck.net/wiki/SC2004) * Fri Jan 19 2024 dcermak@suse.com - Quote shell variables to prevent word splitting this fixes shellcheck warning SC2086 https://www.shellcheck.net/wiki/SC2086 * Thu Jan 18 2024 dcermak@suse.com - Add type hints & doc to VolumeManagerBase & VolumeManagerBtrfs Also add additional tests for test coverage of typing edge cases * Thu Jan 18 2024 dcermak@suse.com - Correct invalid escape sequence \/ is not a valid escape sequence, it just needs to be forwarded to the shell * Thu Jan 18 2024 dcermak@suse.com - DiskBuilder: use ExitStack to unmount partitions * Thu Jan 18 2024 dcermak@suse.com - FileSystemBase & VolumeManagerBase: return a MountManager from sync_data This allows us to unmount the filesystems via the returned context manager * Thu Jan 18 2024 dcermak@suse.com - Don't catch all exceptions in MountManager.umount * Thu Jan 18 2024 dcermak@suse.com - Implement a context manager interface for MountManager * Wed Jan 17 2024 marcus.schaefer@gmail.com - Update Debian distro for integration tests We require python >= 3.9 * Wed Jan 17 2024 marcus.schaefer@gmail.com - Refactor disk builder for use with context manager In preparation to further context manager related changes in VolumeManager, LuksDevice, RaidDevice and more the disk builder code which uses these classes needs to be refactored beforehand to allow switching to context manager based cascading of the storage device classes. This commit does the refactoring and is related to Issue #2412 * Tue Jan 16 2024 marcus.schaefer@gmail.com - Follow up fix for drop of hybrid boot snippets The following is left over code from the drop of the hybrid boot templates. * Tue Jan 16 2024 neal@gompa.dev - Drop hybrid boot snippets from the GRUB 2 configuration template Sometime between GRUB 2.04 and GRUB 2.06, it became no longer necessary to use "linuxefi"+"initrdefi" for UEFI boot. The standard "linux"+"initrd" stanzas work for both legacy BIOS boot and modern UEFI boot. Some distributions no longer support "linuxefi"+"initrdefi" at all anymore, so let's just use "linux"+"initrd" for everything now. * Mon Jan 15 2024 marcus.schaefer@gmail.com - Don't create default entry for sd-boot loader.conf * Mon Jan 15 2024 marcus.schaefer@gmail.com - Type cleanup, no use of Any type in disk builder Use proper Union declaration for system variable and add consistency layer into Filesystem/VolumeManager classes to meet the type declaration as well as to simplify further refactoring on these classes * Sun Jan 14 2024 marcus.schaefer@gmail.com - Compat entry name for kernel-install in sd-boot systemd-boot tools like kernel-install expect a certain entry naming policy. This commit adapts kiwi to adapt to this policy. The name for the default entry is constructed out of the ID information from /etc/os-release followed by the name of the kernel as it is represented by the directory name in /lib/modules/... This Fixes #2417 * Sat Jan 13 2024 marcus.schaefer@gmail.com - Drop SLE integration tests The kiwi version for SLE is maintained in the git repos * https://github.com/SUSE/kiwi_sle15 * https://github.com/SUSE/kiwi_sle12 and has its own set of QA integration tests in the internal build service. * Fri Jan 12 2024 marcus.schaefer@gmail.com - Apply different cherry-pick strategy cherry picking merge commits is not easily possible. Thus get the list of commits and check if it can be applied in a series * Fri Jan 12 2024 marcus.schaefer@gmail.com - Reduce XSL transformation list Minimum schema version to start with is v74 This Fixes #2368 * Fri Jan 12 2024 marcus.schaefer@gmail.com - Fixed custom ISO boot template The archlinux integration test used a custom iso boot template which still contained the terminal_setup variable. This commit fixed the template to use the new terminal_input and terminal_output variables * Fri Jan 12 2024 marcus.schaefer@gmail.com - Delete clicfs from documentation API * Thu Jan 11 2024 marcus.schaefer@gmail.com - Move FileSystem to context manager Change the FileSystem class to be a context manager. All code using FileSystem was updated to the following with statement: with FileSystem.new(...) as filesystem: filesystem.some_member() This is related to Issue #2412 * Thu Jan 11 2024 marcus.schaefer@gmail.com - Update unit test data to schema v8.0 * Thu Jan 11 2024 marcus.schaefer@gmail.com - Update major schema version from 7.6 -> 8.0 With the switch to schema v8.x we allow for non compatible changes in regards to the v7.x stream. Thus this commit also deletes the support for clicfs from the schema * Thu Jan 11 2024 marcus.schaefer@gmail.com - Drop clicfs support clicfs was a fuse userspace implementation of an overlay filesystem. Since overlayfs became the default overlay filesystem there is no reason for kiwi to keep the clicfs support * Wed Jan 10 2024 dcermak@suse.com - Use obsrepositories for the CentOS 9 image We were relying on the repos being parsed from the kiwi description but this can cause problems and gives us less flexibility when it comes to fixing repository setup issues. This fixes https://github.com/OSInside/kiwi/issues/2335 * Tue Jan 09 2024 marcus.schaefer@gmail.com - Bump version: 9.25.22 → 10.0.0 * Tue Jan 09 2024 marcus.schaefer@gmail.com - Move workflow runs to main branch Make sure all github actions runs from main * Tue Jan 09 2024 marcus.schaefer@gmail.com - Bump version: 9.25.21 → 9.25.22 * Tue Jan 09 2024 marcus.schaefer@gmail.com - Add compliance action Check if the commits of a pull request can be cherry-picked to the master, which is the kiwi v9.x.x code stream. * Tue Jan 09 2024 marcus.schaefer@gmail.com - Fixed regression in GRUB_SERIAL_COMMAND setup The condition to write the serial line setup was broken. This commit fixes it. Related to Issue #2419 * Mon Jan 08 2024 marcus.schaefer@gmail.com - Fixed grub terminal setup The grub terminal setup is divided into the setting for the output and the input console. For both settings different parameters exists. So far kiwi did not differentiate between the two parts of the console setup and that could lead to a wrong setting if only one value is provided in kiwi's console= attribute which lead to the grub setting, GRUB_TERMINAL=value. If value is set to e.g gfxterm grub takes this for both input and output and it's obviously wrong for the input. To make this less error prune the kiwi code changes with this commit to set GRUB_TERMINAL_INPUT and GRUB_TERMINAL_OUTPUT rather than GRUB_TERMINAL and also runs sanity checks on the provided values if they are applicable. The information for setting up the console in the schema stays untouched though. That's because it's used for all bootloaders and also because grub supports multiple values for the console in/out setting in one GRUB_TERMINAL variable even though kiwi does no longer use it. To make this clear for the users also the documentation for the console attribute setup has been updated. If we want to wish two distinct attributes for input and output console settings a schema change and also differentiation between bootloaders is needed and that I only see for the kiwi-10 branch if at all. This Fixes #2419 * Thu Jan 04 2024 marcus.schaefer@gmail.com - Fix tox.ini python 3.12 unit target did not specify a 3.12 interpreter * Thu Jan 04 2024 marcus.schaefer@gmail.com - Fix overwrite of kiwi_oemunattended In case rd.kiwi.oem.installdevice is set, there is an overwrite of the kiwi_oemunattended setting. However the variable was set in local scope of a function and therefore the change was not effective in other methods which also evaluates this variable. This commit fixes it such that the overwrite happens in the early initialize method which provides the environment for all code running in the dracut module. This is related to jira#PED-7180 * Sat Dec 30 2023 marcus.schaefer@gmail.com - Move LoopDevice class to context manager Change the LoopDevice class to be a context manager. All code using LoopDevice was updated to the following with statement: with LoopDevice(...) as loop_provider: loop_provider.some_member() This is related to Issue #2412 * Fri Dec 29 2023 neal@gompa.dev - Ensure setfiles is detected inside the image-root We do not actually use setfiles from the host, we use it from the image root we create for the image build. Thus, we should look in the image root instead of on the host system. This prevents us from incorrectly detecting that setfiles is not available for setting SELinux contexts. Fixes: https://github.com/OSInside/kiwi/issues/2414 Fixes: 2a22901ddd11ae23b6724b5e1aaa4261f219ccb6 * Thu Dec 28 2023 dcermak@suse.com - Use xdist on the CI to speed up the test runs * Thu Dec 28 2023 dcermak@suse.com - Add unit test job using python 3.12 * Thu Dec 28 2023 dcermak@suse.com - Only run the job for this python environment * Thu Dec 28 2023 dcermak@suse.com - [ci] Switch runner to ubuntu-latest * Thu Dec 28 2023 dcermak@suse.com - Add missing raw string identifier infront of regexes * Tue Dec 26 2023 lujianhua000@gmail.com - Allow target_blocksize to be available for kis image * Sun Dec 17 2023 marcus.schaefer@gmail.com - Bump version: 9.25.20 → 9.25.21 * Sun Dec 17 2023 marcus.schaefer@gmail.com - Cleanup tox targets Align tox targets with github workflows and fix targets not associated with a specific python version to use the python3 version installed on the host * Sun Dec 17 2023 marcus.schaefer@gmail.com - Bump version: 9.25.19 → 9.25.20 * Sun Dec 17 2023 marcus.schaefer@gmail.com - Fixed unit tests for parallel invokation * Fri Dec 15 2023 marcus.schaefer@gmail.com - Make sure selinux policy is effectively applied setup_selinux_file_contexts is now called after the config.sh script. This makes sure that eventual policy related changes done in the optional config.sh are covered by a late setfiles call. In addition setup_selinux_file_contexts is called again at the end of any chroot based script hook. So we assume that any optional script target can change the system in a way that a new setfiles call might be required. It can happen that setfiles is called more often than required but as we cannot know what custom scripts does, it's better to call it more often compared to not often enough. This Fixes bsc#1210604 * Thu Dec 14 2023 marcus.schaefer@gmail.com - Decrease image size for encrypted integration test Encrypted images do not compress well, therefore the size should be smaller such that we don't produce monsters * Thu Dec 14 2023 marcus.schaefer@gmail.com - Use ext4 for rawhide integration test * Thu Dec 14 2023 marcus.schaefer@gmail.com - Fixed typo in error message * Wed Dec 13 2023 neal@gompa.dev - package: Drop unused xorriso dep on dracut-kiwi-live subpackage We do not actually use xorriso anywhere inside of the dracut module, nor do we pull in any utilities from the xorriso package into the generated initramfs anyway. Fixes: https://github.com/OSInside/kiwi/issues/2404 * Mon Dec 11 2023 marcus.schaefer@gmail.com - Set kpartx as default mapper tool for s390 Some time ago we moved the default partition mapper from kpartx to partx to reduce a package dependencies. However, on the s390 architecture partx does not work proplerly on e.g DASD devices. Thus the default mapper tool for this architecture will change to kpartx with this PR * Fri Dec 08 2023 marcus.schaefer@gmail.com - Update test-image-MicroOS Incorporate latest changes from upstream MicroOS and also add an encrypted profile build for testing * Wed Dec 06 2023 marcus.schaefer@gmail.com - Include either partx or partprobe to dracut The code in the 99kiwi-lib dracut module can either use partprobe or partx to do the job. We prefer partx over partprobe and error out if none of them could be found This Fixes #2400 * Tue Nov 28 2023 marcus.schaefer@gmail.com - Bump version: 9.25.18 → 9.25.19 * Thu Nov 23 2023 alexandre.esse.dev@gmail.com - Fix typo in workflow overview doc section * Wed Nov 22 2023 marcus.schaefer@gmail.com - Add missing documentation for oem-unattended-id * Wed Nov 22 2023 marcus.schaefer@gmail.com - Allow install disk overwrite from cmdline Add rd.kiwi.oem.installdevice=DEVICE. Configures the disk device that should be used in an OEM installation. This overwrites any other oem device setting, e.g device filter or maxdisk and just continues the installation on the given device. However, the device must exist and must be a block special. This Fixes jira#PED-7180 * Tue Nov 21 2023 marcus.schaefer@gmail.com - Update mailmap * Fri Nov 10 2023 jehan.singh@suse.com - Replace the regex-based loader entry fix with string parsing (#2388) A user building RHEL images ran into issues with the initrd. It turns out that RHEL uses some patches that mean the initrd/linux files in RHEL are not installed to /boot, which trips up the original regex. The new fix doesn't rely on matching the path in boot, instead just finding the initrd/linux files and rewriting them in place. This change also adds the pre-and-post fix loader entries to the debug logs. Reference: https://bugzilla.suse.com/1208701 Fixes suse bsc#1208701 * Fri Nov 10 2023 marcus.schaefer@gmail.com - Fix mbrid setup for read-only systems On filesystems without a UUID (e.g squashfs) the fallback boot id setup should apply if neither UUID nor MBR ID is present. This is a followup fix for Issue #2391 * Thu Nov 09 2023 marcus.schaefer@gmail.com - Fixed test-image-disk-legacy test description The configured embedded ESP image size is too big, max 30MB are possible as El Torito boot load size * Thu Nov 09 2023 marcus.schaefer@gmail.com - Don't make toml a requirement * Wed Nov 08 2023 marcus.schaefer@gmail.com - Fixed grub mbrid file search To identify the root device for ISO images (live and install media) that boots via grub2, kiwi uses a grub2 --file search. The searched file was named /boot/mbrid, however this is not a unique name and could be found on other devices of the system as well. To connect the search to the correct media this commit changes the search to an ID based method which is unique to the image build process. This Fixes #2389 * Wed Nov 08 2023 marcus.schaefer@gmail.com - Don't use kernel-install kernel-install does a lot more then making the kernel available to the ESP. It calls dracut, it creates loader entries and all that is unexpected and also breaks the boot because the way dracut is called in the image build case where host != target leads to broken results. This commit refactors the systemd-boot support in kiwi to prevent the use of kernel-install * Wed Nov 08 2023 marcus.schaefer@gmail.com - Add check_efi_fat_image_has_correct_size Add runtime check for to check that the efifatimagesize does not exceed the max El Torito load size * Tue Nov 07 2023 marcus.schaefer@gmail.com - Add support for ISO boot via systemd-boot Create proper EFI FAT image via bootctl to be used as alt loader in xorriso. This allows to boot the ISO via EFI e.g kvm -bios /usr/share/qemu/ovmf-x86_64.bin -cdrom file.iso Please note, hybrid boot is done via grub's hybrid MBR and as systemd-boot does not provide one, hybrid boot is out of scope yet. This Fixes #2281 * Sun Nov 05 2023 marcus.schaefer@gmail.com - Bump version: 9.25.17 → 9.25.18 * Wed Nov 01 2023 marcus.schaefer@gmail.com - Add partx to module-setup of kiwi-lib too * Fri Oct 27 2023 marcus.schaefer@gmail.com - Change partprobe fallback to partx Informing the kernel about a new partition geometry can be done in a busy state and is also effective for new devices and new mounts based on the new geometry. busy state mounts of course will not see it until swap of the busy state but a complete refuse of operation like it happens with blockdev is imho not required. Just as partprobe, partx is less restrictive on the busy state. That's why this commit changes the partprobe fallback to use partx instead of blockdev * Thu Oct 26 2023 marcus.schaefer@gmail.com - Create live persistent storage without busy state With the former logic the live ISO was already mounted when an eventual persistent storage partition was created. This leads to an issue on re-reading the partition table, not for all but several tools. This commit changes the order of tasks such that the setup of the persistent write storage is performed prior mounting the live ISO. In addition to this change an alternative method using blockdev to re-read the partition was added in case partprobe is not present. This also allows to get rid of the parted dependency which provides partprobe * Tue Oct 17 2023 marcus.schaefer@gmail.com - Bump version: 9.25.16 → 9.25.17 * Mon Oct 16 2023 marcus.schaefer@gmail.com - Fixed argument processing of config.bootoptions Instead of adding an extra space to make the subsequent reading to work, use an awk script that does it without nasty workarounds * Mon Oct 16 2023 marcus.schaefer@gmail.com - Allow test-image-disk-ramdisk to be build locally * Mon Oct 16 2023 marcus.schaefer@gmail.com - Bump version: 9.25.15 → 9.25.16 * Mon Oct 16 2023 marcus.schaefer@gmail.com - Fixed doc search field The search in the documentation is broken with the rtd schema and latest sphinx. Stick with sphinx 5.0.0 for the moment which fixes the issue * Mon Oct 16 2023 marcus.schaefer@gmail.com - Bump version: 9.25.14 → 9.25.15 * Mon Oct 16 2023 marcus.schaefer@gmail.com - Make codacy happy * Mon Oct 16 2023 marcus.schaefer@gmail.com - Support release version in signkey URLs Using one of the $releasever/${releasever} variable placeholders in an URL as part of a <signing key="..."/> element did not replace the placeholder with the value of the <release-version> element. This commit fixes this and also makes sure that the result list for downloading signing keys is unique. This Fixes #2381 * Sun Oct 08 2023 marcus.schaefer@gmail.com - Bump version: 9.25.13 → 9.25.14 * Sun Oct 08 2023 marcus.schaefer@gmail.com - Update pypi release to trusted workflow * Fri Sep 22 2023 marcus.schaefer@gmail.com - Added unit test for testing grub prefix Cover the condition if an extra boot partition is used * Wed Sep 13 2023 marcus.schaefer@gmail.com - Support TOML markup Allow to use TOML markup for the kiwi image description This Fixes #2372 * Wed Sep 13 2023 marcus.schaefer@gmail.com - Fix documentation for btrfs_set_default_volume The behavior documentation regarding the fstab entry when using the btrfs_set_default_volume attribute was wrong. This commit fixes the docs to match the code. Related to Issue #2366 * Wed Sep 13 2023 radoslav.kolev@suse.com - Fix typo in 'image results' doc section * Wed Sep 13 2023 marcus.schaefer@gmail.com - Fixed root entry in fstab for btrfs layout A root (/) entry in fstab for btrfs is only required if no default volume is configured. This commit adapts the code path which adds an fstab entry for (/) to be effective only if btrfs_set_default_volume is set to false. Additionally, the documentation around btrfs_set_default_volume was clarified to describe the behavior the switch triggers. This Fixes #2366 * Wed Sep 13 2023 dcassany@suse.com - Remove community repository from Arch images Community repository is no longer needed for the test image. OBS does not pull any package from this repository and in Arch linux there is not the concept of empty repositories, so the build fails in an OBS context if this repository is included within the build stack. Signed-off-by: David Cassany <dcassany@suse.com> * Thu Sep 07 2023 leif.liddy@gmail.com - use / prefix when boot partition is used * Fri Sep 01 2023 leif.liddy@gmail.com - use os.path.join to create path os.path.join to create the path for the early_boot.write functions this will prevent paths from containing double slashes // * Thu Aug 31 2023 neal@gompa.dev - PKGBUILD: Drop unused Python dependencies We haven't used some of these dependencies in years... * Sat Aug 26 2023 leifliddy@users.noreply.github.com - add info on none console type * Fri Aug 25 2023 leifliddy@users.noreply.github.com - allow value of GRUB_TERMINAL to be empty allow value of GRUB_TERMINAL to be empty. When setting grub_console="none" this now leads to an empty setting of GRUB_TERMINAL in the /etc/default/grub system configuration file. This Fixes #2261 * Thu Aug 24 2023 marcus.schaefer@gmail.com - Bump version: 9.25.12 → 9.25.13 * Tue Aug 22 2023 marcus.schaefer@gmail.com - Fixed mounting of subvolumes for data sync The subvolumes must be mounted below the root of the filesystem tree such that the sync mechanism correctly shuffles the data to the correct volumes. This Fixes #2356 * Tue Aug 22 2023 joerg.vehlow@aox.de - Make verity metadata always readonly If a partition is verity protected, it can never be writable, since verity is by-definition read-only. * Wed Aug 16 2023 mail@evangoo.de - Require DNF 5 in Fedora >= 41, not Fedora > 38 The switch to DNF 5 has been postponed to (likely) Fedora 41. * Tue Aug 15 2023 marcus.schaefer@gmail.com - Add kiwi_live_volid variable to profile As part of the profile environment only the kiwi_install_volid variable existed with the default value 'INSTALL'. This information is correct when building an oem image with installiso set to true. The resulting .install.iso image has the configured volid or the mentioned default 'INSTALL'. However, when building a live ISO image the default volid value is set to 'CDROM' but the profile environment contains kiwi_install_volid which is misleading and in case no volid is provided in the configuration file, the default value would also be a wrong information. This commit cleans up the mess and provides kiwi_install_volid for install ISO media and kiwi_live_volid for Live ISO media with their respective default values * Tue Aug 15 2023 tomschr@users.noreply.github.com - Add some hints about KIWI extensions and dependencies for SLE (#2348) SUSE Linux Enterprise Server (SLES) has KIWI as a package. However, some KIWI plugins and their dependencies can be unavailable. This commit introduces a new section which deals with this aspect. Fixes bsc#1209302 * Fri Aug 11 2023 marcus.schaefer@gmail.com - Package lockdev no longer exists on TW Update TW based integration tests and delete the install of the lockdev package * Thu Aug 10 2023 tom_schr@web.de - Update GitHub Actions "actions/*" part Update to the latest versions: * actions/checkout@v3 * action/setup-python@v4 * action/cache@v3 * Wed Aug 09 2023 marcus.schaefer@gmail.com - Bump version: 9.25.11 → 9.25.12 * Wed Aug 09 2023 marcus.schaefer@gmail.com - Fix double grub entries in hybrid ISO images As consequence of using the "source" grub command instead of the "configfile" command to load the grub config we now see double loading of the same file on ISO media. The reason here is that kiwi ISO media is always hybrid which means it embeds an MBR into the ISO for which the "source" command now can read the same file through two different device paths. This does not happen with the "configfile" grub command. Thus this patch uses "configfile" if we produce an ISO image and "source" for all other image types. The commit also fixes the custom grub template used for ISO images in a way that we only set the "serial" command if there is a serial configuration provided along with the image description. * Thu Aug 03 2023 marcus.schaefer@gmail.com - Update x86/tumbleweed/test-image-systemd-boot systemd package has been splitted and provides systemd-boot in an extra package now * Thu Aug 03 2023 marcus.schaefer@gmail.com - Limit scope of grub _fix method Only apply _fix_grub_to_support_dynamic_efi_and_bios_boot for the x86_64 or ix86 architectures. This Fixes #2343 * Tue Aug 01 2023 marcus.schaefer@gmail.com - Bump version: 9.25.10 → 9.25.11 * Tue Aug 01 2023 leif.liddy@gmail.com - remove trailing whitespace * Tue Aug 01 2023 dcermak@suse.com - rpm spec: add missing requires of typing_extensions for python < 3.8 * Tue Aug 01 2023 dcermak@suse.com - rpm spec: bump copyright year * Tue Aug 01 2023 marcus.schaefer@gmail.com - Fixed linter errors Latest changes regarding type hints introduced linter errors. Also adapt the workflow run which is expected to detect them * Tue Aug 01 2023 leif.liddy@gmail.com - add GRUB_TIMEOUT_STYLE menu option revert trailing space removal * Mon Jul 31 2023 marcus.schaefer@gmail.com - Bump version: 9.25.9 → 9.25.10 * Mon Jul 31 2023 marcus.schaefer@gmail.com - Fixed python interpreter for Release target * Mon Jul 31 2023 marcus.schaefer@gmail.com - Bump version: 9.25.8 → 9.25.9 * Mon Jul 31 2023 marcus.schaefer@gmail.com - Fixed workflow interpreter name Specifying py 3.10 has to be quoted * Mon Jul 31 2023 marcus.schaefer@gmail.com - Bump version: 9.25.7 → 9.25.8 * Mon Jul 31 2023 marcus.schaefer@gmail.com - Fixed doc publishing The github action to do this was still based on py3.6 but the latest changes on tox.ini requires a newer version of tox which doesn't exist for py3.6. Thus run the workflow on a newer python version * Mon Jul 31 2023 marcus.schaefer@gmail.com - Bump version: 9.25.6 → 9.25.7 * Mon Jul 31 2023 marcus.schaefer@gmail.com - Fix linter check, whitespace after : * Mon Jul 31 2023 marcus.schaefer@gmail.com - Bump version: 9.25.5 → 9.25.6 * Mon Jul 31 2023 marcus.schaefer@gmail.com - Pass rootflags if no default volume is set In case of btrfs and if btrfs_set_default_volume is explicitly switched off, we create the correct rootflags= kernel cmdline entry to tell the system about the root volume for booting * Thu Jul 27 2023 slowpeek@users.noreply.github.com - Use 'source' instead of 'configfile' in generated grub.cfg Details are outlined in issue #2320 * Thu Jul 27 2023 marcus.schaefer@gmail.com - Make sure btrfs root volume is used when needed With the possibility to switch off setting the default volume an issue at other parts in the kiwi code which mounted the btrfs based system were uncovered. Without any default volume set it's required to transport the root volume if different from / and pass the respective subvol= option to the mount. This commit fixes it at the places where kiwi trusted btrfs to have a correct default volume set * Thu Jul 27 2023 marcus.schaefer@gmail.com - update Fedora integration test The setting of a default volume is unwanted here * Thu Jul 27 2023 marcus.schaefer@gmail.com - add btrfs_set_default_volume attribute By default kiwi runs btrfs set-default on the volume that is considered the default volume according to the btrfs settings and defaults. btrfs_set_default_volume="false" allows to deactivate this action. Along with the change also the misleading name of the btrfs_create_toplevel_subvolume has been changed to root_is_subvolume * Tue Jul 25 2023 marcus.schaefer@gmail.com - Fixed check for extended attributes Only if libc reports errno 95 Operation not supported the method should return that extended attributes are not supported. Also add a debug information about the result of the call to get further information in the log file * Tue Jul 25 2023 marcus.schaefer@gmail.com - Fixed call of tox for xdist Passing arguments to modules called by tox has changed its syntax * Tue Jul 25 2023 marcus.schaefer@gmail.com - Take subvol mount option for root into account If the rootfs is btrfs based make sure the fstab entry for it takes the name of the root subvolume into account * Tue Jul 25 2023 marcus.schaefer@gmail.com - Fix fallback secure boot setup Don't copy the same file. This case happens when rebuilding an image using --allow-existing-root when the fallback setup has done its job already in the first run * Mon Jul 24 2023 dcermak@suse.com - Fix type hints of IsoToolXorrIso.init_iso_creation_parameters * Mon Jul 24 2023 dcermak@suse.com - xorriso: handle case when isohdpfx.bin not found * Mon Jul 24 2023 dcermak@suse.com - Fix type hints for the Pacman package manager * Mon Jul 24 2023 dcermak@suse.com - Type hint the Path module * Mon Jul 24 2023 dcermak@suse.com - Add better type hints to ContainerImageOCI and ContainerImageAppx * Mon Jul 24 2023 dcermak@suse.com - Add ContainerImageBase abstract base class for OCI & Appx * Mon Jul 24 2023 dcermak@suse.com - Add type hints to the Compress module * Mon Jul 24 2023 dcermak@suse.com - Import modules in OCI.new() explicitly Also, add a type hint to the return type of OCI.new() so that this can now be verified with mypy * Mon Jul 24 2023 marcus.schaefer@gmail.com - Update contributing chapter Fix and update the information how to contribute. Due to the latest changes in tox.ini some requirements regarding the tox and python versions came up. This commit updates the docs in this regard * Mon Jul 24 2023 marcus.schaefer@gmail.com - Added py3.11 tox target * Mon Jul 24 2023 marcus.schaefer@gmail.com - Fixed writing correct keyfile path to etc/crypttab The keyfile path was not correctly set in etc/crypttab which caused systemd not being able to read the keyfile, consequently asking for a passphrase. This commit fixes the writing of the crypttab and also fixes a python name clash with the "os" namespace. * Mon Jul 24 2023 marcus.schaefer@gmail.com - Cleanup condition for SECURE_BOOT=yes|no The statement serves the purpose for an if/else construction to become a better read. In addition delete the probably left-over print statement from the test * Mon Jul 24 2023 marcus.schaefer@gmail.com - Delete pyxattr from setup.py Followup on Issue #2330. Forgot to delete pyxattr requirement from setup.py * Mon Jul 24 2023 marcus.schaefer@gmail.com - Add volid to profile for all ISO based image types Add provided volume id (or the default value) to the profile environment file for all ISO based image types. So far this was only done for installation ISO media but not for simple live ISO images. * Mon Jul 24 2023 marcus.schaefer@gmail.com - Fixed mail address in spec file * Thu Jul 20 2023 marcus.schaefer@gmail.com - Delete (py)xattr module requirement The required functionality is provided by the core os library * Thu Jul 20 2023 github@glidos.net - Fix failure when booting KIS via NBD In the NBD booting case, the function initGlobalDevices in kiwi-overlay-root.sh runs the command ndb-client to connect the remote NBD share to the device /dev/nbd0. The script parse-kiwi-overlay.sh, on the other hand, incorrectly parses overlay:nbd=ip:export to /dev/ip/export, leading to the system waiting for /dev/ip/export to appear. This commit corrects the problem. With this change NDB booting of KIS images now succeeds, although only if the ndb package is added to the appliance description. * Wed Jul 19 2023 marcus.schaefer@gmail.com - Use bootpartition for Fedora integration test When using btrfs with the proposed layout for testing the delivered grub bios module for the Fedora system used to build the integration test (FC37) is not capable to find the grub config file. A manual call for configfile in the grub shell fixes this with the existing kiwi created grub early-boot script. However, it is expected that the delivered grub image works and kiwi only creates its own one if no distro delivered grub image was found. To make the integration test functional for both BIOS and EFI the simple solution is to use an extra not btrfs based boot partition. This still allows to test the desired btrfs layout in terms of volumes and sub-volumes and does not break on any of the boot methods. * Wed Jul 19 2023 marcus.schaefer@gmail.com - Fixed apply_attributes_on_volume Make the function call more robust in terms of path separation * Wed Jul 19 2023 dcermak@suse.com - Use tox isolated_build instead of hardcoding the envdir * Tue Jul 18 2023 marcus.schaefer@gmail.com - Add parent attribute to volume setup For the btrfs volume management, allow to put a volume into a specific parent volume. If not specified the volume is below the default volume This Fixes #2316 * Tue Jul 18 2023 jesus.bv@suse.com - Add SECURE_BOOT no when the firmware is efi This Fixes bsc#1211102 * Sun Jul 16 2023 marcus.schaefer@gmail.com - Use btrfs for fedora/test-image-live-disk test Change the Virtual profile to build a btrfs based image for testing respective btrfs layouts * Sun Jul 16 2023 marcus.schaefer@gmail.com - Add btrfs_create_toplevel_subvolume attribute Allow to explicitly select if a toplevel subvolume should be created or not. To avoid a behavior change, kiwi will create a toplevel based btrfs structure if this attribute is not specified. However, a deprecation message to inform about future behavior change will be printed. This is related to Issue #2316 * Wed Jul 12 2023 marcus.schaefer@gmail.com - Evaluate the @root volume name also for btrfs In a volume setup the special volume declaration <volume name="@root=identifier"/> was only evaluated for the LVM volume manager. In case of btrfs a hardcoded root volume name '@' was used. This commit allows to specify a custom name for the root volume for btrfs as well and also allows to specify that there should be no such root volume. Example: <volume name="@root=@"/> Name the root volume '@'. If not specified this stays as the default to stay compatible <volume name="@root=/"/> Indicate no root volume is wanted. All subvolumes resides below root (/) <volume name="@root=foo"/> Name the root volume 'foo' This is related to Issue #2316 and a first patch to address the requested changes * Mon Jul 10 2023 marcus.schaefer@gmail.com - Bump version: 9.25.4 → 9.25.5 * Mon Jul 10 2023 marcus.schaefer@gmail.com - Fixed regression in bootloader config attr access use_disk_password is not an attribute that exists in all BootLoaderConfig instances. Thus it's a mistake to access the attribute in the disk builder * Mon Jul 10 2023 marcus.schaefer@gmail.com - Bump version: 9.25.3 → 9.25.4 * Mon Jul 10 2023 marcus.schaefer@gmail.com - Load isoschematron module on demand Due to a license issue the isoschematron code might not be available in the lxml package from the distributor. This commit uses isoschematron on demand. If present on the system it gets loaded and used, if not a warning that the schematron validation will be skipped is provided. This Fixes #2314 * Sat Jul 08 2023 slowpeek@users.noreply.github.com - Improve loopback.cfg example submenu+source should be preferred over menuentry+configfile: - submenu creates a new context, menuentry does not. As a result, changes made to vars inside menuentry's braces pollute the current scope. In this particular case what is notably wrong is root=loop happens in the current scope. If we activate the "Boot from openSUSE ISO" menu entry and then press Esc to return back to explore other menu entries, $root would still be set to 'loop'. Instead of manually saving and restoring $root value it is better to wrap the whole thing in a new context with submenu - configfile is not just 'source in a new context', it has as least one side effect. For details look for grub_err_printed_errors usage in [1] and [2] in grub sources [1] grub-core/normal/menu.c [2] grub-core/normal/menu_entry.c * Fri Jul 07 2023 marcus.schaefer@gmail.com - Bump version: 9.25.2 → 9.25.3 * Wed Jul 05 2023 okir@suse.com - Add improvements for fully encrypted disk images This commit adds more flexibility when using LUKS encrypted images. In addition support for key derivation on user provided passwords has been added. The following new attributes were added to the schema: type.luks_randomize allow to enable/disable the data randomizing if luks encryption is used type.luks_pbkdf When LUKS unlocks a key slot using a user provided password, it uses a so-called key derivation function to derive a symmetric encryption key from the password. Not all boot loaders support all KDF algorithms, hence this attribute can be used to select a specific algorithm bootloader.use_disk_password When /boot is encrypted, make the boot loader store the password in its configuration file (in cleartext). This is useful for full disk encryption images Signed-off-by: Olaf Kirch <okir@suse.com> * Wed Jul 05 2023 okir@suse.com - Change location of LUKS keyfile to /root/.root.keyfile In some configuration (eg on a transactional system), the root file system is read-only, which means we will not be able to remove the stale .root.keyfile after firstboot. This patch changes the location of the keyfile and places it in /root/.root.keyfile instead, because root's home directory is much more likely to be read/write. Also fixed the associated unit test (thanks to schaefi). Signed-off-by: Olaf Kirch <okir@suse.com> * Tue Jul 04 2023 marcus.schaefer@gmail.com - Add alternative re-reading of the partition table To inform the kernel about disk geometry changes, kiwi uses partprobe as a primary tool. However it is provided by parted and not necessarily available due to the package requirements on the dracut module. A second attempt via blockdev which is expected to exist is therefore made by this commit * Tue Jul 04 2023 marcus.schaefer@gmail.com - Refactor the luks_device class data transport Also add missing unit tests * Mon Jul 03 2023 marcus.schaefer@gmail.com - test_get_build_type_bootloader_use_disk_password Add missing unit test for use_disk_password attribute * Fri Jun 16 2023 marcus.schaefer@gmail.com - Bump version: 9.25.1 → 9.25.2 * Fri Jun 16 2023 marcus.schaefer@gmail.com - Fix repository setup for microdnf An instance of the Repository class for microdnf has to use RepositoryDnf4 * Fri Jun 16 2023 marcus.schaefer@gmail.com - Bump version: 9.25.0 → 9.25.1 * Wed Jun 14 2023 marcus.schaefer@gmail.com - Fixed image install of dnf package manager If the package manager is set to 'dnf4', this name is taken also as package name to install this package manager into the image. Problem is 'dnf4' is not a valid package name. The correct name for 'dnf4' is 'dnf'. This commit fixes the name bug introduced with the changes for Issue #2262 * Wed Jun 14 2023 marcus.schaefer@gmail.com - Bump version: 9.24.61 → 9.25.0 * Wed Jun 14 2023 marcus.schaefer@gmail.com - Add more details about used grub image(s) * Sat Jun 10 2023 me@lvfrfn.in.ua - make alias unique in any cases * Thu Jun 01 2023 wfeldt@opensuse.org - The actual padding is 0. And switch to sha256. * Mon May 29 2023 marcus.schaefer@gmail.com - Change package manager dnf to dnf4 With dnf5 there is a successor for dnf but there will also be a transition period where there will be both, the former dnf and the new dnf5 available. For a clear distinction between the two we got the recommendation from the RedHat team to support both in different namespaces. This commit now implements a backward compatible change for kiwi which includes the following modifications: * XSL stylesheet for automatic schema transformation from <packagemanager>dnf</packagemanager> to <packagemanager>dnf4</packagemanager> * Code copy of dnf API interface from PackageManagerDnf -> PackageManagerDnf4 RepositoryDnf -> RepositoryDnf4 * Deprecation of former Dnf API interface The code change here will force developers to adapt their code if they used RepositoryDnf / PackageManagerDnf classes in their python code. After this change developers will be dropped into a raise condition which exits kiwi at the time of the call. Related to Issue #2300 and Issue #2262 * Thu May 25 2023 hp@urpla.net - Documentation: clearify dnf based collection selectors With 89b5a6f5269, the selection of collections was changed to allow group IDs only for dnf based package installers. * Thu May 25 2023 marcus.schaefer@gmail.com - Update rawhide integration tests Use dnf5 for rawhide. It's hard to differentiate between old and new dnf version on Fedora Rawhide. Thus let's make the move to dnf5. Since microdnf is also wrapped into dnf5 the integration test for microdnf got renamed to dnf5 * Wed May 24 2023 marcus.schaefer@gmail.com - Add support for dnf5 package manager dnf5 is the next generation of the dnf package manager. dnf5 is not a drop in replacement to dnf which is the reason why this commit adds a new interface class for package and repository management under a new name: dnf5. Beginning with Fedora >= 39 dnf5 will be the standard. Thus the requirements on the packaging level were adapted too. This Fixes #2300 This Fixes #2262 * Wed May 24 2023 isaac.true@canonical.com - dracut: modules.d: 90kiwi-overlay: add support for device mapper targets Allow specifying a device mapper target for the root of the overlayfs. This adds support for features like adding a dm-verity or dm-crypt backend to the overlayfs. A device mapper target can be specified using the following syntax on the kernel command line: root=overlay:MAPPER=verityRoot This translates to using the path `/dev/mapper/verityRoot` as the base of the overlayfs. Signed-off-by: Isaac True <isaac.true@canonical.com> * Wed May 24 2023 marcus.schaefer@gmail.com - Bump version: 9.24.60 → 9.24.61 * Tue May 23 2023 isaac.true@canonical.com - dracut: modules.d: 99kiwi-lib: add bash shebangs and dependency The scripts in the kiwi-lib module use bash-specific syntax like `function`, which causes the script to fail if another shell (like dash or busybox) is used to interpret the scripts. Specifically set the shebang to use bash as the shell interpreter and add bash as a dependency to the dracut module to fix this. This resolves the following errors which are printed at boot when busybox tries to interpret the scripts: /bin/dracut-pre-mount: 3: /lib/kiwi-filesystem-lib.sh: function: not found /bin/dracut-pre-mount: 15: /lib/kiwi-filesystem-lib.sh: Syntax error: "}" unexpected Signed-off-by: Isaac True <isaac.true@canonical.com> * Mon May 22 2023 jsrain@suse.com - Do not depend on dnf for SUSE ALP * Tue May 16 2023 marcus.schaefer@gmail.com - Added appx-util as WSL requires for Fedora/RHEL Make sure the kiwi-systemdeps-containers-wsl meta package pulls in the required tools for Fedora/RHEL when building WSL containers. This is a followup to #2286 * Tue May 16 2023 marcus.schaefer@gmail.com - Add cpio to core systemdeps requires list * Thu May 11 2023 loeser@atix.de - Find correct `shimx64.efi` binary for EL derivatives Sort globbing result by length and look for `shim[a-z]*.efi` pattern first before falling back to `shim.efi`. This allows us to match correct shim binary for SecureBoot enabled systems. The following example shows the content of recent shim package from AlmaLinux 9: $ ls -1 ~/Downloads/shim-almalinux-x64/boot/efi/EFI/almalinux BOOTX64.CSV mmx64.efi shim.efi shimx64-almalinux.efi shimx64.efi Sorted globbing result is: shimx64.efi shimx64-almalinux.efi First match wins (here `shimx64.efi`) which is the correct binary to be used as it is signed by M$. Was tested with shim packages for CentOS (x64, ia32, aarch64), Fedora 36 (x64), AlmaLinux 9 (x64, aarch64). * Sat May 06 2023 marcus.schaefer@gmail.com - Bump version: 9.24.59 → 9.24.60 * Thu May 04 2023 marcus.schaefer@gmail.com - Allow to create plain cpio archives Allow to create plain cpio archives to serve the idea of the mkosi initrd concept * Fri Apr 28 2023 fvogt@suse.de - Fix restoration of grub2-install (bsc#1210948) It checked for grub2-install.orig in the host, not the buildroot. This meant that it left /usr/sbin/grub2-install as a noop. * Fri Apr 28 2023 dcassany@suse.com - Use cross arch macros to interpret uint64_t This commit adds inttypes.h to make use of PRIu64 style macros in order to properly translate uint64_t across different architectures. More specific this allows the code to compile for ix86. Signed-off-by: David Cassany <dcassany@suse.com> * Tue Apr 25 2023 loeser@atix.de - Look for specific `shimx64.efi` binary first In CentOS, `/boot/efi/EFI/*/shim*.efi` extends to `/boot/efi/EFI/centos/shimx64-centos.efi` which is not signed by M$ but CentOS itself. This in turn does not boot on SecureBoot enabled systems. * Mon Apr 24 2023 marcus.schaefer@gmail.com - Delete score card Too flaky, broken most of the time and I'm not sure how much value it adds to the project overall * Mon Apr 24 2023 marcus.schaefer@gmail.com - Fix score card action * Mon Apr 24 2023 marcus.schaefer@gmail.com - Update TW build tests plymouth-plugin-script must be explicitly added now * Mon Apr 24 2023 marcus.schaefer@gmail.com - Revert "Add zstd and xzio to grub image" This reverts commit af8c702db0a60ed4abeba8686d4e8475c410c58d. The grub modules does not exist in all grub installations. A different implementation is required * Mon Apr 24 2023 marcus.schaefer@gmail.com - Update TW integration tests change theme from bgrt to breeze. TW has deleted bgrt * Mon Apr 24 2023 marcus.schaefer@gmail.com - Fixed writing URIs including ASCII encoding * Fri Apr 21 2023 marcus.schaefer@gmail.com - Split container systemdeps in OCI and WSL * Thu Apr 20 2023 marcus.schaefer@gmail.com - Update kiwi-systemdeps-containers requires list Do not strictly require fb-util-for-appx. In order to create WSL containers fb-util-for-appx is a requirement but usually users create OCI containers and WSL containers are still a niche case. Thus it's ok to reduce the requirement into a recommends. This Fixes #2284 * Thu Apr 20 2023 marcus.schaefer@gmail.com - Encode remote URLs Special characters in a URL e.g the @ sign needs to be encoded as part of a remote URL. * Tue Apr 18 2023 marcus.schaefer@gmail.com - Fix workflow run * Tue Apr 18 2023 marcus.schaefer@gmail.com - Fixed Fedora prebuild EFI binary lookup When creating CentOS/Fedora live media, kiwi does not install the right signed grub2 EFI binary. This was caused by kiwi not being aware of the gcdx64.efi(x86_64), gcdaa64.efi(aarch64) binaries for CD/ISO boot. This Fixes #2270 * Thu Apr 13 2023 marcus.schaefer@gmail.com - Bump version: 9.24.58 → 9.24.59 * Thu Apr 13 2023 marcus.schaefer@gmail.com - Add zstd and xzio to grub image If kiwi builds its own grub image, make sure the compression algorithms zstd and xz are supported * Wed Apr 12 2023 dcassany@suse.com - Adding a comment to explain the s390 specific path Signed-off-by: David Cassany <dcassany@suse.com> * Wed Apr 12 2023 dcassany@suse.com - Use parted only in s390 arch This commit ensures parted is only called in dracut-kiwi-lib for s390 arch. It also fixes the spec to only require parted for s390 builds. In addition parted requirement has been removed from dracut-kiwi-live package since parted is not used in any other dracut module beyond kiwi-lib. Signed-off-by: David Cassany <dcassany@suse.com> * Tue Apr 04 2023 loeser@atix.de - Add potential shim binary for Ubuntu Looks like `shim*.efi` is gone in latest `shim-signed` package. The package now contains `shimx64.efi.signed.latest` and `shimx64.efi.signed.previous` binaries, let's take latest. shim-signed_1.40.9+15.7-0ubuntu1_amd64/usr/lib/shim/: total 4688 drwxr-xr-x. 3 root root 209 Jan 31 12:57 . drwxr-xr-x. 3 root root 18 Jan 31 12:57 .. - rw-r--r--. 1 root root 108 Jan 31 12:57 BOOTX64.CSV - rwxr-xr-x. 1 root root 1622 Jan 31 12:57 is-not-revoked drwxr-xr-x. 2 root root 25 Jan 31 12:57 mok - rw-r--r--. 1 root root 950891 Jan 31 12:57 shimx64.efi - rw-r--r--. 1 root root 962400 Jan 31 12:57 shimx64.efi.dualsigned - rw-r--r--. 1 root root 960472 Jan 31 12:57 shimx64.efi.signed.latest - rw-r--r--. 1 root root 955656 Jan 31 12:57 shimx64.efi.signed.previous - rw-r--r--. 1 root root 88296 Jan 27 20:09 fbx64.efi - rw-r--r--. 1 root root 860824 Jan 27 20:09 mmx64.efi shim-signed_1.40.7+15.4-0ubuntu9_amd64/usr/lib/shim/: total 3728 drwxr-xr-x. 3 root root 145 Aug 13 2021 . drwxr-xr-x. 3 root root 18 Aug 13 2021 .. - rw-r--r--. 1 root root 108 Aug 13 2021 BOOTX64.CSV - rw-r--r--. 1 root root 85672 Aug 13 2021 fbx64.efi - rw-r--r--. 1 root root 856232 Aug 13 2021 mmx64.efi drwxr-xr-x. 2 root root 25 Aug 13 2021 mok - rw-r--r--. 1 root root 947143 Aug 13 2021 shimx64.efi - rw-r--r--. 1 root root 957576 Aug 13 2021 shimx64.efi.dualsigned - rw-r--r--. 1 root root 955656 Aug 13 2021 shimx64.efi.signed * Mon Apr 03 2023 dcassany@suse.com - Expand DASD partition table with parted Signed-off-by: David Cassany <dcassany@suse.com> * Thu Mar 30 2023 marcus.schaefer@gmail.com - Fixed evaluation of custom start sector In case an alternative partition table start sector is configured, the check to effectively apply it should be based on the partition table type not on the firmware name * Thu Mar 30 2023 dcassany@suse.com - Add parted dependency for s390 Signed-off-by: David Cassany <dcassany@suse.com> * Tue Mar 28 2023 marcus.schaefer@gmail.com - Bump version: 9.24.57 → 9.24.58 * Mon Mar 27 2023 marcus.schaefer@gmail.com - Build leap btrfs test without root as snapshot So far no btrfs integration test without root as snapshot existed * Sat Mar 25 2023 marcus.schaefer@gmail.com - Support EFI boot from squashfs grub supports reading from squashfs. If no extra bootloader installation is required this allows to boot from a squashfs rootfs without extra boot partition. The prebuilt grub images usually does not contain the squash4 module which is the reason why kiwi creates the EFI module itself if the system is fully immutable. Please note; the grub configuration must be provided manually as part of the image description in this case because grub-mkconfig at the time it has to be called has no write permissions anymore. * Fri Mar 24 2023 fvogt@suse.de - Fix /.snapshots mounting in the btrfs volume manager The /@/.snapshots subvolume was not mounted as /.snapshots in the root filesystem snapshot. This is now necessary for snapper to work. While at it, create 1/snapshot as plain subvolume, it does not make sense to snapshot @ itself. * Thu Mar 16 2023 marcus.schaefer@gmail.com - Add support for config-host-overlay.sh script * Thu Mar 16 2023 marcus.schaefer@gmail.com - Fixed build of dracut-kiwi-verity The spec file was missing the package definition to actually create the dracut-kiwi-verity package. In addition the fixed setting to the C standard 17 caused build errors for me on distributions that uses C standard 11/12. * Wed Mar 15 2023 marcus.schaefer@gmail.com - Add selinux integration test for Leap SUSE systems supports both, apparmor and selinux, whereas apparmor is the default. As selinux requires to create security labels during build time of an image, this integration test checks if the labeling works for SUSE based OS'es. This Fixes #2244 * Tue Mar 14 2023 marcus.schaefer@gmail.com - Allow custom template evaluation for install ISO So far only Live ISO images allowed for custom template usage * Tue Mar 14 2023 marcus.schaefer@gmail.com - Fix Arch Linux Live ISO integration test Switch to grub for booting the ISO, for some reason isolinux refused to work and there is no priority to dig into the issue. This Fixes #2233 * Tue Mar 14 2023 marcus.schaefer@gmail.com - Fix Arch Linux EFI install ISO integration test kiwi has code in bootloader/template/grub2.py which uses linuxefi/initrdefi commands according to the configured grub_platform. These commands does not exist on Arch and therefore the integration test provides its own ISO template. This Fixes #2232 * Tue Mar 14 2023 marcus.schaefer@gmail.com - Add dracut-kiwi-verity dracut module package When building an image with an embedded verity hash via the embed_verity_metadata="true" type attribute it is required to setup the device map at boot time accordingly. The dracut module in this commit provides the needed tooling as a POSIX C implementation which is able to read the kiwi embedded verityhash from the offset of the partition. Kudos goes to Isaac True <isaac.true@canonical.com> Co-authored-by: Isaac True <isaac.true@canonical.com> Signed-off-by: Isaac True <isaac.true@canonical.com> * Mon Mar 13 2023 jgleissner@suse.com - (Re-)add support for 'anymarkup' < 0.5.0 Fall back to module 'anymarkup' if 'anymarkup_core' is not available. * Sat Mar 11 2023 marcus.schaefer@gmail.com - Support UNIXNODE device names for overlayroot When no other persistent naming schema can be used to identify the device there should be the option to specify the kernel unix device node name * Fri Mar 10 2023 jgleissner@suse.com - Use module anymarkup-core instead of anymarkup Use 'anymarkup-core' directly instead of wrapper 'anymarkup'. * Thu Mar 09 2023 marcus.schaefer@gmail.com - Fix permissions of live ISO system files Make sure initrd and squashfs.img takes permissions o644 This Fixes #2246 * Wed Mar 08 2023 marcus.schaefer@gmail.com - Update TW test-image-rpi-overlay build test It used rd.root.overlay.readonly but it meant rd.root.overlay.temporary * Wed Mar 08 2023 marcus.schaefer@gmail.com - Fixed rd.root.overlay.readonly handling Fix the option implementation to actually do what it is supposed to do, boot the system in fll read-only mode. In addition a new parameter named rd.root.overlay.temporary has been introduced which allows to boot up in read-write mode but the write area is a tmpfs. Thus persistency only during runtime. Updated the documentation accordingly * Tue Mar 07 2023 marcus.schaefer@gmail.com - Fixed tumbleweed build tests opie no longer in TW * Tue Mar 07 2023 marcus.schaefer@gmail.com - Fixed tumbleweed/test-image-azure opie no longer in TW * Tue Mar 07 2023 marcus.schaefer@gmail.com - Support PARTLABEL device names for overlayroot When using GPT a partlabel exists that can also be used as a device reference * Tue Mar 07 2023 marcus.schaefer@gmail.com - Fixed kernel parameters for overlayroot setup The device selection for the read-only and read-write devices in an overlayroot setup was implicitly done in the kiwi-overlay dracut module by reading the root= information. This is a concept which barely works and should be refactored in a way that the root= information always points to the root device and that an eventually existing write location is explicitly provided via the existing rd.root.overlay.write parameter which is allowed to be overwritten for providing an alternative write location. Making this information consistent and explicit on the kernel commandline simplifies the dracut code to consume this information correctly. This Fixes #2251 * Sun Mar 05 2023 marcus.schaefer@gmail.com - Fixed conditional options evaluation The former condition caused the end result list to be empty * Sat Feb 11 2023 marcus.schaefer@gmail.com - Add support for creating delta containers Add new attribute delta_root="true|false" which in combination with derived_from="OCI-base-image" allows to create a delta root tree only containing the differences between the OCI-base-image and the actions taken by the kiwi prepare step. Based on the delta root tree the subsequent image creation process starts. Such an incomplete root tree is only useful under certain circumstances which is also the reason why the feature is only available to the oci and docker image types. * Fri Feb 10 2023 marcus.schaefer@gmail.com - Bump version: 9.24.56 → 9.24.57 * Sat Jan 28 2023 marcus.schaefer@gmail.com - Allow squashfscompression for plain squashfs The schematron rule to limit the squashfscompression attribute to certain image types did not allow it for a plain squashfs filesystem build. This commit fixes that limitation. This Fixes #2241 * Wed Jan 18 2023 dcassany@suse.com - Use rsync defaults to sync the initrd root-tree This commits makes use of rsync default options to sync the root-tree of the boot image for custom initrds. Fixes bsc#1207128 where it was noted hardlinks were not preserved inside the initrd. Signed-off-by: David Cassany <dcassany@suse.com> * Tue Jan 17 2023 marcus.schaefer@gmail.com - Fixed wrong test assertions Former versions of pytest did ignore invalid assertions. Now they are reported as an error and show the mistakes of the past * Tue Jan 17 2023 marcus.schaefer@gmail.com - Added 90-brd.conf for test-image-disk-ramdisk By default the brd ramdisk module is no longer added to the initrd. For ramdisk deployments this is required though. This Fixes #2230 * Sun Jan 15 2023 marcus.schaefer@gmail.com - Delete CentOS v7 build tests CentOS v7 is EOL for kiwi image build tests * Thu Jan 05 2023 marcus.schaefer@gmail.com - Allow to specify fixed size for the root partition So far the last partition (typically root) in the partition table takes all the rest space of the partition table in the image file. At deployment/boot time users had several options to let that partition grow to a custom size. However, during build time of the image it was not possible to specify a specific fixed size for the root partition as we don't wanted to produce gaps of unpartitioned space in the image file. It has turned out that there is hardware available which requires a partition to be an exact multiple of some blocksize. As kiwi supports size constraints for all other partitions but not for root this commit now allows for it. The oem-systemsize element is now also taken into account at build time of the image if the oem-resize which would do that at deployment/boot time is switched off like the following example shows: ```xml <oemconfig> <!-- set root partition to 2048MB --> <oem-systemsize>2048</oem-systemsize> <oem-resize>false</oem-resize> </oemconfig> ``` This Fixes #2203 * Wed Jan 04 2023 marcus.schaefer@gmail.com - Delete ppc:fedora from testing report * Wed Jan 04 2023 marcus.schaefer@gmail.com - Remove Fedora PPC build test from index The integration test unfortunately never got tested anywhere is outdated and I have no PPC hardware here to run any tests. Let's add a real test if there is demand for it * Wed Jan 04 2023 marcus.schaefer@gmail.com - Added kiwi-settings for Fedora arm build tests * Mon Jan 02 2023 marcus.schaefer@gmail.com - Pass along tmpdir to skopeo When using the --temp-dir parameter, it was not passed to the skopeo calls when building a container image with kiwi. * Thu Dec 22 2022 marcus.schaefer@gmail.com - Allow fat16/fat32 as filesystem in partitions The partitions element allows to specify the filesystem for the individual partition. In the schema fat16 and fat32 were missing * Thu Dec 22 2022 rjschwei@suse.com - Support new bootloadersettings section Allow to specify an optional <bootloadersettings> element inside of the <bootloader> section. The information is used to specify custom arguments for the tools called in a bootloader setup procedure, e.g shim-install, grub-install or grub-mkconfig. kiwi does not judge on the given parameters and if the provided data is effectively used depends on the individual bootloader implementation. In this commit the data will be effectively handled if bootloader="grub2" is configured. More precisely the custom additions to support SUSE's TPM model with grub2 can be configured as follows: <bootloadersettings> <shimoption name="--suse-enable-tpm"/> <installoption name="--suse-enable-tpm"/> <configoption name="--set-trusted-boot"/> </bootloadersettings> This Fixes #2224 * Tue Dec 20 2022 marcus.schaefer@gmail.com - Stick with tox v3.28.0 for unit testing tox >= 3.0.15 together with virtualenv >= 20.17.1 raises strange incompatibilities and prevents the unit test run because tox calls virtualenv in a wrong way leading to strange error messages like: - -- usage: virtualenv ... virtualenv: error: argument dest: destination '{check,devel,packagedoc,doc,doc_gh_pages,doc_suse,doc_man,scripts,}: /home/runner/work/kiwi/kiwi/.tox/3\n/home/runner/work/kiwi/kiwi/.tox/3.8' must not contain the path separator (:) as this would break the activation scripts - -- All this doesn't make sense to me at all and worked without any issues before. * Tue Dec 20 2022 marcus.schaefer@gmail.com - Bump version: 9.24.55 → 9.24.56 * Tue Dec 20 2022 marcus.schaefer@gmail.com - Fix gh-pages publish * Sun Dec 18 2022 marcus.schaefer@gmail.com - Fixed systemd boot integration test for rawhide systemd-boot was splitted in preparation for secure boot. The unsigned version of the EFI binary is used in the test so far * Sun Dec 18 2022 marcus.schaefer@gmail.com - Added device mapper setting for s390 on TW Use kpartx as partx fails * Sun Dec 18 2022 marcus.schaefer@gmail.com - Added device mapper setting for s390 Use kpartx as partx fails * Sun Dec 18 2022 marcus.schaefer@gmail.com - Bump version: 9.24.54 → 9.24.55 * Wed Dec 14 2022 marcus.schaefer@gmail.com - Allow to pass credentials as file reference * Tue Dec 13 2022 marcus.schaefer@gmail.com - Fixed handling of container archive compression In kiwi we support handling of the container archive compression via a runtime configuration setting of the following form, eg in /etc/kiwi.yml ```yaml container: [#] Specify compression for container images [#] Possible values are true, false, xz or none. - compress: true ``` However, this setting was only taken into account in the kiwi bundler. Meaning if the user calls 'kiwi result bundle ...' after the container image has been created the result bundler will take the compression setting into account. From my perspective this behavior is misleading and also prevents users from creating compressed container archives without a subsequent result bundler call. Therefore this commit moves the place to handle the compression setting into the container classes. The bundler code for containers will no longer operate on it and just takes what it gets, which can be either compressed or not. The default setting was "No compression" and this was not changed. This Fixes #2217 * Tue Dec 13 2022 marcus.schaefer@gmail.com - Add type hints for OCI and APPX classes * Sun Dec 11 2022 marcus.schaefer@gmail.com - Bump version: 9.24.53 → 9.24.54 * Sun Dec 11 2022 marcus.schaefer@gmail.com - Fix publish to pypi bind gh-action module to v1 release * Sun Dec 11 2022 marcus.schaefer@gmail.com - Bump version: 9.24.52 → 9.24.53 * Sat Dec 10 2022 marcus.schaefer@gmail.com - Use ubuntu-20.04 as github hosted runner It seems on ubuntu-latest no python 3.6 is available anymore * Sat Dec 10 2022 marcus.schaefer@gmail.com - Allow external commands in tox targets * Fri Dec 09 2022 marcus.schaefer@gmail.com - Fix unit test run for BLS spec base class Do not really call blkid as used in get_boot_cmdline * Fri Dec 09 2022 marcus.schaefer@gmail.com - Fixed typo in documentation Capitalize at the start of a sentence. This Fixes #2216 * Fri Dec 02 2022 marcus.schaefer@gmail.com - Fix unit tests to run in parallel Setting sys.argv and global variables impacts tests such that they cannot run in parallel. The little footprint of excluding the --config global args test from the coverage is beneficial to allow parallel test runs * Fri Dec 02 2022 marcus.schaefer@gmail.com - Don't show secret parts of an URI Using URIs of the form uri://user:pass@location should not be logged or printed including its credential data * Fri Dec 02 2022 marcus.schaefer@gmail.com - Don't use split on potential None value * Thu Dec 01 2022 marcus.schaefer@gmail.com - Allow to select partition mapper tool The recent change from kpartx to partx caused some appliance builds to break depending on their configuration. I spotted issues when building disks with veritysetup or integritysetup root devices. There are also issues with grub-install on other architectures e.g s390. It seems partx cannot be used as a drop in replacement and so I suggest to make this a runtime configuration option with partx as the new default but also allow for the old method * Thu Dec 01 2022 marcus.schaefer@gmail.com - Bump version: 9.24.51 → 9.24.52 * Wed Nov 30 2022 marcus.schaefer@gmail.com - Fix status indicator in helper/build_status.sh colored output only worked for toplevel results * Wed Nov 30 2022 neal@gompa.dev - Eliminate redundant partx calls for cleaning up loop devices partx can clean up all partition loops associated with a loop device when deleting the main loop device. Apparently, sometimes it goes and does this even when only deleting the partition loop, so to avoid this problem, we will just eliminate the redundant call. Fixes: 8f2b8fda82a37d7a7ebbf8a6557870cc63b0ae91 * Wed Nov 30 2022 marcus.schaefer@gmail.com - Support repo URI's with credentials on cmdline Specifying a repository as part of the image description allows for credentials via the username and password attributes. Howver, repositories can also be specified on the commandline via the --set-repo / --add-repo options. The options on the commandline did not allow to specify credentials so far. This commit adds the commandline options --set-repo-credentials and --add-repo-credentials to support them * Wed Nov 30 2022 marcus.schaefer@gmail.com - Update test-image-vagrant virtualbox-guest-x11 seems to be deleted from TW * Wed Nov 30 2022 marcus.schaefer@gmail.com - Fixed test-image-custom-partitions The test was done prior kiwi added the partitions element and demonstrates how to influence the partition table via scripts. These scripts uses kpartx and the device mapper. Due to the recent change from kpartx to partx the scripts must be adapted * Tue Nov 29 2022 marcus.schaefer@gmail.com - Bump version: 9.24.50 → 9.24.51 * Tue Nov 29 2022 marcus.schaefer@gmail.com - Added code style batch to landing page * Tue Nov 29 2022 marcus.schaefer@gmail.com - Delete obsolete gitlab pipeline status flag Delete obsolete gitlab pipeline status from the project landing page. We do no longer use gitlab since they added that quota thing for their CI system * Tue Nov 29 2022 marcus.schaefer@gmail.com - Bump version: 9.24.49 → 9.24.50 * Tue Nov 29 2022 neal@gompa.dev - Swap from DM kpartx to util-linux partx for creating loop devices The device-mapper (DM) based loop devices that kiwi has historically generated creates issues when trying to run kiwi in confined build environments. The DM tools prefer to have a tighter coupling between userspace and kernel interfaces, and we cannot necessarily guarantee that in the variety of build environments that kiwi can be run in. In particular, Koji uses either nspawn containers or chroots through Mock to run kiwi and that is where this fails. However, we do not need to use DM for this purpose when util-linux provides a perfectly serviceable alternative. This commit changes kiwi's loop device setup to use partx(8) from util-linux instead. As long as the appliance image being created doesn't use a disk scheme that requires DM, it becomes entirely possible to produce an image without needing DM at runtime at all. * Tue Nov 29 2022 marcus.schaefer@gmail.com - Added systemd_boot integration test for Rawhide * Mon Nov 21 2022 marcus.schaefer@gmail.com - Increase btrfs size of orthos integration test * Mon Nov 14 2022 marcus.schaefer@gmail.com - Increase scope of kernel lookup So far kiwi was looking up kernels only on /boot. Including other bootloaders it's no longer required that the kernel packages of the distributions provides the kernel in /boot Thus kiwi's lookup needs to be extended to other places which is done by this commit. * Sat Nov 12 2022 marcus.schaefer@gmail.com - Add GRUB_DEFAULT=saved if not set If there is no GRUB_DEFAULT setting in etc/default/grub we add GRUB_DEFAULT=saved as the default setting. This Fixes #2198 * Sat Nov 12 2022 marcus.schaefer@gmail.com - Disable gitlab CI pipeline Unfortunately gitlab decided to allow only eligible projects to use their CI pipeline. Being a member for years seems not to count in this change process. Therefore this commit disables the tests we run on gitlab and I will come up with a simple github action for the parts that we don't want to loose. * Fri Nov 11 2022 marcus.schaefer@gmail.com - Added integration test for systemd_boot The test build is based on the Tumbleweed distribution and provides a simple non-secure-boot systemd-boot virtual disk image * Tue Nov 08 2022 marcus.schaefer@gmail.com - no_implicit_optional = False * Thu Nov 03 2022 marcus.schaefer@gmail.com - Added --loglevel option specify logging level as number. Details about the available log levels can be found at: https://docs.python.org/3/library/logging.html#logging-levels Setting a log level causes all message >= level to be displayed. * Wed Nov 02 2022 marcus.schaefer@gmail.com - Consolidate and cleanup logging Make sure all loggers; stream handlers, file and socket handler uses the same logging format. Also make sure that there is only one place for setLogLevel when kiwi is used as application * Sat Oct 29 2022 marcus.schaefer@gmail.com - Added support for --logsocket Like with --logfile this commit adds support for using an existing Unix Domain Socket for logging. It's required that there is a listener on the given socket otherwise kiwi exits with an appropriate error message from the socket layer. A simple listener could look like the following: ```python sock_file = '/tmp/log_socket' buffer = 1024 if os.path.exists(sock_file): os.unlink(sock_file) sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.bind(sock_file) sock.listen(1) while True: connection, client_address = sock.accept() try: while True: data = connection.recv(buffer) if not data: break print(data.decode()) finally: connection.close() ``` With the listener in place kiwi can be called as follows: kiwi-ng --logsocket /tmp/log_socket ... * Sat Oct 22 2022 marcus.schaefer@gmail.com - Bump version: 9.24.48 → 9.24.49 * Sat Oct 22 2022 marcus.schaefer@gmail.com - Fixed test-image-vagrant virtualbox-guest-tools obsoletes virtualbox-guest-x11 * Fri Oct 21 2022 marcus.schaefer@gmail.com - ignore the type check on the Result class With an update of mypy the bound TypeVar is no longer allowed. In newer versions of python we could use the "Self" type or import annotations from the future module. Unfortunately in older python versions which we still support (3.6) there is no non intrusive change which allows us to handle that type annotation. Thus this commit ignores the return type spec for Result.load() for the moment. * Wed Oct 12 2022 igor.raits@gmail.com - Stop copying /dev files statically into the OCI container In containers (nspawn) where part of the /dev filesystem is bind-mounted from outside system, kiwi fails to do the rsync (in creation of the nodes). There is no reason to actually copy whole tree inside so let's just not do it (as it does not seem to be needed at all). * Tue Oct 11 2022 dirk@dmllr.de - List riscv64 as a valid architecture in the schemas This is needed so that architecture filters on riscv64 specifics can be defined. * Wed Sep 14 2022 marcus.schaefer@gmail.com - Support DM integrity legacy options Add a new attribute integrity_legacy_hmac="true|false" which allows to use old flawed HMAC calculation (does not protect superblock). Add a new attribute integrity_legacy_padding="true|false" which allows to use inefficient legacy padding. Do not use these attributes until compatibility with a specific old kernel is required! * Wed Aug 31 2022 jamacku@redhat.com - ci(lint): Add Shell linter - Differential Shellcheck * Wed Aug 31 2022 marcus.schaefer@gmail.com - Limit repo alias names to be a safe POSIX name Characters like spaces or other symbols used in repo alias names can cause the package manager to fail setting up the repo. Thus this patch changes the schema to only allow for safe POSIX names matching: {pattern = "[a-zA-Z0-9_\-\.]+"}. This Fixes #2170 * Thu Aug 25 2022 marcus.schaefer@gmail.com - Increase space for test-image-embedded test Add more space to test profile: SystemFeatures * Thu Aug 25 2022 marcus.schaefer@gmail.com - Increase efifatimage size for legacy build test * Tue Aug 23 2022 marcus.schaefer@gmail.com - Bump version: 9.24.47 → 9.24.48 * Sun Aug 21 2022 laszlo.gombos@gmail.com - Return failure if overlay is not supported * Wed Aug 10 2022 marcus.schaefer@gmail.com - Bump version: 9.24.46 → 9.24.47 * Wed Aug 10 2022 marcus.schaefer@gmail.com - Revert "EFI Filesystem must be Fat32 formatted" Using fat32 causes failed boots on e.g AWS EC2 arm. This must be solved differently with an attribute to configure it. This reverts commit b8641bdc6825423f8c65b55c8d0870b38874a566. * Tue Aug 09 2022 marcus.schaefer@gmail.com - Bump version: 9.24.45 → 9.24.46 * Tue Aug 09 2022 marcus.schaefer@gmail.com - Support URIs with credentials in solver plugin check if the URI string contains credentials and extract/trim them from the uri object. The urlparse class does not recognize this information as a valid URI and throws an exception * Tue Aug 09 2022 marcus.schaefer@gmail.com - Fixed kexec options setup in kiwi-dump-reboot The dracut module 99kiwi-dump-reboot creates an options list for kexec. Under certain conditions the options list can contain multiple spaces which leads to an error when calling kexec. This commit makes sure to trim white spaces. This Fixes #2178 * Sun Aug 07 2022 marcus.schaefer@gmail.com - Fixed test-image-disk-legacy Increase size of embedded EFI fat image needed for EFI bootable install ISO. Due to the increased size of the custom kiwi initrd the default size for the FAT image is too small * Sat Aug 06 2022 marcus.schaefer@gmail.com - Support custom size for embedded EFI FAT image For ISO images (live and install) the EFI boot requires an embedded FAT image. As of now a fixed size of 20M was used which leads to a problem if the EFI image or the initrd or the kernel is bigger than 20M. With the new attribute: efifatimagesize="nonNegativeInteger" we can now set a different value for the FAT image. Please note the value must be aligned to the also customizable efipartsize value which allows to configure the size of the EFI partition * Fri Aug 05 2022 marcus.schaefer@gmail.com - Fixed linter complaints after flake update flake now complains about E275 missing whitespace after keyword for the way 'del' is used. This commit fixes it * Thu Aug 04 2022 j.mixer135@gmail.com - Added a NOTE: section to explain the finer points of adding tools to a dracut hook. * Sat Jul 30 2022 marcus.schaefer@gmail.com - Fixup btrfs based legacy kiwi initrd test * Thu Jul 21 2022 gmoro@suse.com - Fix mocking of grub2-install (fix #2124) /bin/true was being used from the host machine instead of the chroot * Thu Jul 21 2022 dcassany@suse.com - Fix race condition in runtime_config_test This commit instead of setting the global variable of the runtime config file patches it. This is relevant if running unit tests in parallel, where global variables are shared if not patched. Signed-off-by: David Cassany <dcassany@suse.com> * Tue Jul 12 2022 marcus.schaefer@gmail.com - EFI Filesystem must be Fat32 formatted Given the documentation from Microsoft the EFI partition must be a fat32 format. fat16 is still supported but unexpected. This Fixes #2141 * Tue Jul 12 2022 marcus.schaefer@gmail.com - Fixed typo in overview page prevent word duplication. This Fixes #2016 * Tue Jul 12 2022 marcus.schaefer@gmail.com - Bump version: 9.24.44 → 9.24.45 * Thu Jul 07 2022 marcus.schaefer@gmail.com - Umount device before cloning In case a clone should be created from a partition we need to make sure to umount the device after sync and prior cloning. Otherwise the clone operation is not safe because the rsynced data might still be in memory and not synced out to the block device. * Wed Jul 06 2022 marcus.schaefer@gmail.com - Fixed custom disk start sector setup The attribute disk_start_sector allows to specify a custom start sector for the first partition of the disk. On GPT tables everything works nicely, on DOS tables the used tools fdisk/sfdisk are not able to manage the start/end values of subsequent partitions if the first partition doesn't start with the tooling default. This patch allows to set the start sector after the partition table has been created * Sat Jul 02 2022 marcus.schaefer@gmail.com - Fixed CentOS-8 repo setup * Fri Jun 24 2022 marcus.schaefer@gmail.com - Bump version: 9.24.43 → 9.24.44 * Thu Jun 23 2022 marcus.schaefer@gmail.com - Make sure to rebuild rpm database For rpm based distributions make sure to call rpm --rebuilddb unconditionally prior using rpm with the chroot. This Fixes #2165 * Wed Jun 22 2022 neal@gompa.dev - github: Refresh issue template to cover more operating scenarios KIWI is often used for cross-distribution image builds, so we should ask for that information when appropriate. Additionally, clarify "OBS" as "Open Build Service" to disambiguate. Finally, add a line about Koji since Koji can run kiwi to build images now. * Wed Jun 22 2022 marcus.schaefer@gmail.com - Fixed unit tests * Tue Jun 21 2022 igor.raits@gmail.com - Forcefully disable versionlock plugin in DNF [ INFO ]: 09:39:08 | Uninstalling system packages (chroot) [ INFO ]: 09:39:08 | Using package manager backend: dnf [ INFO ]: 09:39:08 | --> package: linux-firmware [ INFO ]: 09:39:08 | Uninstall system packages (chroot) [ DEBUG ]: 09:39:08 | EXEC: [chroot /tmp/myimage8/build/image-root dnf --config /kiwi_v708wllp -y --releasever=8 autoremove linux-firmware] [ INFO ]: Processing: [########################################] 100% [ ERROR ]: 09:39:08 | KiwiPackagesDeletePhaseFailed: System package deletion failed: Package deletion failed: Error: Locklist not set The versionlock plugin does not bring any benefit anyways as we completely override plugin configs. Also refactor configparser related stuff a bit. Signed-off-by: Igor Raits <igor.raits@gmail.com> * Mon Jun 20 2022 marcus.schaefer@gmail.com - Support squashfs in custom partitions When using squashfs in a custom partitions setup like the following: <partitions> <partition ... filesystem="squashfs"/> </partitions> The build fails because the filesystem needs to be created using the create_on_file() API and not the create_on_device() API. In addition the size estimation is bogus when using squashfs and cannot be pre-calculated because we only know how much space the filesystem really needs after mksquashfs as worked on the data and the compression. Thus this commit also relaxes the required size check in case of squashfs. Last but not least a squashfs filesystem does not provide label or UUID and can only be referenced by the PARTUUID it gets dumped on or by the native unix device node. As the unix node is a loop during build time of the image and meaningless this commit also forces by-partuuid mapping in fstab when mounting the squashfs based device. * Thu Jun 16 2022 marcus.schaefer@gmail.com - Fixed use of CommandCapabilities The class allows to check for data produced on stdout and stderr. However, programs reporting data on stderr usually fails with an exit code != 0. If the command is not called with raise_on_error=False it will never be possible to catch information from stderr. As we don't know if programs returns a failed exit code even on their e.g --usage message we should always pass the no raise option to make this more useful * Wed Jun 15 2022 dcassany@suse.com - Fix volume mount path and adapt unit tests Signed-off-by: David Cassany <dcassany@suse.com> * Tue Jun 14 2022 marcus.schaefer@gmail.com - Handle older versions of setfiles correctly In older versions of setfiles we need a two pass setup First set the policy, second apply the security context. This commit checks in the usage message of setfiles which invocation syntax is required * Tue Jun 14 2022 marcus.schaefer@gmail.com - Bump version: 9.24.42 → 9.24.43 * Tue Jun 14 2022 marcus.schaefer@gmail.com - Fixed error handling for setfiles policy lookup Errors from os.scandir were not catched. In addition the path to run scandir was not properly created * Tue Jun 14 2022 ludwig.nussel@suse.de - Mount /sys also for disks.sh /sys is needed to be able to run dracut in disks.sh * Mon Jun 13 2022 ludwig.nussel@suse.de - Fix btrfs volume mounting If the second argument of os.path.join is an absolute directory, the result would be that directory. The intention is to produce a subdirectory of the mountpoint though. So pass a relative path. Without the fix, kiwi would try to e.g mount the /var subvolume of the image over the /var of the host, screwing everthing up of course :-) * Mon Jun 13 2022 marcus.schaefer@gmail.com - Prefer file based syscall in kexec when possible Use file based syscall in kexec if available. This is needed to support boot on an secure boot enabled system and is in general more reliable to boot into the system on real hardware platforms * Mon Jun 13 2022 marcus.schaefer@gmail.com - Bump version: 9.24.41 → 9.24.42 * Thu Jun 09 2022 marcus.schaefer@gmail.com - Bump version: 9.24.40 → 9.24.41 * Wed Jun 08 2022 marcus.schaefer@gmail.com - Fix helper method to detect dracut outfile format The method _get_boot_image_output_file_format_from_dracut_code is used in kiwi to match parts of the dracut code for the used output file format. Beginning with dracut-056 the code part checked has changed syntactically such that the match did no longer work. This commit increases the scope of the match and replace pattern and Fixes #2149 * Wed Jun 08 2022 marcus.schaefer@gmail.com - Fixed handling of signing_keys in cmdline options When passing signing_keys with the --add-repo|--set-repo commandline options the delimiter to separate the single key information is a colon(:). However, this is stupid when kiwi expects the signing key to be references as an URI format like file://... Therefore this patch changes the delimiter from colon(:) to semicolon(;) * Wed Jun 08 2022 marcus.schaefer@gmail.com - Correct setfiles relabeling This change was inspired by a change done on Fedora's livecd-tools from here: livecd-tools/livecd-tools#236. The patch corrects issues with the setfiles SELinux relabel command. The issues become apparent when the host and guest policies differ. Thus it becomes required to explicitly set the policy to decouple from eventual unwanted host settings. * Wed Jun 01 2022 marcus.schaefer@gmail.com - Bump version: 9.24.39 → 9.24.40 * Wed Jun 01 2022 zzzoom@gmail.com - Setup SELinux on every system prepare / build (#2148) Setup SELinux on every system prepare / build such that all image types benefit from it not only the disk (oem) type * Sun May 29 2022 marcus.schaefer@gmail.com - Install all of QEMU to Ubuntu arm integration test * Sun May 29 2022 marcus.schaefer@gmail.com - rename user to ubuntu for Ubuntu integration test * Sun May 29 2022 marcus.schaefer@gmail.com - Bump version: 9.24.38 → 9.24.39 * Sun May 29 2022 marcus.schaefer@gmail.com - Move to sphinx>=5.0.0 * Sun May 29 2022 marcus.schaefer@gmail.com - Bump version: 9.24.37 → 9.24.38 * Sun May 29 2022 marcus.schaefer@gmail.com - Fixed sphinx extlinks rendering In Sphinx v5 warning will be treated as errors. This results in the following warning to be an error: extlinks: Sphinx-6.0 will require a caption string to contain exactly one '%s' and all other '%' need to be escaped as '%%'. This commit applies the required quoting * Sun May 29 2022 marcus.schaefer@gmail.com - Bump version: 9.24.36 → 9.24.37 * Sat May 28 2022 marcus.schaefer@gmail.com - Added example aarch64 integration test for Ubuntu Created a RaspberryPI image description for Ubuntu(jammy) as integration test for building aarch64 images and added it to the integration test matrix * Mon May 23 2022 marcus.schaefer@gmail.com - Added --target-arch for image info Allow cross arch dependency solving * Fri May 20 2022 marcus.schaefer@gmail.com - update docs * Fri May 20 2022 marcus.schaefer@gmail.com - Add support for group id in users setting Allow to specify the group id in the groups list a user should belong to. The group id can be placed as part of the group name separated by a colon like in the following example: <users> <user groups="kiwi,admin:42,users" password="..." name="kiwi"/> </users> Please note kiwi checks if the provided group already exists and only creates a group if it is not already present in the system. As default groups are usually provided by the OS itself including its preferred group id, you will intentionally not be able to overwrite group id for existing groups. This Fixes #2064 * Thu May 19 2022 marcus.schaefer@gmail.com - Bump version: 9.24.35 → 9.24.36 * Tue May 17 2022 rjschwei@suse.com - Subformats should also not be compressed when encryption is enabled (#2138) Subformats should also not be compressed when encryption is enabled This is a follow on change to bdba953. When the filesystem is encrypted the resulting image should not be compressed. Also explain why we ignore the compression seeting in the user configuration for encrypted images. * Mon May 16 2022 marcus.schaefer@gmail.com - Add support for prebuilt bootstrap package for apt When using the apt packagemanager kiwi required the use of debootstrap to create the initial rootfs. This works as long as there is always a main distribution repository available which follows the structure of the official debian mirrors. However if such a main distribution is not present or an alternative layout like e.g OBS repos is used, debootstrap will refuse to work. To allow for an alternative and without the dependency to debootstrap kiwi supports using a prebuilt bootstrap package providing the mini rootfs to serve as the bootstrap result. As all other package managers properly supports installation into an empty new root, this feature was only added when using the apt packagemanager * Sun May 08 2022 marcus.schaefer@gmail.com - Bump version: 9.24.34 → 9.24.35 * Sat May 07 2022 marcus.schaefer@gmail.com - Allow more repo params to be set on the cmdline The repository parameters for signing keys, the component list the main distribution name for debian repositories and also the repository_gpgcheck could not be set via the commandline options --add-repo and/or --set-repo. This commit adds support for them and also updates the manual page accordingly * Sat May 07 2022 marcus.schaefer@gmail.com - Update ubuntu integration tests Build them against latest release (jammy). This Fixes #2128 * Sat May 07 2022 marcus.schaefer@gmail.com - Bump version: 9.24.33 → 9.24.34 * Thu May 05 2022 marcus.schaefer@gmail.com - Follow up fix for isolinux-config isolinux-config is called to update the search path inside of the isolinux binary. isolinux/syslinux is exclusive to the ix86 architecture and to BIOS firmware. Therefore the condition to actually call it should reflect this. * Thu May 05 2022 marcus.schaefer@gmail.com - Bump version: 9.24.32 → 9.24.33 * Thu May 05 2022 marcus.schaefer@gmail.com - Fixed runtime check Fixed check_dracut_module_for_disk_overlay_in_package_list. The check complains if the dracut-kiwi-overlay module is not installed but overlay support was requested. This is correct but should only be done if the selected initrd system is dracut. * Wed May 04 2022 32305849+ozboss@users.noreply.github.com - Add option to set LUKS type to luks1 (#2126) Add option to set LUKS type to luks1 So far the LUKS type could be set to luks and luks2. However, what luks version the value 'luks' evaluates to depends on how the distributor has packaged luks. Thus it's possible that 'luks' is either luks1 or luks2. To also have the opportunity to explicitly specify luks1 this commit adds the opportunity in the schema. * Wed May 04 2022 marcus.schaefer@gmail.com - Update devel packages helper Added trang as needed when working on the schema * Fri Apr 29 2022 marcus.schaefer@gmail.com - Add support for dm integrity with secret key Allow to protect the opening of the integrity data map and journal through a keyfile. For setting the key file two new optional type attributes were added: * integrity_keyfile * integrity_metadata_key_description The key file format must be correct according to the selected integrity algorithm. As of now the kiwi default hmac-sha256 algorithm is used with the selected keyfile The optional integrity_metadata_key_description attribute allows to specify a custom description of an integrity key as it is expected to be present in the kernel keyring. The information is placed in the integrity metadata block. If not specified kiwi creates a key argument string instead which is based on the given integrity_keyfile filename. The format of this key argument is: :BASENAME_OF_integrity_keyfile_WITHOUT_FILE_EXTENSION * Thu Apr 28 2022 marcus.schaefer@gmail.com - Update get_disksize_mbytes to support clones When using partition clones the pre-calculation of the disk size needs to take this into account. * Wed Apr 27 2022 marcus.schaefer@gmail.com - Fixed UUID setup for XFS Make sure the log got replayed prior generating a new UUID * Tue Apr 26 2022 marcus.schaefer@gmail.com - Fixed scope of setup_isolinux_boot_path There is a method called setup_isolinux_boot_path which is encoded in the Iso class. The method allows to change the boot path in the isolinux binary and makes sense when the bootloader is selected to be isolinux. However, the method was called in the scope of the FileSystemIsoFs class which responsibility is to create an ISO filesystem. The creation of an ISO filesystem has no direct connection to a bootloader. Thus calling this method in the scope of the FileSystemIsoFs implementation is wrong and can lead to unexpected side effects. This commit moves the call of the method to the places where isolinux as a bootloader can still be used. This Fixes #2117 * Tue Apr 26 2022 dcermak@suse.com - Correct the URL to the dracut home page This fixes https://github.com/OSInside/kiwi/issues/2097 * Tue Apr 26 2022 dcermak@suse.com - Change the custom vagrant config file to 00-vagrant.conf If it is called 99-vagrant.conf, then anything "before" that, like 50-redhat.conf takes precedence and overrides our custom settings. * Tue Apr 26 2022 dcermak@suse.com - Add Leap 15.4, SLE 15 SP4 & CentOS Stream 9 to the scripts tests * Mon Apr 25 2022 marcus.schaefer@gmail.com - Bump version: 9.24.31 → 9.24.32 * Mon Apr 11 2022 marcus.schaefer@gmail.com - Add support for standalone dm integrity There is support in kiwi to use dm_integrity in combination with the LUKS header and dm_crypt. However there is also the use case to setup dm_integrity in standalone mode. This commit allows to create the dm_integrity layer outside of LUKS using /etc/integritytab to activate the map through a systemd generator if systemd is used. Regarding systemd it's required to use a version of system which provides: system-generators/systemd-integritysetup-generator. If this generator does not exist in the distribution it will also be missing in the dracut generated initrd and the boot will not be able to succeed. It's mentioned here because even newer distributions might be missing the generator Along with the implementation there are two new optional attributes in the <type> section: standalone_integrity="true|false" embed_integrity_metadata="true|false" standalone_integrity activates/deactivates the dm_integrity map on top of the root filesystem. Similar to the veritysetup support there is the opportunity to create an embedded magic metadata block at the end of the device containing the root filesystem via embed_integrity_metadata * Sun Apr 10 2022 marcus.schaefer@gmail.com - Update per codacy smell * Sun Apr 10 2022 marcus.schaefer@gmail.com - Add support for part clones to the Disk interface The Disk class provides methods to create partition(s) and map names according to its scope and independent of the actual partition tools. For example: create_root_partition(). This commit adds an additional optional clone parameter to all methods for which we want to allow partition clones * Sun Apr 10 2022 marcus.schaefer@gmail.com - Be less strict in boot link to itself As part of the grub setup a link named 'boot' inside of /boot is created pointing to itself 'boot -> .'. The reason is to allow the bootloader config to find its files referenced as /boot/something independently if /boot is placed into an extra partition. However if an extra boot partition is used and a filesystem which does not support symlinks, e.g fat, that symlink creation should not lead to an error in the image build process as it is considered an optional safe link and not a mandatory pre-requisite * Thu Apr 07 2022 marcus.schaefer@gmail.com - Fixed TW arm rpi integration test Explicitly add ruby to the package list * Wed Apr 06 2022 marcus.schaefer@gmail.com - Bump version: 9.24.30 → 9.24.31 * Wed Apr 06 2022 rjschwei@suse.com - Fix LABEL detection (#2112) When only "root=" is specified on the kernel command line the match is located in the first group. Loop through the groups upon mtach to find what we are looking for. * Tue Apr 05 2022 rjschwei@suse.com - Preserve LABEL setting (#2108) Preserve the LABEL= setting when the grub config file is re-generated. the GRUB_ENABLE_LINUX_LABEL setting does not exists upstream and not in any SUSE distribution. Set the grub setting such that LABEL is preserved on SUSE distros. (bsc#1197616) * Tue Apr 05 2022 marcus.schaefer@gmail.com - Fix test_setup_default_grub_empty_kernelcmdline The unit test exists to check that GRUB_CMDLINE_LINUX_DEFAULT is not set depending on the provided cmdline. The test exists for reasons explained in Issue #1650 * Fri Apr 01 2022 fvogt@suse.de - Don't compress .appx containers (#2106) The container is actually inside and already compressed. * Fri Apr 01 2022 marcus.schaefer@gmail.com - Added new CloneDevice class Added CloneDevice class to the storage interface. The class allows to create clone(s) from a given source block device into a list of target block devices. The target block devices are clones of the source but prevents device naming conflicts for unique identifiers like the UUID. This is requires to still allow to boot from images containing device clones and needs to be handled by tools that might work on top of the cloned devices. * Thu Mar 31 2022 marcus.schaefer@gmail.com - Improve readability of shell commands The way the lsblk pipeline is constructed is improved to become easier to read by this commit * Thu Mar 31 2022 marcus.schaefer@gmail.com - Added set_uuid() method to FileSystem API Allow to set a custom UUID not only at creation time of a filesystem but also at a later point in time in an already existing filesystem * Tue Mar 29 2022 dcassany@suse.com - Ensure BootloaderConfig resources are cleaned first This commit wraps the manual BootloaderConfig instance cleanup in disk builder into a try/finally scope. This way if KIWI is aborted or fails within this scope the BootloaderConfig is cleaned up first. Signed-off-by: David Cassany <dcassany@suse.com> * Tue Mar 29 2022 marcus.schaefer@gmail.com - Fixed overlay root dracut module make sure there is always only one selection for the readonly root partition * Tue Mar 29 2022 marcus.schaefer@gmail.com - Update LUKS integration test for TW Use cipher options to make cryptomount work again * Tue Mar 29 2022 marcus.schaefer@gmail.com - Set LUKS(v1) for TW encryption integration test In Tumbleweed LUKS2 became the default but the grub cryptomount tool is not able to work with the v2 LUKS header. Thus the test explicitly builds against the former luks version for now * Tue Mar 29 2022 marcus.schaefer@gmail.com - Set LUKS2 for TW luks encryption integration test In Tumbleweed LUKS2 became the default also for grub and cryptomount, which requires to create a LUKS2 header in the dm_crypt layer * Tue Mar 29 2022 marcus.schaefer@gmail.com - Bump version: 9.24.29 → 9.24.30 * Mon Mar 28 2022 tserong@suse.com - Add ensure_empty_tmpdirs option for OCI containers (bsc#1197783) Since #1759 was merged, the contents of /run/ and /tmp/ are excluded from built images. This causes problems for some containers, notably Ceph when deployed in a Rook/k8s environment, which needs to have certain directories present inside /run/. This commit adds the ability to return to the previous behaviour and *not* empty those temporary directories, if you specify <image><preferences><type [...] ensure_empty_tmpdirs="false">. Fixes: https://github.com/OSInside/kiwi/issues/2093 Signed-off-by: Tim Serong <tserong@suse.com> * Fri Mar 25 2022 marcus.schaefer@gmail.com - Fixed parsing of veritysetup output veritysetup uses tabs to align values. The way kiwi parsed the values did not strip out the tabs and later on keeps them in the verification metadata block. The unit test did not catch this because the mock output used for veritysetup did not contain tabs. This commit fixes the test to catch this condition and also fixes the code to handle all space characters (tabs, space, newlines) in a safe way * Thu Mar 24 2022 marcus.schaefer@gmail.com - Update contents of store_credentials result file The method added information about the PARTUUID as useful information. However, PARTUUID's are not supported by all partition tables. The Linux generated artificial values from the disk identifier are not wanted in this scope. As the information is not mandatory it's better to not provide it at all and avoid confusion to users. * Thu Mar 24 2022 marcus.schaefer@gmail.com - Make blkid call more robust Do not raise of blkid is not able to read the requested ID. It is expected that the methods of the BlockID class either returns a value or none but do not raise and cause the complete process to terminate * Thu Mar 24 2022 marcus.schaefer@gmail.com - Added embed_verity_metadata attribute Specifies to write a binary block at the end of the partition serving the root filesystem, containing information for dm_verity verification and to construct the device map * Thu Mar 24 2022 marcus.schaefer@gmail.com - Added create_verification_metadata method Along with creating a filesystem including device mapper features like dm_verity (see verity_blocks) or dm_crypt/dm_integrity (see luks) there is always the question where to store the metadata information required to setup the device map. This can include information about blocksizes, offset addresses and more. The create_verification_metadata() method allows to write a signed custom data block of a documented format at the end of the given block special which stores this type of information such that tools at boot time gets the opportunity to read this information. In this commit only information connected to the dm_verity feature activated via the verity_blocks attribute will be part of the verification block. With future changes other data might be added * Wed Mar 23 2022 marcus.schaefer@gmail.com - Added runtime check for by-partuuid use Added check_partuuid_persistency_type_used_with_mbr(). Not every partition table type supports UUIDs. We don't want to make use of the artifical values created by Linux if the partition table doesn't support it natively * Wed Mar 23 2022 marcus.schaefer@gmail.com - Support partuuid and label mounts in dracut module The 90kiwi-overlay dracut module was not able to parse the device link if done with PARTUUID or LABEL * Wed Mar 23 2022 marcus.schaefer@gmail.com - Added integration test for by-partuuid The test hooks into the existing test-image-embedded integration test for leap. As I plan to extend the tests specific to features actually only useful for special embedded images, I thought this would be the right place to start * Mon Mar 21 2022 marcus.schaefer@gmail.com - validate luksformat options validate options against the cryptsetup help info in a runtime check * Mon Mar 21 2022 marcus.schaefer@gmail.com - Handle LUKS type in its own attribute * Sun Mar 20 2022 marcus.schaefer@gmail.com - Fixed attribute description The overlayroot_verity_blocks attribute description contained outdated information * Sat Mar 19 2022 marcus.schaefer@gmail.com - Add support for verity setup on standard rootfs So far the verity support was only available with the overlayroot layout and the read-only squashfs root. This commit adds a new attribute: verity_blocks="number|all" which allows to create the verity setup also on the standard root partition In addition to the change it was needed to extend the Filesystem API with an additional optional paramter to allow setup of the filesystem UUID. Having the opportunity to set the UUID at filesystem creation is generally useful and with regards to this particular change it became also required * Fri Mar 18 2022 ngompa13@gmail.com - Allow Btrfs and XFS as options for the boot partition filesystem We already do this implicitly when we do not define this attribute and request a boot partition, so let us explicitly offer these as options too. * Fri Mar 18 2022 marcus.schaefer@gmail.com - Fix grub defaults for PARTUUID use Make sure to set GRUB_DISABLE_LINUX_PARTUUID to false when using by-partuuid * Thu Mar 17 2022 marcus.schaefer@gmail.com - Allow luks format options Added new luksformat element which allows to pass along options to the luksFormat call. This allows users to switch between LUKS and LUKS2 via e.g <luksformat> <option name="--type" value="luks2"/> </luksformat> It also allows to pass along a set of options only available to LUKS2, e.g <luksformat> <option name="--type" value="luks2"/> <option name="--cipher" value="aes-gcm-random"/> <option name="--integrity" value="aead"/> </luksformat> In addition to the new attribute the existing luks attribute can also be specified to read credentials from a keyfile by using the file:// source locator, e.g <type ... luks="file:///path/to/a/keyfile"/> This Fixes #1898 * Sat Mar 12 2022 marcus.schaefer@gmail.com - Fixed funny build_status.sh bug If the name of the repository starts with an 'F' like in Fedora, the 'F' is turned into a red escape sequence because it is assumed to be a failed status indicator :) The path here is probably also dumb as it just assumes there is a space after the status indicator. Well the complete script is not really a good one, but still helpful * Sat Mar 12 2022 marcus.schaefer@gmail.com - Update Fedora arm integration test Move test to Fedora 34 * Sat Mar 12 2022 marcus.schaefer@gmail.com - Added container build test for Fedora Fedora systems uses buildah to create containers. There is no integration test for kiwi which tests building containers with buildah. This commit adds a build test to cover this path. Related to Issue #2020 * Fri Mar 11 2022 marcus.schaefer@gmail.com - Fixed test-image-docker-derived for leap The test still used the additionaltags attribute with the latest schema (v7.5) which fails to validate because the attribute was moved to additionalnames * Fri Mar 11 2022 marcus.schaefer@gmail.com - Bump version: 9.24.28 → 9.24.29 * Thu Mar 10 2022 marcus.schaefer@gmail.com - Don't bind mount /run during build time In commit #9512318 a new bind mount of /run into the root tree during build time was introduced. The bind mount was done because in my tests running podman from config.sh it did not work without /run bind mounted. However, it turned out that I was wrong because along with the provided methods to prepare cgroups and a custom runtime configuration method; setupContainerRuntime() it is not needed to have /run bind mounted. Thus this commit deletes the bind mount of /run and therefore Fixes #2067 * Thu Mar 10 2022 marcus.schaefer@gmail.com - Fix github action running obs service refresh The curl command to send the POST request for running the obs remote service uses the --fail-with-body option. Unfortunately the ubuntu-latest container used to run the action comes with a curl version that does not support the option. Thus this commit removes the use of the option * Wed Mar 09 2022 marcus.schaefer@gmail.com - Move scope of veritysetup veritysetup was called as part of the disk builder. However, the veritysetup should be a responsibility of the classes which implements the sync_data method. This allows to use the creation of a verity hash format right after sync as a feature to these classes and in a broader scope. In addition to that change the VeritySetup::format method now returns the metadata from the format call and stores it as debug information to the log file. A concept to persistently store the verification metadata as part of the partition(s) will be a next step. * Wed Mar 09 2022 45594031+dcermak@users.noreply.github.com - Style changes in container docs Reformulate the container building guide a bit * Wed Mar 09 2022 marcus.schaefer@gmail.com - Add support for custom size in filesystem classes Allow to create filesystems with an optional size parameter. If no size is provided the filesystem gets as big as the device which is the default and unchanged behavior. In addition a size counting from the beginning (>0) as well as a size counting from the end (<=0) can be provided. * Wed Mar 09 2022 dcassany@suse.com - Update schema docs Signed-off-by: David Cassany <dcassany@suse.com> * Tue Mar 08 2022 marcus.schaefer@gmail.com - Provide schema version v7.5 in spec * Tue Mar 08 2022 marcus.schaefer@gmail.com - Update descriptions to schema v7.5 * Sun Mar 06 2022 marcus.schaefer@gmail.com - Support mount by PARTUUID In addition to by-label and by-uuid also support mounting by PARTUUID. Please note kiwi also makes sure that the grub generated config file uses the root=PARTUUID= notation and it's not clear if grub-mkconfig will persist making use of it. Nevertheless there are also systems which uses different methods to boot and it makes sense to support partuuid mappings as well * Sun Mar 06 2022 marcus.schaefer@gmail.com - Add support for partition cloning Support creating block level clones of certain partitions used in the image. Clones can be created from the root, boot and any partition listed in the <partitions> element. * Sun Mar 06 2022 marcus.schaefer@gmail.com - Update cron for security scorecard Run weekly on Saturdays * Fri Mar 04 2022 marcus.schaefer@gmail.com - Add support for extended layout to msdos table This commit adds the following new type attribute <type ... dosparttable_extended_layout="true|false"/> If set it specifies to make use of logical partitions inside of an extended one. Effective only on type configurations which uses the msdos table type, it will cause the fourth partition to be an extended partition and all following partitions will be placed as logical partitions inside of that extended partition. This setting is useful if more than 4 partitions needs to be created in an msdos table. In addition to the support for extended/logical partitions the the attributes 'mountpoint' and 'filesystem' in the <partitions> section becomes optional. This also allows to place partitions as placeholders not mounted into the system * Fri Mar 04 2022 marcus.schaefer@gmail.com - Added type hints for partitioner interface * Fri Mar 04 2022 marcus.schaefer@gmail.com - Bump version: 9.24.27 → 9.24.28 * Thu Mar 03 2022 marcus.schaefer@gmail.com - Fixed unconditional grub2 package requirement The grub2 package does not exist on all distributions as a name provider independent of the architecture. On for example Debian and Ubuntu the packages are handled differently and grub2 is only provided on supported architectures. Thus the spec file should set the grub2 requirement only if the distribution provides it in any case * Wed Mar 02 2022 marcus.schaefer@gmail.com - Bump version: 9.24.26 → 9.24.27 * Tue Mar 01 2022 marcus.schaefer@gmail.com - Added overlayroot_verity_blocks attribute Setting this attribute to a number or 'all' in an overlayroot configuration will create a dm verity hash from the number of given blocks (or all) placed at the end of the squashfs compressed read-only root filesystem. For later verification of the device, and without further image description settings, the credentials information produced by veritysetup from the cryptsetup tools, is created as a file in /boot/overlayroot.verity and is stored as such into the image by default. * Tue Mar 01 2022 marcus.schaefer@gmail.com - Fixed disk.sh caller environment The documentation explains the disk.sh script to be called from inside of the image root as it exists on the block layer. The disk.sh script is therefore also called after the sync of the unpacked image root tree to the block layer. The implementation however, was only partially calling disk.sh from such an environment. In fact the environment was only the mountpoint of the root partition but this is not the complete system regarding layouts that uses extra partitions and/or volumes. This commit introduces the use of the new class ImageSystem and calls disk.sh in the way it was designed and documented. * Tue Mar 01 2022 marcus.schaefer@gmail.com - Added ImageSystem class The class responsibility is to provide access to the image root system from the block layer of the image scope * Tue Mar 01 2022 marcus.schaefer@gmail.com - Prevent superfluous filesystem creation In case of an overlayroot setup and the request for no extra write partition, it is not needed to create a filesystem for the write space which never gets synced to the image * Sat Feb 26 2022 marcus.schaefer@gmail.com - Bump version: 9.24.25 → 9.24.26 * Sat Feb 26 2022 marcus.schaefer@gmail.com - Fixed destructor test on oci_tools/buildah_test.py Calling del() from teardown breaks when the method is called through teardown_method * Sat Feb 26 2022 marcus.schaefer@gmail.com - Bump version: 9.24.24 → 9.24.25 * Sat Feb 26 2022 marcus.schaefer@gmail.com - Support nose and xunit style tests The modifications in this commit allows the unit tests to run on both, pytest 6.x (nose test layout) and the new pytest 7.x (xunit test layout). This Fixes #2072 in a much nicer way. Thanks much to @smarlowucf * Fri Feb 25 2022 marcus.schaefer@gmail.com - Update unit test to work in obs Some unit tests fails if they run in an obs environment. This is because the implementation checks the runtime envoironment and behaves differently if the system is an obs worker. The unit tests has to explicitly set this condition right for the test * Fri Feb 25 2022 marcus.schaefer@gmail.com - Revert "Unit test adaptions to pytest v7" This reverts commit 0dc2e803e0e8059c54a0ea23960245286675c86c. The pytest interface from version v6 to v7 has received changes which requires the tests to be adapted to work for either the old or the new interface. As there are still many distributions which uses v6 as the standard we decided to revert back the adaptions done to support v7 and create a version requirement to v6 in .virtualenv.dev-requirements.txt This Fixes #2072 * Wed Feb 23 2022 marcus.schaefer@gmail.com - Added overlayroot_readonly_partsize attribute Specifies the size in MB of the partition which stores the squashfs compressed read-only root filesystem in an overlayroot setup. This Fixes #2068 * Wed Feb 23 2022 marcus.schaefer@gmail.com - Update to scorecard CI 1.0.4 * Tue Feb 22 2022 marcus.schaefer@gmail.com - Added debootstrap log info to exception message In case debootstrap fails there is more detailed information in a logfile written by debootstrap itself. This commit changes the exception information to contain this log information if present. Related to Issue #1800 * Sun Feb 20 2022 marcus.schaefer@gmail.com - Bump version: 9.24.23 → 9.24.24 * Sun Feb 20 2022 marcus.schaefer@gmail.com - Added overlayroot_write_partition attribute For the oem type only, allows to specify if the extra read-write partition in an overlayroot setup should be created or not. By default the partition is created and the kiwi-overlay dracut module also expect it to be present. However, the overlayroot feature can also be used without an initrd and under certain circumstances it is handy to configure if the partition table should contain the read-write partition or not. * Sat Feb 19 2022 matt@datto.com - Use DEB822-formatted .sources files instead .list files for APT * Tue Feb 15 2022 dcassany@suse.com - Support additional names for docker containers Docker containers used to support the attribute `additionaltags` which was used to provide multiple tags for the same image. Since only tags were supported this commit renames the attribute to `additionalnames` and now supports tags and names witht he following syntax: * '<name>:<tag>' -> adds a full docker image reference including name and tag * ':<tag>' -> adds an additional tag while reusing the former name * '<name>' -> adds an additional name while reusing the former tag Fixes #2045 Signed-off-by: David Cassany <dcassany@suse.com> * Mon Feb 14 2022 marcus.schaefer@gmail.com - Follow up fix on force deleting debs Also remove eventual post scripting prior force removal of deb packages. Similar inconsistencies as with the pre scripts can occur on force removal. We want the operation to be successful in force mode even if that means to leave a dirty state. * Sat Feb 12 2022 marcus.schaefer@gmail.com - Add support for pre_disk_sync.sh script The optional pre_disk_sync.sh script is executed for the disk image type oem only and runs right before the synchronisation of the root tree into the disk image loop file. The script hook can be used to change content of the root tree as a last action before the sync to the disk image is performed. This is useful for example to delete components from the system which were needed before or cannot be modified afterwards when syncing into a read-only filesystem. * Thu Feb 10 2022 marcus.schaefer@gmail.com - Create ci-scorecards-analysis.yml Create security health metrics score card * Tue Feb 08 2022 marcus.schaefer@gmail.com - Fixup inplace podman storage and container conf Newer versions of podman requires runroot and graphroot to be explicitly set in storage.conf. Newer versions of podman no longer reads the engine.cgroups setting on containers.conf and prints a 'Failed to decode the keys [\"engine.cgroups\"]' warning message This commit fixes storage.conf and containers.conf written by kiwi if the setupContainerRuntime method is used in scripts. * Tue Feb 08 2022 dcassany@suse.com - Make use of container name in OCI images Fixes #2050 Signed-off-by: David Cassany <dcassany@suse.com> * Mon Feb 07 2022 marcus.schaefer@gmail.com - Bump version: 9.24.22 → 9.24.23 * Mon Feb 07 2022 marcus.schaefer@gmail.com - Fixed name of secret variable The ci-update-build-tests action used a wrong variable name which does not exist in the github secrets. This commit fixes it and uses the correct variable name * Mon Feb 07 2022 marcus.schaefer@gmail.com - Bump version: 9.24.21 → 9.24.22 * Mon Feb 07 2022 marcus.schaefer@gmail.com - Revert "Revert "Fixed MicroOS build test"" This reverts commit 8c4464b8ff2af2642439ce92e1e2be497f2b0f4d. snapper default config has moved from /etc to /usr/share now hopefully for the last time * Mon Feb 07 2022 marcus.schaefer@gmail.com - Fixed unit tests The pytest interface setup() method call has changed in a way that an additional parameter is passed to the method which leads to a python error at invocation time if the setup method does not define it. * Mon Feb 07 2022 ngompa@centosproject.org - build-tests: Update CentOS 8 test appliance to CentOS Stream 8 CentOS Linux 8 is now EOL, so switch over to CentOS Stream 8. * Sat Feb 05 2022 marcus.schaefer@gmail.com - Added API for BLS and systemd-boot support Bootloaders implementing the Boot Loader Spec (BLS) are not directly compatible with the original Bootloader Class design in kiwi. Because of that an interface class which translates the original API into calls following BLS was added. This allows us to keep the implementations in the Builder classes and the public BootLoader interface untouched. In addition to the BLS API an implementation to support the systemd-boot loader is part of this commit too. An example type definition to use systemd-boot with an EFI disk image type looks like the following: <type image="oem" filesystem="xfs" firmware="efi" bootloader="systemd_boot" efipartsize="200"/> The implementation uses bootctl and kernel-install tools provided from systemd and expects a proper integration of systemd-boot by the distribution maintainers This Fixes #1935 * Fri Feb 04 2022 marcus.schaefer@gmail.com - Fixed handling of oem reboot settings There are oem settings called oem-reboot, oem-reboot-interactive as well as oem-shutdown and oem-shutdown-interactive. When used the information is passed along to the profile but not evaluated by any initrd code. I don't know where on the way we lost the code that actually works with these settings but this commit makes them effective. This Fixes #2056 * Thu Feb 03 2022 dirk@dmllr.de - treat armv8l as armv7hl openSUSE switched from armv7hl buildworkers to aarch64 in 32bit mode which identifies itself as "armv8l" in uname -m. * Tue Feb 01 2022 marcus.schaefer@gmail.com - Bump version: 9.24.20 → 9.24.21 * Mon Jan 31 2022 marcus.schaefer@gmail.com - Fixed UUID used in grub early boot script In case the system is luks encrypted the UUID of the root partition was used in the grub early boot script. However, this condition is only correct if in addition to the luks encryption the boot area is on crypto too. If boot is not on crypto the UUID must be the boot partition and not root. Only if root AND boot is on crypto the kiwi created early boot script includes the grub cryptomount calls. * Sat Jan 29 2022 marcus.schaefer@gmail.com - Bump version: 9.24.19 → 9.24.20 * Sat Jan 29 2022 marcus.schaefer@gmail.com - Followup fix for force deleting debian packages The force uninstall deletes pre scripts prior removal because if they fail the package will not be removed. For a force uninstall we consider this ok. However, the deletion of the scripts did not happen in the image root. This patch fixes it * Wed Jan 26 2022 marcus.schaefer@gmail.com - Followup fix for force deleting debian packages Pass --force-depends to allow uninstall even if the dependency checker complains * Tue Jan 25 2022 marcus.schaefer@gmail.com - Fix use of xattrs for container sync when syncing data for containers only a subset of xattr attributes can be applied. This Fixes #2009 * Tue Jan 25 2022 marcus.schaefer@gmail.com - Bump version: 9.24.18 → 9.24.19 * Tue Jan 25 2022 ngompa@datto.com - Ensure SELinux labels are set based on the policy When running kiwi from a filesystem tree that has custom labels applied (such as when using kiwi from within a container on an SELinux-enabled host), the filesystem labeling doesn't correctly apply on some files and folders with a warning about the location being customized by the administrator. This causes all kinds of strange results with the built images and makes them unbootable. To resolve this, tell setfiles to forcibly set files and folders with the default context from the installed policy. * Tue Jan 25 2022 fvogt@suse.de - Extend and update documentation about /etc/machine-id setup * Tue Jan 25 2022 fvogt@suse.de - Fix ordered list in shell_scripts.rst Ordered lists must be indented by three spaces, otherwise the numbering breaks. * Mon Jan 24 2022 marcus.schaefer@gmail.com - Bump version: 9.24.17 → 9.24.18 * Mon Jan 24 2022 dcassany@suse.com - Fix ramdisk deployments from PXE This commit fixes PXE deployments on ramdisk. In such cases the former fix from df4e62a4 is not sufficient as there is no `root=` parameter within the kernel cmd line and hence this logic is never executed. Signed-off-by: David Cassany <dcassany@suse.com> * Fri Jan 21 2022 dcassany@suse.com - Update outdated PKGBUILD for Arch Linux Signed-off-by: David Cassany <dcassany@suse.com> * Fri Jan 21 2022 marcus.schaefer@gmail.com - Fixed unit test race condition * Fri Jan 21 2022 marcus.schaefer@gmail.com - Fixed grub loader/entries setup If called in non standard environments like an OBS worker the grub tooling does not work correctly and produces invalid results. For these cases kiwi provides a collection of fix_ methods to change the produced results. This commit covers the invalid path in loader/entries/*.conf files pointing to the kernel and the initrd as they exist in the image-root directory. This results for example in settings like: linux /usr/src/packages/KIWI-oem/build/image-root/boot/vmlinuz-5.14.0-43.el9.x86_64 when it should be: linux /boot/vmlinuz-5.14.0-43.el9.x86_64 This Fixes #2038 * Fri Jan 21 2022 fvogt@suse.de - Set /.snapshots subvolume to mode 0700 (bsc#1194992) Avoid that users other than root can enter or even change the content. This is what snapper does as well. * Fri Jan 21 2022 marcus.schaefer@gmail.com - Fixed build_status helper output issue Starting with CentOS stream 9 integration tests a new layer in the project that builds it was added. This changed the osc results output and messed up the build_status helper output a bit. This commit fixes it * Thu Jan 20 2022 marcus.schaefer@gmail.com - Fix the uninstall(force) on Debian based dists Packages marked for uninstall via <package name="delete|uninstall"/> failed to become removed for several reasons. The way this was done in kiwi did not work because dpkg needs to be called differently and with some nasty pre-processing in order to allow for force deletion. In force mode we also allow to remove packages marked as essential. In gracefull uninstall mode this commit makes sure the environment is prepared and does not fail for false-positive reasons. * Wed Jan 19 2022 marcus.schaefer@gmail.com - Added mail map Added information about my private e-mail being the successor for the work done when I was an employee of SUSE * Tue Jan 18 2022 marcus.schaefer@gmail.com - Allow calling podman within chroot Added helper functions and env preparation code to allow calling podman from within a chroot. This allows to run podman from e.g config.sh and also inside of OBS workers * Tue Jan 18 2022 marcus.schaefer@gmail.com - Fix requirements for kiwi-systemdeps-filesystems Extend btrfs condition applying for EL8 to apply for EL9 too * Fri Jan 14 2022 marcus.schaefer@gmail.com - Bump version: 9.24.16 → 9.24.17 * Fri Jan 14 2022 marcus.schaefer@gmail.com - Fixed image builds without kernel If an image is build without a kernel kiwi fails due to some code paths expecting the presence of kernel modules and or kernel binaries. This commit fixes this and allows creating an image without installing a kernel. * Fri Jan 14 2022 marcus.schaefer@gmail.com - Added CentOS Stream 9 integration tests * Thu Jan 13 2022 fvogt@suse.de - Allow "uninitialized" as content of /etc/machine-id According to machine-id(5), an empty file does not signal that this is the first boot of the system. Instead, the file needs to be missing or contain the string "uninitialized". A missing file does not work if the filesystem is initially mounted read-only, so allow "uninitialized" as well, instead of truncating it. Improve the documentation of the method, e.g. dracut is not involved. * Thu Jan 13 2022 fvogt@suse.de - Fix booting GRUB submenu entries with hybrid images (linux/linuxefi) Variables assigned with "set" are not visible in submenus for some reason. Export $linux and $initrd, so that they also work in submenu entries. Fixes bsc#1192523 * Thu Jan 13 2022 fvogt@suse.de - Don't copy GRUB modules for EFI with secure boot enabled When booting grub.efi with secure boot enabled, modules can't be loaded and thus the grub.efi image needs to be complete. Save some space in live images by not copying them into the ISO filesystem. Fixes part of #1750 * Thu Jan 13 2022 fvogt@suse.de - Don't include the ESP in the ISO9660 partition as well (#1750) Previously the image for the ESP was created inside the source directory for the ISO9660 filesystem, so it ended up there as well as a separate partition. Fix that by creating it as a temporary file instead. * Thu Jan 13 2022 marcus.schaefer@gmail.com - Automate build-tests OBS service refresh This commit provides a new github action which sends API requests to the OBS api to refresh the source services for the integration tests on the OBS server side. This Fixes #1980 * Wed Jan 12 2022 marcus.schaefer@gmail.com - Added docker integration test for Ubuntu * Wed Jan 12 2022 marcus.schaefer@gmail.com - Update ubuntu integration test to Hirsute(21.04) * Tue Jan 11 2022 marcus.schaefer@gmail.com - Bump version: 9.24.15 → 9.24.16 * Sun Jan 09 2022 marcus.schaefer@gmail.com - Fixed regression in compression detection The change from 282529de8f612dee32d54ee868c2365dcd829220 Introduced a bad regression. The assumption was made that the xz tool could be used to detect if a file is compressed or not. However, this requires the file to be locally present. In the scope of the method call is_compressed() and within a remote deployment e.g PXE this is not the case. Therefore the former way to "detect" the compression according to the .xz postfix of the source filename was restored. In addition the function name was changed to is_xz_compressed() because that's what the method can do and not more. This Fixes #2015 * Fri Jan 07 2022 marcus.schaefer@gmail.com - Added debug option --debug-run-scripts-in-screen Instead of running scripts in screen if the --debug switch is set, we allow to explicitly switch on this behavior via a new option. This Fixes #2010 * Fri Jan 07 2022 marcus.schaefer@gmail.com - Change packages target for bootincludes Packages marked with bootinclude="true" will be added to the referenced kiwi boot image description if the initrd_system is set to "kiwi" instead of "dracut". The package marked was primarily added to the type="image" section and got only added to the type="bootstrap" section if no image type section existed. However, it has turned out that this approach has the disadvantage that packages which must be installed as part of the bootstraping (e.g certificates) cannot be handled. This commit changes the behavior of the bootinclude to include the package always to the type="bootstrap" section. * Fri Jan 07 2022 marcus.schaefer@gmail.com - Add GitHub workflow badges * Fri Jan 07 2022 marcus.schaefer@gmail.com - Fixed Codacy Badge * Sun Jan 02 2022 marcus.schaefer@gmail.com - Allow firmware="custom" setting The firmware attribute in kiwi is used to indicate for which boot firmware the image should be build. Specifying the target firmware is helpful to create for example the correct disk layout. If no firmware is specified KIWI decides for a default according to the image architecture. This selection is not 100% accurate and as we don't know the later target system. Especially for embedded devices the correct disk layout and other settings can be board specific and KIWI's default settings regarding the firmware could be invalid. For compatibility reasons we cannot switch off the default selection case and therefore a new attribute value "custom" is introduced with this commit. If set KIWI does not select any firmware and consequently all settings caused by a firmware setup will be skipped. On the other hand this means all needed settings for the target to boot and not done by KIWI needs to be specified explicitly and as needed. * Sun Jan 02 2022 ngompa@datto.com - Add util-linux dep for -systemdeps-disk-images subpackage Without this dependency, kiwi fails to work properly in minimal image build environments, like in a mock chroot where util-linux is not installed. * Fri Dec 17 2021 taroth@suse.com - index.rst: fix headline * third try: apply diff by schaefi * Fri Dec 17 2021 taroth@suse.com - index.rst: fix headline * removed lonely bracket * added more lines to fix syntax * Thu Dec 16 2021 taroth@suse.com - index.rst: Change title (bsc#1189294#c2) * 'KIWI NG 9: KIWI NG Documentation' -> 'Building Linux System Appliances with KIWI Next Generation (KIWI NG <VERSION>) * suggested in bsc#1189294#c2 for more clarity * change has been discussed with and approved by main author (Marcus S.) * Thu Dec 16 2021 ro@suse.de - support compressed modules in other formats when cleaning up the firmware directory for unused files * Thu Dec 16 2021 marcus.schaefer@gmail.com - Bump version: 9.24.14 → 9.24.15 * Wed Dec 15 2021 marcus.schaefer@gmail.com - Update documentation Rework troubleshooting chapter and add an article about app security subsystems like selinux and their potential influence on building images. Also update the quickstart with a reference to the troublshooting chapter. This Fixes #1891 * Wed Dec 08 2021 marcus.schaefer@gmail.com - Added support for collection modules In CentOS Stream 8 and Red Hat Enterprise Linux 8, there are Application Streams that are offered in the form of modules (using Fedora Modularity technology). To build images that use this content KIWI needs to support to enable/disable various modules. This commit allows to configure collection modules in a new element as shown below <packages type="bootstrap"> <collectionModule name="module" stream="stream" enable="true|false"/> </packages> This Fixes Issue #1999 * Mon Dec 06 2021 marcus.schaefer@gmail.com - Bump version: 9.24.13 → 9.24.14 * Sun Dec 05 2021 marcus.schaefer@gmail.com - Disable intersphinx intersphinx is a doc extension which links to the documentation of objects in other projects whenever Sphinx encounters a cross-reference that has no matching target in the current documentation set, it looks for targets in the documentation sets configured in the intersphinx_mapping. However, the kiwi docs do not use this feature thus it can be disabled. * Tue Nov 30 2021 dcassany@suse.com - Compress container images in builder class This commit changes the stage at which container images are compressed to match the criteria applied to other image types. Instead of compressing the image in OCI devoted classes now it is happening in builder class by setting Result instance properties. Fixes #1996 Signed-off-by: David Cassany <dcassany@suse.com> * Mon Nov 29 2021 marcus.schaefer@gmail.com - Revert "Fixed MicroOS build test" This reverts commit 52c38f9ec22aef484efaf0a570dc78eea529deec. The TW people moved to an older version of libsnapper, no idea what these guys are doing * Mon Nov 29 2021 glaubitz@physik.fu-berlin.de - kiwi-repart: Fix spelling error in source code comment * Mon Nov 29 2021 glaubitz@physik.fu-berlin.de - Fix multiple minor spelling errors in documentation * Mon Nov 29 2021 marcus.schaefer@gmail.com - Added support for setting up release version Currently the release version is not set or set to '0' for package managers which requires a value to operate. However, in order to support leveraging the same description across different releases it is important to have the opportunity to specify a setting for the release version. This commit adds a new optional attribute to the preferences section which allows to specify a custom value which serves as the release version: <preferences> <release-version>TEXT</release-version> </preferences> If not specified the default setting as before applies. Please note the release version information is currently used in dnf and microdnf package managers only. It might happen that it gets applied to the other package manager backends as well. This will happen on demand though. Related to Issue #1918. This Fixes #1927 * Mon Nov 29 2021 marcus.schaefer@gmail.com - Bump version: 9.24.12 → 9.24.13 * Mon Nov 29 2021 marcus.schaefer@gmail.com - Add global --kiwi-file option When building with kiwi a search on the kiwi main config file is made inside of the given --description directory. The search looks up for the file config.xml or *.kiwi. So far there was no opportunity to specify another name. This commit adds an option in the global area named: - -kiwi-file name which will make kiwi to lookup this file inside of the given --description directory and fail if it does not exist. This Fixes #1973 * Mon Nov 29 2021 marcus.schaefer@gmail.com - Added type hints for CliTask class * Fri Nov 26 2021 marcus.schaefer@gmail.com - Bump version: 9.24.11 → 9.24.12 * Thu Nov 25 2021 marcus.schaefer@gmail.com - Use realpath to resolve this:// location * Thu Nov 25 2021 marcus.schaefer@gmail.com - Support this:// resource locator for includes Allow include references like the following example: <include from="this://include.xml"/> * Thu Nov 25 2021 marcus.schaefer@gmail.com - Allow repo path relative to the image description This commit adds a new URI type called this://... The this:// part will be resolved into the absolute path to the image description. A source path like the following: <source path="this://my_repo"/> is resolved to <source path="dir:///path/to/image/description/my_repo"/> This change provides the requested opportunity to reference repos provided as part of the image description and Fixes #1964 * Thu Nov 25 2021 marcus.schaefer@gmail.com - Care for different snapper template locations snapper recently changed their config template location from etc/ to usr/. This commit handles the two locations and Fixes bsc#1192940 * Thu Nov 25 2021 marcus.schaefer@gmail.com - Prevent warning message on resize exception On systems which are configured to run the oem resize at every boot (default case) kiwi checks how much space is free and if that fits the constraints configured as part of the image description. If the constraints are not met a warning message is displayed and the boot continuous without any resize action happening. This warning message however, always appears after the first boot when the resize had happened and no rest space on disk is present unless the disk geometry would have changed. The situation of the reboot of the system without any disk geometry change is the standard case and happens way more often than the reboot with a disk geometry change. Therefore the warning message displayed is not actually a real warning and most often considered as an issue when there is none. To relax this situation, this commit only shows the warning message if the detected free space on disk is greater than 2M, which is the condition under which we assume an intentional (user made) disk geometry change. This Fixes #1958 * Wed Nov 24 2021 marcus.schaefer@gmail.com - Bump version: 9.24.10 → 9.24.11 * Wed Nov 24 2021 47017732+TheMisanthropicHumanist@users.noreply.github.com - Fix Source Install Disk Detection in get_disk_list (#1982) Fix Source Install Disk Detection in get_disk_list The original check doesn't always work because PARTITIONS get labels, NOT disks. If you install with a Flash Drive and deploy to a machine with an NVMe drive, the Flash Drive is listed first because SCSIs are shown first by lsblk (At least they were in our scenario). When we run blkid "[Install Flash Drive Disk]" -s LABEL -o value in this scenario, we get nothing returned so this conditional evaluates incorrectly. We should get the ${kiwi_install_volid} Partition Block Name, and search for whether ${disk_device} is contained within it as the Disk Device that corresponds to the Install Partition. * Tue Nov 23 2021 marcus.schaefer@gmail.com - Do not force dracut into a compression setting So far we called dracut with --xz which forces the initrd to be xz compressed. There are other compression formats used by the distributions and they might differe from xz. The selection for a compression tool is done by a dist configuration in dracut.conf.d which is provided by the distributions as they see fit. For us this means not forcing dracut into a specific compression setting allows to make use of the distro provided setting and also allows to change/override this setting by an overlay file. This Fixes bsc#1192975 * Tue Nov 23 2021 marcus.schaefer@gmail.com - Bump version: 9.24.9 → 9.24.10 * Tue Nov 23 2021 marcus.schaefer@gmail.com - Added documentation about sharing backends The kiwi boxbuild plugin supports several sharing backends. Details about them and eventual pre-setup steps prior use are mentioned in this document * Tue Nov 23 2021 marcus.schaefer@gmail.com - Fixed MicroOS build test snapper default config has moved from /etc to /usr/share * Mon Nov 22 2021 marcus.schaefer@gmail.com - Bump version: 9.24.8 → 9.24.9 * Mon Nov 22 2021 marcus.schaefer@gmail.com - Bump version: 9.24.7 → 9.24.8 * Mon Nov 22 2021 marcus.schaefer@gmail.com - Added support for reading metalink in info module For resolver operations through libsolv the 'kiwi image info' module exists. So far it could not read the repos from metalink repo definitions. This Fixes #1890 * Fri Nov 19 2021 dcassany@suse.com - Force key attribute from signing element to be treated as a URI Signed-off-by: David Cassany <dcassany@suse.com> * Thu Nov 18 2021 dcassany@suse.com - Pass signing keys from the XML to the repositories This commits makes sure signing keys are passed to repositories setup in build task. Signed-off-by: David Cassany <dcassany@suse.com> * Thu Nov 18 2021 marcus.schaefer@gmail.com - Move static sle15 integration test to git * Tue Nov 16 2021 marcus.schaefer@gmail.com - Bump version: 9.24.6 → 9.24.7 * Mon Nov 15 2021 marcus.schaefer@gmail.com - Fixed raid integration test using extra boot part Due to changes in the distribution the tests needs some adaptions. The kernel as provided now by TW uses symlinks from boot to /usr/lib/modules/... to point to the kernel binary. Of course this breaks for any system that uses /boot on another partition. Those image tests which were testing this aspect needs fixing. * Mon Nov 15 2021 dcermak@suse.com - Make sure fedora-release is installed on Rawhide Follow up to #1957 and #1962: The Fedora build tests were using the generic release package and not fedora-release. This issue has been partially fixed in #1962, but we forgot to port the fix to the rawhide images as well. This commit adds the missing package to the Rawhide images as well. * Sat Nov 13 2021 marcus.schaefer@gmail.com - Bump version: 9.24.5 → 9.24.6 * Fri Nov 12 2021 marcus.schaefer@gmail.com - Followup fix for debootstrap called only once A recent change skipped calling debootstrap if the allow-existing-root flag was passed in combination with apt as the package manager. However this is not enough. If you say allow-existing-root but the existing root is empty or not valid to continue with chroot and apt the debootstrap phase should not be skipped. This commit checks if apt works in the chroot such that we can assume debootstrap has done its job and can be skipped * Fri Nov 12 2021 marcus.schaefer@gmail.com - Allow to set sign keyfile in repository elements This commit adds a new and optional child element <signing> to the repository/source element as shown in the following example: <repository> <source path="..."> <signing key="keyfile"/> </source> </repository> The collection of all keyfiles from all repositories will be added to the keyring as used by the selected package manager. Signing keys specified on the commandline and signing keys specified in the image description will be combined. This Fixes #1883 * Fri Nov 12 2021 marcus.schaefer@gmail.com - Bump version: 9.24.4 → 9.24.5 * Fri Nov 12 2021 marcus.schaefer@gmail.com - Fixed include processing This commit fixes several issue connected with the use of the <include> directive: First and foremost the XSLT chain was broken in a way that the include XSLT in combination with the PrettyPrinter XSLT were called not in the chain of stylesheets but together. This results in XML descriptions which duplicated the content and went invalid Another change is, when the include XSLT is called in the chain. This commit moves it to become the very first processing instruction such that the included data is part of all subsequent XSLT stylesheets. This also allows to use older schema versions in included XML data and they get automatically converted through the chain of XSLT stylesheets. Last change is the evaluation of the from= attribute value. This value is now interpreted as an URI. Currently only local URIs are supported. The reason to do this is because XSLT when processing a document resolves relative paths according to the file path of the master document. As kiwi does not change the original content that path with will be a /var/tmp location if one of the XSLT stylesheets were used. The documentation for this change was updated as well * Thu Nov 11 2021 marcus.schaefer@gmail.com - Bump version: 9.24.3 → 9.24.4 * Thu Nov 11 2021 marcus.schaefer@gmail.com - Added type hints and annotations for iso_tools * Thu Nov 11 2021 marcus.schaefer@gmail.com - Drop support for cdrtools Tools like mkisofs, genisoimage and friends are all unmaintained and have found their substitute in xorriso for quite some time. This commit deletes the code from kiwi which supported creation of ISO images using the obsolete cdrtools collection. In addition all hack code associated with these tools like mbr insertion via isohybrid and things like that got dropped as well. This Fixes #1908 * Thu Nov 11 2021 kshtsk@users.noreply.github.com - Drop usage of `factor` from coreutils utils/checksum: drop factor calls For portability we don't need to call linux coreutils' factor, instead we use pure python prime number generation implementation. Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@gmail.com> * Thu Nov 11 2021 matt@datto.com - Add support for custom GRUB templates This allows the user to specify a template file to customize the bootloader menu. This only applies to oem and iso image types: other image types use the grub mkconfig toolchain. This resolves Issue #1970 Co-authored-by: Marcus Schäfer <marcus.schaefer@gmail.com> * Tue Nov 09 2021 dcermak@suse.com - Only trigger functions workflow on certain paths * Tue Nov 09 2021 dcermak@suse.com - Re-enable functions integration tests once again * Tue Nov 09 2021 kyrylo.shatskyy@gmail.com - config/functions: make baseQuoteFile use extended regex It is more universal to use extended regex, because they can be used on wider range of platforms, for example, same regex works equally on bsd sed and linux distributions. Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@gmail.com> * Mon Nov 08 2021 marcus.schaefer@gmail.com - Added python 3.9, 3.10 to test workflow * Mon Nov 08 2021 kyrylo.shatskyy@suse.com - utils/temporary: rename dir parameter to path To avoid conflicts with python standard `dir` function and for better matching purpose, the Temporary class constructor parameter it is the best to rename from dir to path. Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@gmail.com> * Mon Nov 08 2021 kyrylo.shatskyy@gmail.com - utils/temporary: the --temp-dir does not work Using of --temp-dir argument does not make an effect, because optional 'dir' parameter defaults to the global TEMP_DIR value before it's changed. This patch address this issue. Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@gmail.com> * Wed Nov 03 2021 marcus.schaefer@gmail.com - Bump version: 9.24.2 → 9.24.3 * Wed Nov 03 2021 marcus.schaefer@gmail.com - Fixed s390 SLE15 integration test added blog package to solve packages added by file provides which are not resolved by obs * Wed Nov 03 2021 marcus.schaefer@gmail.com - Fixed s390 integration test using extra boot part Due to changes in the distribution the tests needs some adaptions. The kernel as provided now by TW uses symlinks from boot to /usr/lib/modules/... to point to the kernel binary. Of course this breaks for any system that uses /boot on another partition. Those image tests which were testing this aspect needs fixing. * Wed Nov 03 2021 marcus.schaefer@gmail.com - Added partition sizes to disk size math Make sure partition sizes are used for the calculation of the entire disk size to fit the size constraints of the image disk * Tue Nov 02 2021 marcus.schaefer@gmail.com - Revert "Cleanup xattr requirement" This reverts commit 6754b3f9e270a6cb710355605c46b0bade4de29c. It has turned out that SLE15 still uses the other xattr module :/ * Tue Nov 02 2021 marcus.schaefer@gmail.com - Added integration test Test the combination of custom partitions and volumes * Fri Oct 29 2021 marcus.schaefer@gmail.com - Make sure fedora-release is installed Fedora based integration tests should install the fedora-release package. If no release package is specified the generic-release package is choosen which is unexpected. This Fixes #1957 * Wed Oct 27 2021 marcus.schaefer@gmail.com - Make sure debootstrap is called only once When building debian based images the bootstrap phase is done by calling debootstrap. If kiwi is called on an already existing root tree via --allow-existing-root this will make debootstrap to fail in any case. This is because for debootstrap it's an error condition if there is already data in the root. However, for kiwi and the explicitly requested re-use of the root tree this is not an error. Thus this commit skips the bootstrap by debootstrap and directly continues with the image phase. * Wed Oct 27 2021 marcus.schaefer@gmail.com - Cleanup xattr requirement There is no version of suse we support that provides the old xattr module. Thus the requirement can be set in a clean way to pyxattr and the setup.py trickery can be deleted * Mon Oct 25 2021 marcus.schaefer@gmail.com - Disable config functions testing It happens too often that the failure on running the container causes failed results which are not actually failures. I have hope that #1944 stabilize this * Fri Oct 22 2021 marcus.schaefer@gmail.com - Bump version: 9.24.1 → 9.24.2 * Fri Oct 22 2021 marcus.schaefer@gmail.com - Fixed nasty bug in ramdisk generator The ramdisk unit generator reads the config.bootoptions file and extracts the root_uuid from it. This is done with a very simple shell read using a space as separator. However the last element is never read by that code. As long as there was yet another kernel cmdline option after the root= option this bug was not an issue. But as soon as the root= option is last in the list it will not be read and the generator exits prior creating the sysroot.mount target. This commit fixes it in a way that it makes sure there is always a space at the end of the config.bootoptions file * Thu Oct 21 2021 marcus.schaefer@gmail.com - Support custom partitions In addition to the volume volume management settings also allow to setup low level table entries like in the following example: <partitions> <partition name="var" size="100" mountpoint="/var" filesystem="ext3"/> </partitions> * Thu Oct 21 2021 marcus.schaefer@gmail.com - Added integration build test for bundle_format * Wed Oct 20 2021 marcus.schaefer@gmail.com - Added lsof to kiwi-systemdeps-core * Tue Oct 19 2021 marcus.schaefer@gmail.com - Add support for custom result bundle naming Allow to specify a bundle_format per <type> which is used at the time of the result bundle creation to create image output names matching the provided pattern. This Fixes #1943 * Tue Oct 19 2021 marcus.schaefer@gmail.com - Added missing python-simplejson to pkgbuild Added missing python-simplejson requirement to the archlinux pkgbuild package template * Tue Oct 19 2021 marcus.schaefer@gmail.com - Raise exception on umount issue Up to now kiwi tried to umount a resource it has mounted for some time and if it was not possible due to a busy state the process continued. In any of these situations it was not possible to free up the nested resources and it could also happen that the image build result got corrupted because there is still data that can be consumed but shouldn't be there anymore. The change here makes kiwi to stop the process and raise with an error also including the information that there are now resources still active but busy on the host and a manual cleanup is unfortunately needed. This Fixes #1914 * Mon Oct 18 2021 marcus.schaefer@gmail.com - Added SystemOverlayRoot profile Test kiwi's overlayroot mode without initrd * Mon Oct 18 2021 marcus.schaefer@gmail.com - Update test for image without initrd and loader The systemd-remount-fs.service expects devices to be present in their UUID representation. When booting without an initrd there is no udev and the root= device must be provided with the kernel exposed unix device name. In addition there is no UUID device representation for virtio devices which are used together with the small kvmsmall kernel of this example. Since booting of this appliance is done via: $ kvm --kernel (kernel-kvmsmall) \ - drive file=kiwi-test-image-embedded.raw,if=virtio \ - append "root=/dev/vda1 console=ttyS0 rw" The kernel rootfs is mounted in rw mode anyway. Thus the systemd remount service is not useful in this case and switched off * Fri Oct 15 2021 marcus.schaefer@gmail.com - Bump version: 9.24.0 → 9.24.1 * Thu Oct 14 2021 marcus.schaefer@gmail.com - Make sure embedded test exposes the kernel * Thu Oct 14 2021 marcus.schaefer@gmail.com - Fixed use of LUKS encrypted images with empty pass For initial provisioning of LUKS encrypted disk images an empty passphrase key is handy to avoid interaction in the deployment process. However, the dracut kiwi modules were lacking the information that the luks keyfile could be an empty passphrase key which must not be opened with the potential risk to get prompted for input. This commit introduces a new profile environment variable evaluated by the dracut kiwi lib code to open the LUKS pool and allows to distinguish the situation on key files with or without a passphrase * Thu Oct 14 2021 marcus.schaefer@gmail.com - Fixed type annotations for LuksDevice class * Wed Oct 13 2021 marcus.schaefer@gmail.com - Fixed repo setup for test-image-embedded Use obsrepositories * Wed Oct 13 2021 marcus.schaefer@gmail.com - Added a build test for no-initrd / no-bootloader It's allowed to configure an image building without an initrd and/or bootloader setup. These are settings mostly used in the embedded world and this build test makes sure images of that kind can be build * Wed Oct 13 2021 marcus.schaefer@gmail.com - Add support for portable result data (#1949) In addition to the serialized Result instance kiwi.result file this commit also creates a portable version of this information in kiwi.result.json. Only the information that can be expressed as json document is part of the portable version. This is related to Issue #1918 * Thu Oct 07 2021 marcus.schaefer@gmail.com - Added documentation for kiwi stackbuild plugin Restructure the documentation to put all plugin documentation under its own category. Add a chapter about the stackbuild plugin, it's concepts and use cases. This Fixes #1907 * Thu Oct 07 2021 marcus.schaefer@gmail.com - Bump version: 9.23.63 → 9.24.0 * Thu Oct 07 2021 marcus.schaefer@gmail.com - Add support for toplevel include directive(s) On the toplevel of an image description you can now specify include directive(s) like in the following example <image ...> ... <include from="filename_a.xml"/> ... <include from="filename_b.xml"/> </image> At the place of their occurrence the include statement will be replaced with the contents of the given filename. The implementation is based on a XSLT stylesheet and applies very early in the process. The stylesheet reads the contents of the given file as XML document(). Thus only valid XML documents gets accepted by this include concept. This Fixes #1929 and is related to Issue #1918 * Wed Oct 06 2021 dcermak@suse.com - Switch to pytest_container instead of custom conftest * Wed Oct 06 2021 marcus.schaefer@gmail.com - Bump version: 9.23.62 → 9.23.63 * Wed Oct 06 2021 marcus.schaefer@gmail.com - Fixed error reporting for stateful description Errors due to missing or no type definitions were reported provding the internal object reference of the XML parse result. This is useless information for users and needs to be done better. This commit fixes the error message to avoid showing object references and includes information about the applied profiles used for this XML state. * Wed Oct 06 2021 marcus.schaefer@gmail.com - Fixed legacy PXE documentation The documentation for building a legacy pxe image was not using the profiles (Flat or Compressed) as the actual image description for this example requires it. This Fixes #1923 * Wed Oct 06 2021 marcus.schaefer@gmail.com - Added mdadm to requires for systemdeps When building raid based images the buildhost needs mdadm. In addition rework the place to require disk based tools. Most of them were added to the filesystem systemdeps but belong to the disk systemdeps * Wed Oct 06 2021 marcus.schaefer@gmail.com - Fixed creation of loopback config If an extra boot partition is in use the creation of the config file for the loopback boot feature was using the wrong path. This commit fixes it and also introduces integration checks which builds in this condition * Tue Oct 05 2021 marcus.schaefer@gmail.com - Fixed GRUB_CMDLINE_LINUX_DEFAULT setup regression The value for GRUB_CMDLINE_LINUX_DEFAULT should only be changed if custom kernelcmdline values are provided. In case there are none kiwi should not change this value. The test to check for this condition is based on the result cmdline reduced by the root setting. However the default cmdline setting in kiwi appends 'rw' in addition to the root device information. This means the default kernelcmdline is never empty and therefore the grub setting GRUB_CMDLINE_LINUX_DEFAULT="rw" is always set. This commit fixes the conditional change by making sure the default cmdline only consists out of the root device information. This Fixes #1650 * Tue Oct 05 2021 marcus.schaefer@gmail.com - Allow logfile option to log on stdout The option setting '--logfile stdout' is now a special form and logs the messages usually written to a file to stdout instead. This is handy if all messages of the build are requested but the --debug switch is not because it does more than that, e.g calling scripts through debug'able screen sessions * Tue Oct 05 2021 marcus.schaefer@gmail.com - Allow test-image-luks to be build locally too In suse there are many programs replaced by the busybox alternative and also preferred by the package manager. However there are also packages like the kernel in suse which wants gawk and not busybox-gawk. In kiwi to build images there are two installation phases, the bootstrap phase which installs mandatory packages to allow chroot operations and the image phase which installs the rest of the requested packages as chroot operation. In this two pass step the package manager is called twice to resolve dependencies and that causes the issue with the preferred busybox packages which gets pulled in in the first phase. To prevent this there are only two options: 1. Explicitly list the non busybox packages in the bootstrap phase 2. Prevent the image phase and put all packages to the bootstrap phase such there is only one package manager call for dependency resolution This commit implementes option 1. because having all packages in the bootstrap phase means that the host packagemanager resolves and if the host packagemanager is somehow not compatible with the image target this leads to other weird issues which are not obvious and hard to debug. * Thu Sep 23 2021 marcus.schaefer@gmail.com - Bump version: 9.23.61 → 9.23.62 * Thu Sep 23 2021 marcus.schaefer@gmail.com - Fixed script calls when running in obs kiwi is called with --debug in obs which triggers the scripts to be called through screen. However the obs caller is not associated with a terminal thus it fails. This commit creates an exception for debug mode when running in obs * Thu Sep 23 2021 marcus.schaefer@gmail.com - Bump version: 9.23.60 → 9.23.61 * Thu Sep 23 2021 luisgf@users.noreply.github.com - Fix secure boot for ubuntu based images This patch fixes #1911 and makes secure boot images to work again in Ubuntu 20.04 Co-authored-by: Luis Ladislao Gonzalez Fernandez <luislgf@inditex.com> * Wed Sep 22 2021 marcus.schaefer@gmail.com - Run scripts via a screen session in debug mode When creating a custom script it usually takes some iterations of try and testing until a final stable state is reached. To support developers with this task kiwi calls scripts associated with a screen session. The connection to screen is only done if kiwi is called with the --debug option. * Tue Sep 21 2021 marcus.schaefer@gmail.com - Delete obsolete release stage from gitlab Now done as github action * Tue Sep 21 2021 marcus.schaefer@gmail.com - Bump version: 9.23.59 → 9.23.60 * Tue Sep 21 2021 marcus.schaefer@gmail.com - Fixed pypi tox release target Only needs the creation of the sdist tarball * Tue Sep 21 2021 marcus.schaefer@gmail.com - Bump version: 9.23.58 → 9.23.59 * Tue Sep 21 2021 marcus.schaefer@gmail.com - Moved pages and pypi publish to github actions Moved gh-pages doc update and pypi upload from gitlab to github actions * Tue Sep 21 2021 marcus.schaefer@gmail.com - Fixed RNC schema definition From the compact form of the schema the RNG schema is created. The latest changes to support the target_dir attribute in the <archive> section were added wrong to the compact form of the schema * Fri Sep 17 2021 marcus.schaefer@gmail.com - Fixed Tumbleweed integration tests Due to changes in the distribution the tests needs some adaptions. The kernel as provided now by TW uses symlinks from boot to /usr/lib/modules/... to point to the kernel binary. Of course this breaks for any system that uses /boot on another partition. Those image tests which were testing this aspect needs fixing. * Wed Sep 15 2021 marcus.schaefer@gmail.com - Bump version: 9.23.57 → 9.23.58 * Wed Sep 15 2021 marcus.schaefer@gmail.com - Fixed MANIFEST Make sure all test data is included into the source tarball not only a recursive inclusion of a portion of it. This is needed to run tests at build time from the pypi provided source tarball * Wed Sep 15 2021 marcus.schaefer@gmail.com - Bump version: 9.23.56 → 9.23.57 * Tue Sep 14 2021 marcus.schaefer@gmail.com - Fixed python manifest Deleted no longer existing doc source from manifest and add the full set of documentation sources * Fri Sep 10 2021 marcus.schaefer@gmail.com - Bump version: 9.23.55 → 9.23.56 * Fri Sep 10 2021 marcus.schaefer@gmail.com - Only wipe bundle dir when required The given result bundle dir must only be wiped if the request to turn the result files into an rpm was given. Only in this case the given bundle dir must start empty * Fri Sep 10 2021 marcus.schaefer@gmail.com - Fixed uninstall handling via dnf, microdnf, zypper The above package managers supports uninstall instructions like 'iwl*'. In kiwi there was code checking via rpm if the packages given to uninstall actually exists. That code does not work if the given package to uninstall is an instruction that matches a pattern. Therefore if we use the uninstall section in the kiwi image description, just pass the provided information to the package manager and don't try to be clever in kiwi itself. * Thu Sep 09 2021 marcus.schaefer@gmail.com - Allow to set --logfile for result namespace Setting a logfile for e.g 'kiwi-ng result bundle ...' is useful and should be possible * Thu Sep 09 2021 marcus.schaefer@gmail.com - Bump version: 9.23.54 → 9.23.55 * Wed Sep 08 2021 marcus.schaefer@gmail.com - Added support for building rpm package from bundle With the new option --package-as-rpm it is possible to call the kiwi result bundler such that the image build results gets packaged into an rpm. I think this is a handy feature to transport image builds via repositories * Wed Sep 08 2021 marcus.schaefer@gmail.com - Fixed MicroOS integration test With ignition/combustion in place it's not allowed to use tmp as a subvolume * Tue Sep 07 2021 marcus.schaefer@gmail.com - Bump version: 9.23.53 → 9.23.54 * Mon Sep 06 2021 marcus.schaefer@gmail.com - Fixed condition for GRUB_DISABLE_LINUX_UUID="true" The grub config parameter GRUB_DISABLE_LINUX_UUID must only be set if the device persistence setting is not UUID. However, in kiwi UUID device names are the default and doesn't have to be expressed explicitly. Therefore the condition to check for different than 'by-uuid' is wrong for the default case were no device persistence setting exists. This results in a wrong grub option to be set. This commit fixes it in a way to disable UUID device names in grub if the only other device persistency setting in kiwi named: 'by-label' is explicitly configured. This Fixes #1842 * Mon Sep 06 2021 marcus.schaefer@gmail.com - Added force_trailing_slash argument to sync_data A speciality of the rsync tool is that it behaves differently if the given source_dir ends with a '/' or not. If it ends with a slash the data structure below will be synced to the target_dir. If it does not end with a slash the source_dir and its contents are synced to the target_dir. For example: source └── some_data 1. $ rsync -a source target target └── source └── some_data 2. $ rsync -a source/ target target └── some_data The parameter force_trailing_slash in the DataSync::sync_data method can be used to make sure rsync behaves like shown in the second case. This Fixes #1786 * Mon Sep 06 2021 marcus.schaefer@gmail.com - Added type hints for DataSync class * Fri Sep 03 2021 marcus.schaefer@gmail.com - Bump version: 9.23.52 → 9.23.53 * Thu Sep 02 2021 marcus.schaefer@gmail.com - Add missing bootloader tests Merging #1850 exposed the missing bootloader tests. This reminds me to move the gitlab driven unit tests to github actions because for forked repos the gitlab tests does not run but github actions tests would run * Tue Aug 31 2021 48757730+data-intelligence-robot@users.noreply.github.com - Fix logging of ISO publisher * Tue Aug 31 2021 mexit@o2.pl - Improving text formatting * Tue Aug 31 2021 mexit@o2.pl - Added documentation for grub2 loopback ISO images * Fri Aug 27 2021 marcus.schaefer@gmail.com - Bump version: 9.23.51 → 9.23.52 * Fri Aug 27 2021 marcus.schaefer@gmail.com - Fixed pep E711 code smell comparison to None should be 'if cond is not None:' * Fri Aug 27 2021 marcus.schaefer@gmail.com - Bump version: 9.23.50 → 9.23.51 * Fri Aug 27 2021 rjschwei@suse.com - No compression with encryption When an image is setup to use encryption the resulting image appears as a random stream of bytes and cannot be compressed. Simply skip the compression in this case. * Thu Aug 26 2021 marcus.schaefer@gmail.com - Fix typo in schema documentation ciper -> cipher. Fix originally done by Robert Schweikert and moved to the right place, see Issue #1906 for details * Thu Aug 12 2021 jesus.bv@suse.com - Allow target dir for archive - Add the option to specify a target directory to unpack the archive - Update doc for target dir attribute This Fixes #1794 * Tue Aug 10 2021 marcus.schaefer@gmail.com - Log deprecation errors to stderr Make sure information about deprecated shell methods logs their information to stderr. This will cause the error message to be exposed to the user and not only in the log file * Tue Aug 10 2021 marcus.schaefer@gmail.com - Fixed TW build test Explicitly added packages that causes conflicts due to the busybox alternatives * Tue Aug 10 2021 marcus.schaefer@gmail.com - Bump version: 9.23.49 → 9.23.50 * Thu Aug 05 2021 marcus.schaefer@gmail.com - Added support for repo customization script repo files allows for several customization options which could not be set by kiwi through the current repository schema. As the options used do not follow any standard and are not compatible between package managers and distributions the only generic way to handle this is through a script which is invoked with the repo file as parameter for each file created to describe a repo for the selected package manager. This allows users to update/change the repo file content on their individual needs. In the kiwi description the path to the custom script can be specified as follows <repository ... customize="/path/to/custom_script"> <source path="..."/> </repository> This Fixes #1896 * Fri Jul 30 2021 marcus.schaefer@gmail.com - Bump version: 9.23.48 → 9.23.49 * Thu Jul 29 2021 marcus.schaefer@gmail.com - Fixed fstab entry for swap on LVM If an LVM setup is used together with a swapspace the swap is created as a volume in the volume group. The required fstab entry to activate swap was not using the LVM exposed device but the UUID of the low level block layer. This low level device is not created by udev because LVM takes over precedence in this case. * Sat Jul 24 2021 marcus.schaefer@gmail.com - Bump version: 9.23.47 → 9.23.48 * Sat Jul 24 2021 marcus.schaefer@gmail.com - Fixed LVM get_volumes Due to the change on the temporary directory yet another error in the volume manager classes for LVM got exposed. * Sat Jul 24 2021 marcus.schaefer@gmail.com - Bump version: 9.23.46 → 9.23.47 * Sat Jul 24 2021 marcus.schaefer@gmail.com - Fixed LVM/btrfs volume based image builds Due to the change on the temporary directory an error in the volume manager classes for LVM and btrfs was exposed. There was code which uses a sub-part of the volume mount point directory which is a tempdir based directory name. The sub-part was choosen by an index based path split which worked for /tmp but no longer for /var/tmp. With tempdir now being also a commandline option this code has to become more robust. * Fri Jul 23 2021 marcus.schaefer@gmail.com - Bump version: 9.23.45 → 9.23.46 * Thu Jul 22 2021 marcus.schaefer@gmail.com - Do not expose the delete feature in Temporary We do not want to expose the ability to create temporary data that doesn't get auto deleted at the end of its scope * Thu Jul 22 2021 marcus.schaefer@gmail.com - Refactor recovery archive creation The creation of the recovery archive was based on a tempfile which then gets moved to the final target file. This is bad because if causes the tempfile cleanup to raise an exception unless you specify delete=False. Creating a tempfile with delete=False however, negates the reason for creating self managed temporary data. Thus this code was refactored to create the recovery archive file at its final destination from the beginning on * Wed Jul 21 2021 marcus.schaefer@gmail.com - Moving temp data handling to its own namespace Moving use of mkdtemp, NamedTemporaryFile and TemporaryDirectory into its own class called Temporary: By default all temporary data is created below /var/tmp but can be changed via the global commandline option --temp-dir. This Fixes #1870 * Wed Jul 21 2021 marcus.schaefer@gmail.com - Bump version: 9.23.44 → 9.23.45 * Tue Jul 20 2021 marcus.schaefer@gmail.com - Handle UnicodeDecode errors more gracefully If the Codec.decode() method cannot encode the given data to utf-8 an Encoding exception is raised which causes kiwi to raise a KiwiDecodingError. That way to handle the error causes an image build to fail. However, this sort of error for example happens if the .changes file of a package contains invalid characters. From a user perspective this cannot be fixed and you cannot build the image because of a stupid character error in a .changes file outside your control. Because of this reason this commit handles the decode error case differently and applies the 'replace' strategy on error. The characters in questions gets replaced and the rest of the data which can be decoded is returned. * Mon Jul 19 2021 marcus.schaefer@gmail.com - Install mypy library stubs for mock * Wed Jul 14 2021 marcus.schaefer@gmail.com - Added documentation for oem-skip-verify element * Wed Jul 14 2021 marcus.schaefer@gmail.com - Increase size of efi fat image For ISO images an embedded efi fat image is needed to boot. As consequence of adding the mok manager it can happen that the size of the efi fat image is too small. With this commit the size is increased to prevent an out of space issue * Wed Jul 14 2021 marcus.schaefer@gmail.com - Bump version: 9.23.43 → 9.23.44 * Wed Jul 07 2021 dcermak@suse.com - Add tests for baseVagrantSetup * Wed Jul 07 2021 dcermak@suse.com - Set the directory permissions of /home/vagrant/.ssh to 0700 in baseVagrantSetup * Wed Jul 07 2021 dcermak@suse.com - Don't modify main sshd_config file via baseVagrantSetup In Tumbleweed we switched from shipping sshd's config file in /etc to /usr/etc, but baseVagrantSetup was not respecting that. So instead of modifying the main config file, we instead create a custom file in /etc/ssh/sshd_config.d/ with our custom setting which is much more robust accross distributions. However, if /etc/ssh/sshd_config.d/ does not exist, then we fall back to adding our settings to /etc/ssh/sshd_config. * Tue Jul 06 2021 marcus.schaefer@gmail.com - Fixed LUKS keyfile permission bits LUKS keyfile should use 0600 file permission flags * Tue Jul 06 2021 marcus.schaefer@gmail.com - Fixed secure boot fallback setup Make sure MokManager gets copied. The name and location of the mok manager is distribution specific in the same way as the shim loader. Thus we need to apply a similar concept for looking it up. This Fixes bsc#1187515 * Tue Jul 06 2021 marcus.schaefer@gmail.com - Improve live image integration test Build one live image for Standard EFI+BIOS boot and another variant that support SecureBoot+BIOS boot * Mon Jul 05 2021 marcus.schaefer@gmail.com - Fixed grub cmdline setup with custom root If the kiwi kernelcmdline attribute contains root=... information it is extracted from being written to GRUB_CMDLINE_LINUX_DEFAULT. However, the regexp to extract the root=... information was broken and deleted more elements of the cmdline information than just the root device information. This commit fixes the regexp to only delete the root=... information taking into account that every kernel parameter is delimited by '\s' This Fixes #1875 * Mon Jul 05 2021 marcus.schaefer@gmail.com - Bump version: 9.23.42 → 9.23.43 * Mon Jul 05 2021 dcermak@suse.com - Re-add suseImportBuildKey suseImportBuildKey is not required during the image build as kiwi imports the correct keys by itself. However, the created images lack the repository signing keys and any `zypper` commands will thus fail. This fixes https://github.com/OSInside/kiwi/issues/1876 * Fri Jul 02 2021 marcus.schaefer@gmail.com - Bump version: 9.23.41 → 9.23.42 * Thu Jul 01 2021 marcus.schaefer@gmail.com - Fixed fedora integration test builds Maintain the repos in the obs prj config which prevents the weird "nothing provides kernel-obs-build" error * Wed Jun 30 2021 marcus.schaefer@gmail.com - Bump version: 9.23.40 → 9.23.41 * Wed Jun 30 2021 dcermak@suse.com - Remove util-linux-systemd & util-linux Requires from dracut-kiwi-overlay These dependencies are pulled in via dracut-kiwi-lib. * Wed Jun 30 2021 dcermak@suse.com - Add missing util-linux-systemd Requires to dracut-kiwi-[live,libs] * Wed Jun 30 2021 marcus.schaefer@gmail.com - Fixed test-image-orthos integration test The test was missing btrfs_root_is_snapshot which is required when using btrfs on tumbleweed. * Tue Jun 29 2021 marcus.schaefer@gmail.com - Fixed test-image-disk-legacy integration test The test did not set a device filter for ramdisk devices but activates unattended mode. In this mode the first device in the list is taken and this is a ramdisk device which is by default too small to be used for the installation. Thus the install usually fails. This commit sets the device filter for ramdisk devices such that only associated disk devices can be used for the install process, which is the purpose of this test. This is related to Issue OSInside/kiwi-functional-tests#8 * Tue Jun 29 2021 marcus.schaefer@gmail.com - Bump version: 9.23.39 → 9.23.40 * Tue Jun 29 2021 marcus.schaefer@gmail.com - Mount dev and proc filesystems prior dracut In newer versions of dracut /dev and /proc must be mounted for dracut to work correctly. If not present the resulting initrd is incomplete. This Fixes #1867 * Mon Jun 28 2021 ngompa@datto.com - Use namespaced files in /var/tmp for large temporary files Previously, kiwi created staging image files as plain temporary files in /tmp, which causes issues on operating systems where /tmp is tmpfs. Notably, image builds would fail with "no space left on the device" because the tmpfs was not big enough for everything to exist there. To fix this, we change to use /var/tmp, and additionally add a prefix for our temporary files so that the user knows which ones kiwi created. Fixes: https://github.com/OSInside/kiwi/issues/1866 * Fri Jun 25 2021 tom_schr@web.de - Use latest stylesheet in STYLEROOT Use "suse2021-ns" instead of "suse2013-ns" due to new branding. * Wed Jun 23 2021 dcermak@suse.com - Add missing util-linux-systemd dependency to dracut-kiwi-overlay The script kiwi-overlay-root.sh requires lsblk which is provided by util-linux-systemd. If that package is missing in the final image, then booting an overlayroot image hangs with: dracut-pre-mount[480]: //lib/dracut/hooks/pre-mount/30-kiwi-overlay-root.sh: line 46: lsblk: command not found * Tue Jun 22 2021 marcus.schaefer@gmail.com - Start moving CI test from gitlab to actions Moving the linter and unit tests to github workflows and out of the gitlab CI system has the advantage that pull request from forked repos will run the tests. In the long run I think we should move away completely from gitlab CI and use github actions as this will reduce the number of external services used in the kiwi project. This commit starts with the most simple parts: unit and type tests, doc rendering and code style * Mon Jun 21 2021 marcus.schaefer@gmail.com - Make sure chat link points to Element not Riot Riot has changed to Element. The index page on kiwi still uses the old location. This updates the information how to use the Matrix channel and the kiwi room name. This Fixes #1854 * Mon Jun 21 2021 marcus.schaefer@gmail.com - Bump version: 9.23.38 → 9.23.39 * Mon Jun 21 2021 45594031+dcermak@users.noreply.github.com - Functions integration tests (#1851) Add integration tests for functions.sh Implement a container based test system to run shell code for testing. The concept utilizes pytest-testinfra and runs a container per test. The nested container in a container feature is supported by the github actions workflow. Thus the integration of this testing concept runs in the github actions CI rather than on gitlab * Mon Jun 21 2021 marcus.schaefer@gmail.com - Don't shell out for calling dnf refactor the dnf call to install packages and groups in one call. This allows to prevent calling dnf through a shell. For installing of a package group the group ID name is expected. This Fixes #1856 * Mon Jun 21 2021 rjschwei@suse.com - - Improve the error message if the config file cannot be parsed. * Mon Jun 21 2021 marcus.schaefer@gmail.com - Do not shell out for calling microdnf. In fact it can be counter productive if the shell evaluates eventually existing package name/instruction patterns. This is related to Issue #1856 * Mon Jun 21 2021 marcus.schaefer@gmail.com - Prevent calling pacman through a shell There is no reason to shell out for calling pacman. In fact it can be counter productive if the shell evaluates eventually existing package name/instruction patterns. This is related to Issue #1856 * Sat Jun 19 2021 marcus.schaefer@gmail.com - Make sure mypy stubs will be installed * Thu Jun 17 2021 mexit@o2.pl - Update grub2.py * Thu Jun 17 2021 mexit@o2.pl - Code improvement * Thu Jun 17 2021 mexit@o2.pl - Code improvement * Wed Jun 16 2021 mexit@o2.pl - Allow the ISO to be booted from grub directly * Wed Jun 16 2021 marcus.schaefer@gmail.com - Allow creation of LUKS system with empty key To support cloud platforms better we should allow the creation of an initial(insecure) LUKS encrypted image with an empty passphrase/keyfile. This Fixes bsc#1187461 and bsc#1187460 * Fri Jun 11 2021 marcus.schaefer@gmail.com - Bump version: 9.23.37 → 9.23.38 * Thu Jun 10 2021 marcus.schaefer@gmail.com - Fixed cleanup of temporary directory In the custom kiwi initrd build process a temporary directory holding a copy of the initrd root tree is created. That data got never cleaned up. This commit uses a TemporaryDirectory object from the tempfile module to make sure it gets deleted once the execution scope is done. This Fixes #1837 * Mon Jun 07 2021 marcus.schaefer@gmail.com - Bump version: 9.23.36 → 9.23.37 * Mon Jun 07 2021 marcus.schaefer@gmail.com - Delete deprecated shell functions from docs suseActivateDefaultServices suseSetupProductInformation suseImportBuildKey suseConfig baseCleanMount baseSetupUserPermissions baseGetPackagesForDeletion baseGetProfilesUsed baseStripMans baseStripDocs baseStripInfos Rpm * Sun Jun 06 2021 marcus.schaefer@gmail.com - Fixed creating grub bios module If no prebuilt grub bios module was found, kiwi creates one. In this case kiwi searches for the grub modules and runs the grub mkimage tool. The search for the modules for the bios module used the host system (/) grub and that fails if the host has packaged grub differently than the image target. This fix moves the lookup into the image root directory which is the correct place to lookup the grub data * Sat Jun 05 2021 marcus.schaefer@gmail.com - Bump version: 9.23.35 → 9.23.36 * Sat Jun 05 2021 marcus.schaefer@gmail.com - Fixed building with custom kiwi initrd setup The change from allowing to build with initrd_system="none" broke the build for initrd_system="kiwi". This commit fixes the regression * Sat Jun 05 2021 marcus.schaefer@gmail.com - Use zypper --gpg-auto-import-keys option When building an image against self managed repos the auto import of the repo gpg key makes sense to me * Sat Jun 05 2021 marcus.schaefer@gmail.com - Cleanup integration tests from obsolete methods Cleanup config.sh scripts calling obsolete helper methods * Sat Jun 05 2021 marcus.schaefer@gmail.com - Cleanup integration tests from obsolete methods Cleanup config.sh scripts calling obsolete helper methods * Sat Jun 05 2021 marcus.schaefer@gmail.com - Bump version: 9.23.34 → 9.23.35 * Fri Jun 04 2021 dimarnicola@gmail.com - Corrected preferences timezone code tag * Tue Jun 01 2021 marcus.schaefer@gmail.com - Refactor config functions code Reorganize the code into more readable areas like methods present as helpers, methods for customers, methods which are distribution specific and also methods that are deprecated and give a good reason why they are deprecated when they get called. This is related to Issue #1828 * Tue Jun 01 2021 marcus.schaefer@gmail.com - Revert "Switch test-image-live-disk to Fedora 33" This reverts commit f80549474c4baa120e6e228bacc7b4a075265753. * Tue Jun 01 2021 marcus.schaefer@gmail.com - Switch test-image-live-disk to Fedora 33 * Fri May 28 2021 marcus.schaefer@gmail.com - Fixed codacy code smells * Fri May 28 2021 marcus.schaefer@gmail.com - Add strong typing for the following API methods kiwi/boot/image/base.py kiwi/boot/image/builtin_kiwi.py kiwi/boot/image/dracut.py This references issue #1644 * Thu May 27 2021 marcus.schaefer@gmail.com - Added support for skipping initrd creation Embedded systems and other customer use cases sometimes doesn't require an initrd. So far the initrd creation was a mandatory step in the process. With this commit it's possible to configure <type ... initrd_system="none"/> and therefore skip the creation and setup of an initrd. Using this feature comes with a price. Without an initrd the task of mounting the specified root=DEVICE_SPEC now becomes a task of the kernel. If the kernel doesn't have the required filesystem driver compiled in or the mount process of the device is not just a simple mount action, the boot of such an appliance will fail * Thu May 27 2021 dcermak@suse.com - Remove grep and find from suseSetupProduct * Thu May 27 2021 jgleissner@suse.com - config/functions.sh: Avoid non-zero exit status In baseStripDocs and baseStripFirmware avoid non-zero exit status of grep. This allows the functions to be used in a script that sets the exit-on-error flag. * Fri May 21 2021 marcus.schaefer@gmail.com - Bump version: 9.23.33 → 9.23.34 * Fri May 21 2021 marcus.schaefer@gmail.com - Make sure we use sphinx >= 4.0.2 * Fri May 21 2021 marcus.schaefer@gmail.com - Revert "Revert "Fix installation of man pages"" This reverts commit db7410f3c5b7b101ec0974cc24de0400c491f065. * Fri May 21 2021 marcus.schaefer@gmail.com - Revert "Make sure man pages are part of the sdist tarball" This reverts commit 3bf80506c4bbe381b66febdd38df93e65103ffb6. * Fri May 21 2021 marcus.schaefer@gmail.com - Bump version: 9.23.32 → 9.23.33 * Fri May 21 2021 marcus.schaefer@gmail.com - Make sure man pages are part of the sdist tarball Due to the move of man pages in sphinx the MANIFEST.in has to be updated to provide the man pages in the sdist tarball * Fri May 21 2021 marcus.schaefer@gmail.com - Revert "Fix installation of man pages" This reverts commit 286b26b5b6598285bf6eb26a1f5c9200c925b529. * Fri May 21 2021 marcus.schaefer@gmail.com - Fixed missing shebang in config.sh The ubuntu integration test config.sh script was missing the shebang to let the script code run through bash * Fri May 21 2021 ngompa13@gmail.com - Fix installation of man pages The generated source archive on PyPI has the man page files in ./doc/build/man instead of ./doc/build/man/8. Adjust the Makefile to use the correct path to install the man pages. * Fri May 21 2021 marcus.schaefer@gmail.com - Bump version: 9.23.31 → 9.23.32 * Thu May 20 2021 dcassany@suse.com - Do not return default stdout if it is no raising on failure This commit prevents the use of a default stdout and stderr in case return code reports errors and it is not raising an exception. If we are not raising an exception there is no specific need to artificially append some stdout and stderr default message, we just behave as if there was no error. * Thu May 20 2021 marcus.schaefer@gmail.com - Update Ubuntu integration test for system settings In Debian based distributions the kiwi built in way to setup locale, keyboard and timezone via systemd tools does not work because not(yet) provided by the distribution. This commit adds a reference implementation in the Ubuntu integration test to demonstrate how the settings given in the kiwi image description needs to be handled to make them effective in the later image. This Fixes #1787 * Thu May 20 2021 marcus.schaefer@gmail.com - Add log information on grub search There is a method in kiwi which searches for grub files. As grub is packaged differently within the distributions a dynamic lookup is needed. However, the result and where kiwi looked it up was not part of the log file. In terms of issues like the one from Issue #1754 it would be very handy to know about this information. Thus this commit adds debug information to the log file regarding what grub files are searched and where and if found * Thu May 20 2021 marcus.schaefer@gmail.com - Fixed coday complains * Thu May 20 2021 marcus.schaefer@gmail.com - Make dracut version check more robust The check_dracut_module_versions_compatible_to_kiwi() runtime check calls the package manager from the host and reads the package database from the image root. Doing this requires the package database in the image to be compatible with the package manager on the host. However this cannot be guarenteed and it is more robust to chroot into the image root and call the package manager from there. However, this change also comes with the cost that it's required to have a package manager available in the image root tree. Therefore along with the chroot based call, eventual exceptions from the call are now catched and leads to a debug message in the log file but will not lead the runtime check to fail. I consider the cases without a package database inside of the image to be less critical than the incompatibility issue between the host tooling and the package database in the image. This Fixes bsc#1185937 * Tue May 18 2021 marcus.schaefer@gmail.com - Bump version: 9.23.30 → 9.23.31 * Tue May 18 2021 marcus.schaefer@gmail.com - Stop plymouth also for progress dialogs * Mon May 17 2021 marcus.schaefer@gmail.com - Prevent explicit man page compression The manual pages are compressed by the packager tooling. There is no need to do this ourselves * Mon May 17 2021 marcus.schaefer@gmail.com - Bump version: 9.23.29 → 9.23.30 * Mon May 17 2021 marcus.schaefer@gmail.com - Increase integration tests boot timeout Increase integration tests timeout from 2sec to 10sec * Mon May 17 2021 marcus.schaefer@gmail.com - Update integration tests to be non interactive Some integration tests allows for interactive dialogs on the bootloader menu or in the installation process. As we plan to use these tests for automated functional testing there should be no interaction whenever possible. This Fixes #1811 * Mon May 17 2021 marcus.schaefer@gmail.com - Update kiwi installation documentation The installation chapter contained information about the manual install of package keys. That information is suspect to be always outdated because these keys changes. Instead of describing the manual install of the package key the docs moved to use the auto-import feature of the package manager. As the instructions were also rpm specific but we also support install via other package mangers the complete chapter was a bit reworked and should be more straight forward now. This Fixes #1799 * Mon May 17 2021 marcus.schaefer@gmail.com - Update documentation qemu calls We use the kiwi integration tests as base for the documentation example images now. The integration tests are all configured to set the console to serial. Thus the docs should explain the qemu call for test runs using the -serial stdio option to make sure the console information is displayed to the user * Sun May 16 2021 marcus.schaefer@gmail.com - Update and fix documentation The documentation had a broken link to the buildservice tests for suse. Since we changed this into leap and tumbleweed the subproject link to :suse became invalid. In addition to the fix the macro setup and build instructions were moved to use the kiwi integration tests as example appliance descriptions. The user experience in building the integration test images should be better because we only release kiwi if those appliances build successfully. This Fixes #1812 * Sun May 16 2021 marcus.schaefer@gmail.com - Fixed package build The new version of sphinx puts manual pages into doc/build/man/8 when it was doc/build/man before. This breaks the Makefile target to install the documentation. This commit updates the Makefile to follow the change. * Wed May 12 2021 marcus.schaefer@gmail.com - Fix dnf arch setting * Wed May 12 2021 marcus.schaefer@gmail.com - Update shim path lookup Distributions like Fedora has changed the EFI binaries location to be shim<efiarch>.efi in /boot/efi/EFI/<vendor> in order to support multiarch setup for UEFI. This change requires the lookup in KIWI to be more global matching. This Fixes #1806 * Wed May 12 2021 marcus.schaefer@gmail.com - Move integration test for Fedora to v34 * Wed May 12 2021 marcus.schaefer@gmail.com - Fixed live network setup to be generic In dracut the network setup comes with different models providing a different set of functions. The ifup method as used in the live iso dracut module is only available with the network-legacy mode and fails with network-wicked. This commit uses a dracut conf file in /etc/cmdline.d which uses the dracut network interface parameters instead of calling module specific methods. This Fixes #1802 * Wed May 12 2021 marcus.schaefer@gmail.com - Fixed setup of repository architecture Unfortunately the architecture reported by uname is not necessarily the same name as used in the repository metadata. Therefore it was not a good idea to set the architecture and manage the name via a mapping table. It also has turned out that repo arch names are distro specific which causes more complexity on an eventual mapping table. In the end this commit changes the way how the repository architecture is setup in a way that we only set the architecture if a name was explicitly specified such that the user keeps full control over it without any mapping magic included This Fixes bsc#1185287 * Fri May 07 2021 marcus.schaefer@gmail.com - Bump version: 9.23.28 → 9.23.29 * Mon May 03 2021 marcus.schaefer@gmail.com - Bump version: 9.23.27 → 9.23.28 * Fri Apr 30 2021 dcassany@suse.com - Upgrade tests accoring to #1805 This commit is a follow up of #1805 which missed to update the related unit test. * Fri Apr 30 2021 dcassany@suse.com - Make installation media unattended This commit configures install media of several tests to run unattended installation. This is done to facilitate the logic of functional tests. * Wed Apr 28 2021 marcus.schaefer@gmail.com - Fixed unit tests for parallel invocation With the change to allow the platform architecture to be set application global, the unit tests might fail if tests run in parallel and using different mock architectures for the test. Thus test that runs depending on a platform name needs to set the name in the test * Wed Apr 28 2021 marcus.schaefer@gmail.com - Update Debian integration test for UEFI testing Updated the Virtual disk profile to make use of the EFI secure boot feature. * Tue Apr 27 2021 jkowalczyk@suse.com - Fix WSL appx filemap relative paths not preserved During WSL appx image type creation step the file hierarchy under metadata_path is written to a temporary file for eventual use as argument to utility appx. The file hierarchy information is dropped resulting in all filemap entries appearing to be at the metadata_path root. The resulting image will side load and run but without icon and other resources. Stricter checks at Windows Store submission will fail due to mismatch between image manifest and contents. Fix by preserving relative path of filemap entries relative to metadata_path. Add log output showing both input absolute path and output relative path. * Tue Apr 27 2021 marcus.schaefer@gmail.com - Update Ubuntu integration test for UEFI testing Updated the Virtual disk profile to make use of the EFI secure boot feature. * Tue Apr 27 2021 marcus.schaefer@gmail.com - Added support for UEFI on Debian based distros The Debian/Ubuntu folks have a different system to support EFI secure boot. In order to make use of it kiwi needs some adaptions done in this pull request. This Fixes #1743 * Tue Apr 20 2021 marcus.schaefer@gmail.com - Bump version: 9.23.26 → 9.23.27 * Mon Apr 19 2021 marcus.schaefer@gmail.com - Fixed spec file on Debian tool settings debootstrap should always come with dpkg because we don't want to handle the architecture names used on Debian when dpkg knows them better than we do. since debootstrap itself considers the possibility of being called without dpkg on the system we generate the dependency by a spec change here. This Fixes #1778 * Mon Apr 19 2021 marcus.schaefer@gmail.com - Change zypper download mode to in-advance In relation to upcoming zypper changes e.g to make use of librpm on single transaction operations there is the possibility that file triggers start being used. To ensure zypper behaves consistently DownloadInAdvance mode should be used, this way the transaction happens as a whole and with the upcoming zypper changes zypper will still be capable to handle the file triggers. This Fixes #1789 * Sun Apr 18 2021 marcus.schaefer@gmail.com - Added shadow package to pxe integration test Tools like usermod were moved from coreutils to shadow * Sun Apr 18 2021 marcus.schaefer@gmail.com - Added shadow package to integration test Tools like usermod were moved from coreutils to shadow * Fri Apr 16 2021 dcassany@suse.com - Fix appx manifest for WSL containers This commit prevents KIWI from setting Identity Name attribute and DisplayName and PublisherDisplayName elements. Fixes #1780 * Fri Apr 16 2021 dcassany@suse.com - Do not apply default subcommand for derivate containers This commit does not apply the default subcommand for derivate containers. Fixes bsc#1184823 * Fri Apr 16 2021 marcus.schaefer@gmail.com - Fixed integration tests requesting grub For some reason two integration tests requests the "grub" and the "grub2" package. On TW there is now no longer a provider of grub and thus the image build became unresolvable. There is only grub2 for quite some time, so I deleted this package setting from the tests in question * Fri Apr 16 2021 marcus.schaefer@gmail.com - Bump version: 9.23.25 → 9.23.26 * Thu Apr 15 2021 marcus.schaefer@gmail.com - Fixed platform setup for vagrant unit tests * Thu Apr 15 2021 marcus.schaefer@gmail.com - Add support for a custom exclude file The new optional metadata file image/exclude_files.yaml can be placed inside of the local image root tree. At creation time of the image binary the file contents are used to extend the default exclude list with additional information. The structure of the file must be as follows: ```yaml exclude: - exclude-name-used-in-rsync ``` * Wed Apr 14 2021 marcus.schaefer@gmail.com - Bump version: 9.23.24 → 9.23.25 * Wed Apr 14 2021 marcus.schaefer@gmail.com - Update zypp.conf architecture setting Make sure the architecture is set as parameter in the zypp.conf file used for building the image. This is needed to allow differentiation between host arch and image arch for cross image build environments * Wed Apr 14 2021 marcus.schaefer@gmail.com - Added option to set the image target architecture The option --target-arch allows to set the architecture used to build the image. By default this is the host architecture. Please note, if the specified architecture name does not match the host architecture and is therefore requesting a cross architecture image build, it's important to understand that for this process to work a preparatory step to support the image architecture and binary format on the building host is required and is not considered a responsibility of kiwi. There will be a followup effort on providing a plugin for kiwi which should be used to manage the needed binfmt settings for cross arch image builds * Tue Apr 13 2021 dcassany@suse.com - Refactor disk and install builders and dracut boot image This commit mainly refactors the DiskBuilder class. Then install builder and dracut boot image refactors are mostly to drop no longer needed code. The refactors tries to make the build simpler and easier to read and also prevent the reuse of the BootImage instance used for the main image when creating the installation media (this aplies only for dracut based images). Fixes #873 * Tue Apr 13 2021 dcassany@suse.com - Refactor create_disk method This commit refactor create_disk method and related utility methods to ensure runtime objects are not stored as attributes of the object. This is done to ensure proper clearing and destruction of those objects once create_disk method is done. Related to #873 * Mon Apr 12 2021 marcus.schaefer@gmail.com - Added openssl to the core requires openssl is used in kiwi to construct a password hash if the plaintext password feature for user settings is used. This Fixes bsc#1184128 * Sun Apr 11 2021 marcus.schaefer@gmail.com - Bump version: 9.23.23 → 9.23.24 * Fri Apr 09 2021 marcus.schaefer@gmail.com - Decommission obsolete code reaching EOL Use the @decommissioned decorator to raise for API methods that a over the obsoletion period * Fri Apr 09 2021 marcus.schaefer@gmail.com - Added mypy call to tox target For the tox unit_pyX targets, mypy static type checking is now called prior tests. This references Issue 1644 * Tue Apr 06 2021 marcus.schaefer@gmail.com - Complete strong typing for API methods Added required code changes to let mypy pass when running from the toplevel kiwi namespace. This now finally Fixes #1644 * Mon Apr 05 2021 marcus.schaefer@gmail.com - Bump version: 9.23.22 → 9.23.23 * Wed Mar 31 2021 marcus.schaefer@gmail.com - Added optional post_bootstrap.sh script hook After the bootstrap phase a script post_bootstrap.sh is executed in a chroot process which allows to add/modify system settings prior the completion of the system installation. This helps users for example with custom package manager settings and Fixes #1763 as well as Fixes #1782 * Tue Mar 30 2021 marcus.schaefer@gmail.com - Update documentation Add information about new volume filesystem_check attribute * Tue Mar 30 2021 marcus.schaefer@gmail.com - Allow to enable volumes for filesystem check The new attribute <volume ... filesystem_check="true|false"/> allows to change the default value for the fs_passno field in the generated fstab file. By default kiwi sets "0" in this field and leaves it up to the user to customize this as appropriate via script code. Coding changes to the fstab file via scripts are not very user friendly and with respect that systemd takes over control and generates checkers depending on the value of fs_passno it would be good if there is a way to explicitly specify if checks to the filesystem are wanted or not. Therefore the new attribute now exists. If set to: true this results in a value of "2" for the fs_passno field. Please note the root/boot and efi entries are excluded from this setup. This Fixes #1728 * Mon Mar 22 2021 marcus.schaefer@gmail.com - Bump version: 9.23.21 → 9.23.22 * Mon Mar 22 2021 marcus.schaefer@gmail.com - Refactor building of root cmdline setting Creating the root= cmdline parameter was based on methods that deals with the uuid. However, it's also possible to use a label information for the root= cmdline. To support this kiwi issued a 'blkid --uuid' command but that requires udev device names to be present on the host. The open buildservice workers do not run udev and fails apart the standard. This commit refactors the root cmdline setup to work with the device node as it exists during build time such that the blkid call runs against that device node. * Mon Mar 22 2021 marcus.schaefer@gmail.com - Bump version: 9.23.20 → 9.23.21 * Fri Mar 19 2021 marcus.schaefer@gmail.com - Delete yum from packagemanager in schema Auto convert yum to dnf if set as packagemanager. This allows to delete the yum handling from code parts in kiwi where this was still present. In addition this fixes the inclusion of yum into the packagelist. This Fixes #1768 * Tue Mar 16 2021 kberger@suse.com - Add Strong Typing to builder APIs * Tue Mar 16 2021 kberger@suse.com - This PR add APIs Strong Typing to the repository APIs Strong Typing has been added to the following files: repository/base.py repository/pacman.py repository/apt.py repository/dnf.py repository/template/apt.py repository/zypper.py * Tue Mar 16 2021 marcus.schaefer@gmail.com - Drop by-path devicepersistency setting The dev/disk/by-path device representation is a host specific PCI location. For image building which happens disconnected from the later target device this setting is useless. This Fixes #1747 * Tue Mar 16 2021 marcus.schaefer@gmail.com - Fixed LVM root volume inclusion in fstab The root(/) volume in a LVM setup was included as UUID device path. This is inconsistent compared to the non root volumes which are included by their LVM representation: /dev/VGROUP_NAME/VOLUME_NAME This commit makes sure the root volume is included by its persistent LVM device representation too. This is related to Issue #1747 * Mon Mar 15 2021 marcus.schaefer@gmail.com - Update unit- integration tests to schema v74 * Mon Mar 15 2021 marcus.schaefer@gmail.com - Added XSLT transformation schema v73 -> v74 Update schema version and change to package manager 'apt' if 'apt-get' was set * Mon Mar 15 2021 marcus.schaefer@gmail.com - Change packagemanager setting from apt-get to apt In kiwi we use the name of the section as package name to install this package manager capability. However on Debian based distros there is no package named apt-get. There is only a package named apt which provides a tool named apt-get. To avoid inconsistencies like we had it in Issue #1735 and to bring this setting in line with all other packagemanager settings the setting was moved to just apt. This Fixes #1738 * Thu Mar 11 2021 kberger@suse.com - Public API Strong Typing for kiwi package_manager * Thu Mar 11 2021 dcassany@suse.com - Require qemu-img in any filesystem based image This commit moves the qemu-img requirement into the `kiwi-systemdeps-filesystems` to ensure ISO, OEM and PXE images include it in the build service. Also this is required for images that are simple root-trees in a filesystem (image=ext4). * Thu Mar 11 2021 dcassany@suse.com - Add a requirement for kiwi-systemdeps-iso-media on disk images This commit adds a requirement for `kiwi-systemdeps-iso-media` in `kiwi-systemdeps-disk-images`. This is to ensure that installing `kiwi-systemdeps-disk-images` is enough to build OEM images including install media. * Tue Mar 09 2021 dcassany@suse.com - Exclude /run and /tmp to be synched into the image This commit makes sure the contents of /run and /tmp are ignored when synchronizing the generated root tree into the image. Fixes #1744 * Tue Mar 09 2021 marcus.schaefer@gmail.com - Fix use of by-label device persistency in grub If devicepersistency="by-label" is set in the KIWI description it will correctly operate on the fstab values but still uses the UUID based setting for root= in the grub config. This commit allows to set root=LABEL=... in the grub config in case the devicepersistency requested it. In order for this to work this commit also had to increase the scope of the grub helper method _fix_grub_root_device_reference which is now called in any case. This Fixes #1757 * Mon Mar 08 2021 marcus.schaefer@gmail.com - Bump version: 9.23.19 → 9.23.20 * Sat Mar 06 2021 marcus.schaefer@gmail.com - Fixed API vs. CLI inconsistency when using kiwi as API the program fails with a usage message from the Cli class. The kiwi.cli module should not be imported except for kiwi comandline tasks. It has turned out that the RuntimeConfig class which is used in several places in different API classes imports Cli and creates an instance of it to check for a global option. This causes major issues for all programs which uses the kiwi API but not the command line interface because the docopt call in Cli() expects a valid docstring which only exists in kiwi's cli.py. This commit fixes the inconsistency and allows people to use the kiwi API independent of any command line interface. Fixes #1755 * Fri Mar 05 2021 dcassany@suse.com - Add Rawhide and Tumbleweed tests for secure boot on aarch64 * Fri Mar 05 2021 marcus.schaefer@gmail.com - Make sure man pages are part of sdist tarball The current tarball when uploaded to pypi via gitlab does not contain the manual pages because the doc target to build them is not called. This commit adds a doc_man tox target which is called prior pypi release. This Fixes #1746 * Wed Mar 03 2021 dcassany@suse.com - Refactor grub2 installation This commit refactors grub2 installation method to split it in two parts. Former grub2.install method was meant to run the grub2-install tool, however, in addition it was also running the secure boot installation shim-install. The install method in KIWI is skipped for those architectures and firmware combinations for which bios support doesn't exist. This was leading to skip the secure boot installation. The current approach strips the secure boot installation logic from the grub2.install method, so skipping the install method does not automatically result in skipping the secure boot installation. Fixes bsc#1182211 * Mon Mar 01 2021 marcus.schaefer@gmail.com - Bump version: 9.23.18 → 9.23.19 * Mon Mar 01 2021 marcus.schaefer@gmail.com - Fixed admin path for dpkg-query Fixed admin path in check_dracut_module_versions_compatible_to_kiwi runtime check. * Mon Mar 01 2021 rahn.tamalin@gmail.com - Fail non-XML descriptions if anymarkup not available (#1742) Co-authored-by: Fergal Mc Carthy <fergal.mc.carthy@suse.com> * Mon Mar 01 2021 marcus.schaefer@gmail.com - Bump version: 9.23.17 → 9.23.18 * Mon Mar 01 2021 marcus.schaefer@gmail.com - Make runtime check more robust Fixed check_dracut_module_versions_compatible_to_kiwi to work with systems that have no dracut installed. * Mon Mar 01 2021 marcus.schaefer@gmail.com - Fixed call time runtime check in build command The check_dracut_module_versions_compatible_to_kiwi runtime check was called too early in the build process. It has to be called at the end of the prepare stage when the image root tree has been created * Mon Mar 01 2021 marcus.schaefer@gmail.com - Added missing runtime check to default config file Added check_dracut_module_versions_compatible_to_kiwi as comment block to the default config file * Mon Mar 01 2021 marcus.schaefer@gmail.com - Bump version: 9.23.16 → 9.23.17 * Sun Feb 28 2021 marcus.schaefer@gmail.com - Fixed docstring for SolverRepositoryDeb class The doc string incorrectly pointed to the rpm-md repo type when it should be apt-deb * Thu Feb 25 2021 marcus.schaefer@gmail.com - Fixed code smells reported from codacy In addition cleanup unused instance variable self.custom_args from DiskFormatBase class * Tue Feb 23 2021 marcus.schaefer@gmail.com - Add kiwi dracut mod vs. kiwi compatibility check Add a runtime check to be called in the create stage which reads the version(s) of the installed kiwi dracut modules from the package database and compare them with a min_version setting maintained in the KIWI builder code. If the installed dracut module is not compatible with the used kiwi builder version the build stops at this point with a descriptive error message * Tue Feb 23 2021 jesus.bv@suse.com - Add strong typing for the following API methods kiwi/storage/raid_device kiwi/storage/setup kiwi/storage/subformat/base kiwi/storage/subformat/gce kiwi/storage/subformat/ova kiwi/storage/subformat/qcow2 This references issue #1644 * Tue Feb 23 2021 marcus.schaefer@gmail.com - Added strong typing for the following API methods * storage/subformat/vagrant_base.py * storage/subformat/vagrant_libvirt.py * storage/subformat/vagrant_virtualbox.py * storage/subformat/vdi.py * storage/subformat/vhd.py * storage/subformat/vhdfixed.py * storage/subformat/vhdx.py * storage/subformat/vmdk.py This references Issue #1644 * Mon Feb 22 2021 marcus.schaefer@gmail.com - Deleted legacy kiwi chapter from the docs The information there is almost obsolete since kiwi(perl) does no longer exist in any modern distribution. It's only maintained on SLE12 which itself is EOL and the kiwi there has its own documentation which we don't need to reference anymore in the upstream project * Mon Feb 22 2021 marcus.schaefer@gmail.com - Added new Troubleshooting chapter to the docs Added a new chapter to handle issues which depends on several environment conditions and for which not only one possible solution exists. This Fixes #1691 * Fri Feb 19 2021 marcus.schaefer@gmail.com - Document use of SUSE media Add chapter to describe how to use the SUSE product media in a kiwi build process. This Fixes #1678 * Fri Feb 19 2021 marcus.schaefer@gmail.com - Delete support for generic iso:// source type The generic iso:// media type mounts the given iso file and expect its root to provide a repository that can be used 1:1 with a package manager. This concept is broken since some time and it can't be fixed in a generic way. All distribution media comes with a certain layout and basically needs extra handling to become fully usable as repository. The current implementation of the iso type which simply mounts the iso and expects its root to be a known repo is not useful. Therefore the support for it will be decommissioned. Instead we will provide a documentation chapter that documents how to incorporate distro ISO media for building images. * Thu Feb 18 2021 marcus.schaefer@gmail.com - Added deb support to sat solver module Add support to create SAT solvables from Debian repos via deb2solv tool from libsolv. This allows image info --resolve-package-list to work with Debian/Ubuntu image descriptions. Please note by default libsolv is not compiled with support for Debian. Therefore the following compile flags must be set on libsolv * -DENABLE_DEBIAN=1 * -DMULTI_SEMANTICS=1 If libsolv does not provide the needed capabilities kiwi will fail on either the repository solvable creation due to missing deb2solv or on call of setdisttype() due to missing MULTI_SEMANTICS feature in libsolv * Thu Feb 18 2021 marcus.schaefer@gmail.com - Update contributing chapter Add an example to show that using the kiwi description format is an option when using kiwi as an API in other python programs * Tue Feb 16 2021 marcus.schaefer@gmail.com - Change donation message There are more people working on kiwi and the message is from times with only me as contributor. It would be unfair to keep the current message and I will share any donation with the team. * Tue Feb 16 2021 marcus.schaefer@gmail.com - Bump version: 9.23.15 → 9.23.16 * Mon Feb 15 2021 dcassany@suse.com - Fix lsblk flags to get sorted output This commit modifies the lsblk command flags to get a sorted output according to the disk layout. This is related to 176c7eab commita and it fixes bsc#1182264 * Mon Feb 15 2021 marcus.schaefer@gmail.com - Fixed kiwi-systemdeps-filesystems requires The filesystems requires list also contains low level tools to manage partitions, loops and subsystems. The tools to manage LUKS(cryptsetup) are missing and imho belongs there along with the LVM tools which are listed * Mon Feb 15 2021 marcus.schaefer@gmail.com - Added documentation for kiwi-systemdeps concept Added information about the kiwi-systemdeps sub packages and its purpose. This Fixes #1686 * Mon Feb 15 2021 dcassany@suse.com - Add strong typing for filesystem classes This commit strong typing for FileSystem* classes. Part of #1644 * Mon Feb 15 2021 marcus.schaefer@gmail.com - Update documentation The runtime config file can also be specified on the commandline * Mon Feb 15 2021 marcus.schaefer@gmail.com - Added ca-certificates-mozilla to build tests ca-certificates-mozilla provides the issuer CERT to allow for https repo connections. The standard ca-certificates is not enough on suse/leap/sles based integration tests * Sat Feb 13 2021 marcus.schaefer@gmail.com - Fixed packaging metadata for pypi Include the README as long description in the metadata for pypi. The change causes the description on pypi.org to show the ReST rendered README instead of a message that the author of the module hasn't provided a description * Sat Feb 13 2021 marcus.schaefer@gmail.com - Delete legacy oem build test from leap The legacy custom kiwi boot test will only continue to exist on tumbleweed without any warranty * Fri Feb 12 2021 dcassany@suse.com - Include a note about rpm's curl requirement to import remote keys This commits add a note in the KIWI installation page to warn users rpm requires curl utility in order to import remote keys from a URI. Fixes #1680 * Fri Feb 12 2021 marcus.schaefer@gmail.com - Bump version: 9.23.14 → 9.23.15 * Fri Feb 12 2021 marcus.schaefer@gmail.com - Update documentation Mention the cross arch build capability of the boxbuild command. Also update the example box used in the self container build chapter * Fri Feb 12 2021 marcus.schaefer@gmail.com - Allow to specify OBS credentials in runtime config In preparation to the new obs kiwi plugin this commit adds an opportunity to store obs credentials such that the plugin could also be used in a non-interactive way * Fri Feb 12 2021 jesus.bv@suse.com - Add strong typing for the following API methods kiwi/storage/device_provider kiwi/storage/disk kiwi/storage/loop_device kiwi/storage/luks_device kiwi/storage/mapped_device This references issue #1644 * Fri Feb 12 2021 marcus.schaefer@gmail.com - Update build_status helper for box plugin The suse box has been renamed to tumbleweed * Fri Feb 12 2021 marcus.schaefer@gmail.com - Update documentation Fixed link list to integration tests * Fri Feb 12 2021 marcus.schaefer@gmail.com - Added rawhide test status to build_status helper * Fri Feb 12 2021 marcus.schaefer@gmail.com - Added Fedora Rawhide integration tests * Thu Feb 11 2021 marcus.schaefer@gmail.com - Followup fix for RuntimeConfig refactor The refactor of the RuntimeConfig made sure the runtime config file is read in only once. But if the file exists and is empty after yaml.safe_load like in the kiwi package provided /etc/kiwi.yml which contains all config options as comments, the code still reads in the file with every new instance of RuntimeConfig. This commit fixes this condition * Thu Feb 11 2021 marcus.schaefer@gmail.com - Fixed test-image-vagrant for Leap Use the correct release package * Thu Feb 11 2021 marcus.schaefer@gmail.com - Fixed test-image-docker-derived for Leap Use the right derived from location * Thu Feb 11 2021 marcus.schaefer@gmail.com - Fixed test-image-docker for Leap Nothing provides grub * Thu Feb 11 2021 marcus.schaefer@gmail.com - Delete test-image-pxe from leap tests We don't continue development of netboot code. Thus there is only one test for the old netboot system on TW. People are advised to move to oem remote deployment or the kis type using custom(non kiwi) dracut extensions * Thu Feb 11 2021 marcus.schaefer@gmail.com - test-image-MicroOS does not build for leap Looks like this concept is not available on Leap * Thu Feb 11 2021 marcus.schaefer@gmail.com - Added integration tests for Leap * Thu Feb 11 2021 marcus.schaefer@gmail.com - Update documentation Location for integration tests has changed * Thu Feb 11 2021 marcus.schaefer@gmail.com - Deleted x86/suse integration tests * Thu Feb 11 2021 marcus.schaefer@gmail.com - Moving x86/suse -> x86/tumbleweed This is in fact a copy of the build-tests for x86/suse to x86/tumbleweed. Once the tests in OBS are building x86/suse and the respective project will be deleted * Thu Feb 11 2021 marcus.schaefer@gmail.com - Deleted s390/suse integration tests * Thu Feb 11 2021 marcus.schaefer@gmail.com - Moving s390/suse -> s390/tumbleweed This is in fact a copy of the build-tests for s390/suse to s390/tumbleweed. Once the tests in OBS are building s390/suse and the respective project will be deleted * Thu Feb 11 2021 marcus.schaefer@gmail.com - Delete ppc/suse from build_status helper * Thu Feb 11 2021 marcus.schaefer@gmail.com - Deleted ppc/suse integration tests * Thu Feb 11 2021 marcus.schaefer@gmail.com - Moving ppc/suse -> ppc/tumbleweed This is in fact a copy of the build-tests for ppc/suse to ppc/tumbleweed. Once the tests in OBS are building ppc/suse and the respective project will be deleted * Thu Feb 11 2021 marcus.schaefer@gmail.com - Fixed Debian integration test The test was not using the Staging kiwi to build * Thu Feb 11 2021 marcus.schaefer@gmail.com - Deleted arm/suse integration tests * Thu Feb 11 2021 marcus.schaefer@gmail.com - Moving arm/suse -> arm/tumbleweed This is in fact a copy of the build-tests for arm/suse to arm/tumbleweed. Once the tests in OBS are building arm/suse and the respective project will be deleted * Thu Feb 11 2021 jesus.bv@suse.com - Update tuples to enforce type hints * Thu Feb 11 2021 marcus.schaefer@gmail.com - Fixed use of BIOS grub image on ISO media Not all systems (e.g Debian) creates the boot/grub|grub2 directory. In kiwi when we need to create a custom grub image because we did not find the distro provided one, an earlyboot.cfg file is created and embedded into the grub image. The locaton to store that file is below boot/grub|grub2. However if the directory does not exist the build will fail as with the current Debian Live integration test. * Thu Feb 11 2021 marcus.schaefer@gmail.com - Added debian integration tests to build_status The debian build tests were not taken into account by the build_status helper * Thu Feb 11 2021 marcus.schaefer@gmail.com - Moved ARM fedora integration test to latest stable * Thu Feb 11 2021 marcus.schaefer@gmail.com - Update suse build tests Deleted old and obsolete configuration setup. Use generic description information as much as possible * Thu Feb 11 2021 marcus.schaefer@gmail.com - Move fedora integration tests to stable release Instead of building against the rolling release (rawhide) we build the integration tests for non suse tests against the stable release of distributions. The reason is except for suse we don't have influence and resources on the distribution development and sometimes facing the problem that we can only sit and pray for a self healing of the rolling distro releases. From a kiwi release perspective this blocks us too often * Thu Feb 11 2021 marcus.schaefer@gmail.com - Fixed tbz integration test It seems /bin/sh has been moved into a file provides that cannot be solved by the obs solver. Therefore a package providing it needs to be added explicitly. * Thu Feb 11 2021 marcus.schaefer@gmail.com - Bump version: 9.23.13 → 9.23.14 * Wed Feb 10 2021 dcassany@suse.com - Remove files or folders that conflict with debootstrap This commit makes use of Path.wipe method instead of os.unlink. This way we are certain the path is removed regardless being a directory or a file. fixes #1718 * Wed Feb 10 2021 dcassany@suse.com - Clean some copy and paste leftover from doc strings * Tue Feb 09 2021 marcus.schaefer@gmail.com - Fixed ramdisk deployment from install ISO The dracut mount hook is only called if NO root= information is provided from the cmdline. In a PXE deployment this is the case but in an install ISO deployment not. This commit re-adds the sysroot mount generator approach but only applies on the condition rd.kiwi.ramdisk is set and root= is specified. Only in this case we know config.bootoptions is present in the initrd and will not be provided from an outside service * Tue Feb 09 2021 Christian.Goll@gmail.com - Added dolly support Allow dolly as alternative download protocol * Tue Feb 09 2021 marcus.schaefer@gmail.com - Bump version: 9.23.12 → 9.23.13 * Sun Feb 07 2021 marcus.schaefer@gmail.com - Refactor RuntimeConfig class The former implementation read the runtime config file every time a new RuntimeConfig instance was created. The runtime config is however static during the runtime of an image build process and not supposed to change. Therefore the file should be read in once and any new instance of RuntimConfig should just use what has been read in at the first invocation. This commit refactors the RuntimeConfig class to hold an application global RUNTIME_CONFIG variable and allows to reread the config on explicit request. * Sat Feb 06 2021 marcus.schaefer@gmail.com - Added option to setup OBS API server in config Allow to specify the open build service API server in the kiwi runtime configuration file * Sat Feb 06 2021 marcus.schaefer@gmail.com - Allow to specify config file on the command line The optional kiwi runtime config file (kiwi.yml) could only be read from ~/.config/kiwi/config.yml or /etc/kiwi.yml This commits adds the global option --config which allows to specify a custom runtime configuration as well. * Fri Feb 05 2021 marcus.schaefer@gmail.com - Fixed detection for pacman repo type grep the directory listing for a .db.sig metadata file to identify a pacman repo * Fri Feb 05 2021 marcus.schaefer@gmail.com - Cleanup CliTask doc strings and code duplication Introduce a tuple method to handle arguments with [n] comma separated elements. Also fix method docstrings with wrong type information. * Fri Feb 05 2021 marcus.schaefer@gmail.com - Fixed typing for add_repository in XMLState class mypy reported further issues on XMLState class which are fixed by this commit * Fri Feb 05 2021 marcus.schaefer@gmail.com - Fixed type annotations and docs for Uri class The constructor used a wrong type for the repo_type variable and the doc string for the class was invalid * Fri Feb 05 2021 marcus.schaefer@gmail.com - Added get_repo_type method to SolverRepository In preparation of a plugin to handle external service repositories a method to check for the repository type was added. The detection is based on a search for a specific metadata file which is an indicator for the type of a repository. * Fri Feb 05 2021 marcus.schaefer@gmail.com - Update manual pages The system build and prepare commands have received options which were not mentioned in the manual pages. This commit updates the pages to be in line with the code * Mon Feb 01 2021 marcus.schaefer@gmail.com - Bump version: 9.23.11 → 9.23.12 * Mon Feb 01 2021 marcus.schaefer@gmail.com - Fixed debootstrap device node conflict debootstrap creates its own device node tree and fails if a node it creates itself already exists. This commit introduces a list of conflicting device nodes and deletes them prior kiwi calling debootstrap. This Fixes #1675 * Sun Jan 31 2021 marcus.schaefer@gmail.com - Added aaa_base to s390 TW build tests On s390 TW aaa_base is not pulled in by a dependency in obs. It looks like the package is pulled in by a file provides which is not resolved by obs. Thus the package needs to be added explicitly * Fri Jan 29 2021 marcus.schaefer@gmail.com - Bump version: 9.23.10 → 9.23.11 * Fri Jan 29 2021 marcus.schaefer@gmail.com - Follow up fix, creating custom grub EFI images Make sure custom EFI grub image is copied to the media directory if this is different from the root directory e.g on creation of live images * Thu Jan 28 2021 marcus.schaefer@gmail.com - Bump version: 9.23.9 → 9.23.10 * Thu Jan 28 2021 marcus.schaefer@gmail.com - Follow up fix, creating custom grub images Moving the grub mkimage call as chroot operation also broke the creation of image builds that uses the legacy custom kiwi boot image feature instead of dracut. This commit fixes it * Thu Jan 28 2021 marcus.schaefer@gmail.com - Added leap box to be shown by build_status helper * Wed Jan 27 2021 marcus.schaefer@gmail.com - Added decorators to help with API management The lifetime of API methods could be limited due to the development of kiwi. To allow for a deprecation process the following helper methods has been added * Wed Jan 27 2021 marcus.schaefer@gmail.com - Bump version: 9.23.8 → 9.23.9 * Wed Jan 27 2021 dcassany@suse.com - Update MicroOS build test This commit alignes the MicroOS tests with the MicroOS images build for kvm and xen. In addition it adds the installation media request and custom initrd modules configuration for the installation media. * Wed Jan 27 2021 marcus.schaefer@gmail.com - Fixed creation of custom bios grub image The last commit moved the grub mkimage call into the chroot. As a side effect and when creating install media the earlyboot script could no longer be found. This commit fixes it * Wed Jan 27 2021 dcassany@suse.com - Include installmedia documentation * Tue Jan 26 2021 marcus.schaefer@gmail.com - Bump version: 9.23.7 → 9.23.8 * Mon Jan 25 2021 marcus.schaefer@gmail.com - Fixed creation of custom grub image If kiwi can't find the distribution provided grub image(s) it creates them using the respective grub[X]-mkimage tool. However the tool was called on the build host which could cause an inconsistency on the used module path. Grub is not packaged consistently across the distributions and also the provided modules comes in different versions and patch sets. Therefore it's required that kiwi calls the grub mkimage tool as chrooted operation inside of the tree that provides the target image. As consequence of the change it's required that the image root tree provides the grub mkimage tool. In addition to the change we now also log the output from the grub mkimage call in the kiwi build logfile. This Fixes #1254 * Thu Jan 21 2021 jesus.bv@suse.com - Add strong typing for the following API methods * kiwi/system/kernel.py * kiwi/system/result.py * kiwi/system/shell.py This references issue #1644 * Thu Jan 21 2021 dcassany@suse.com - Add the schematron rules for installinitrd This commit adds an schematron rule to limit the presence of installinitrd element to disk builds including installation media. * Thu Jan 21 2021 dcassany@suse.com - Add the installinitrd element This commit adds the `<installinitrd>` element in kiwi schema to facilitate the dracut modules configuration for the installation initrds on OEM images. Within installinitrd element is possible list the dracut modules to append, to omit or to just set an static list of dracut modules to include. Fixes #1676 Fixes #1683 * Thu Jan 21 2021 jesus.bv@suse.com - Add strong typing for the following API methods * system/root_bind.py * system/root_init.py * system/identifier.py This references issue #1644 * Thu Jan 21 2021 marcus.schaefer@gmail.com - Bump version: 9.23.6 → 9.23.7 * Wed Jan 20 2021 marcus.schaefer@gmail.com - Don't call super() from logging.Formatter It's not needed to run the base class constructor. The interface for the logging facility is also different between python 3.6 and python 3.8 such that calling the base constructor would be bad idea anyway. * Wed Jan 20 2021 jesus.bv@suse.com - Add strong typing for the following API methods * kiwi/system/size.py * kiwi/system/uri.py * kiwi/system/users.py Update the test path for users_test.py This references #1644 * Wed Jan 20 2021 dcassany@suse.com - Include missing qemu-tools dependency for iso images This commit includes a missing qemu-tools dependency for iso image type. * Wed Jan 20 2021 marcus.schaefer@gmail.com - Added strong typing for the following API methods * kiwi/system/prepare.py * kiwi/system/profile.py * kiwi/system/setup.py The changes here also lead to a small refactoring for the handling of the package manager. In my opinion it doesn't make sense to allow a None type package manager from the stateful XML instance. As without any package manager nothing can be done. As it also turns into an issue for the PackageManager API which does not allow for an empty value here I thought it's better to come up with a default package manager (set to dnf) if no one is explicitly specified This references Issue #1644 * Wed Jan 20 2021 marcus.schaefer@gmail.com - Explicitly set lvm device source Set external_device_info_source=none for lvm calls. This is related to Issue #1665 * Tue Jan 19 2021 marcus.schaefer@gmail.com - Fixed use of encoding in open calls The use of encodings.ascii in open calls was wrong. Open expects an encoding string but encodings.ascii returns a module reference * Tue Jan 19 2021 marcus.schaefer@gmail.com - Bump version: 9.23.5 → 9.23.6 * Tue Jan 19 2021 marcus.schaefer@gmail.com - Handle checksum files in ascii encoding Follow up fix for #1673. Handle reading/writing of all supported checksum variants in ascii encoding * Mon Jan 18 2021 ngompa13@gmail.com - Mark Micro DNF as a RPM based package manager Without doing this, KIWI won't generate the correct output files for verification of image content. * Mon Jan 18 2021 marcus.schaefer@gmail.com - Only write GRUB_CMDLINE_LINUX_DEFAULT with content Only write GRUB_CMDLINE_LINUX_DEFAULT in the grub defaults file if there are custom options set via the kernelcmdline attribute. This Fixes #1650 * Sat Jan 16 2021 petr.pavlu@suse.com - Move logic to sync system data into a separate method Reduce cyclomatic complexity of DiskBuilder.create_disk() by moving the logic to sync system data into a separate method. * Fri Jan 15 2021 marcus.schaefer@gmail.com - Fixed missing systemdisk provides kiwi-systemdeps-filesystems did not provide kiwi-filesystem:ext2 * Fri Jan 15 2021 marcus.schaefer@gmail.com - Bump version: 9.23.4 → 9.23.5 * Wed Jan 13 2021 jesus.bv@suse.com - Refactor default shared cache location Defaults shared cache location does not depend on CLI parameters Add set method for custom cache location in Defaults CLI default value for shared cache dir depends on Defaults if not set Update default if CLI shared cache dir set Fixes #1671 * Tue Jan 12 2021 jesus.bv@suse.com - Update contributing link in README * Mon Jan 11 2021 marcus.schaefer@gmail.com - Delete obsolete ddb.adapterType patching When building a vmdk image with pvscsi as adapter type, kiwi implicitly changed the adapter_type from pvscsi to lsilogic because qemu only knows lsilogic. At the end kiwi patched the adapter type in the descriptor of the vmdk header back to pvscsi. That patching seems to be wrong according to information from users and VMware support. This commit deletes the descriptor patching and only leaves the pvscsi setting in the guest configuration(vmx). This Fixes bsc#1180539 and Fixes #1847 * Mon Jan 11 2021 marcus.schaefer@gmail.com - Bump version: 9.23.3 → 9.23.4 * Sun Dec 27 2020 josua@solid-run.com - force ascii encoding on checksum files Python open function can fail when a file is not found encoded in utf-8, depending on the execution environment. In particular on Debian 10 an error message regarding utf8 was encountered. Since checksum files always use only ascii characters, force it. * Wed Dec 23 2020 dcassany@suse.com - Fixes the rpmdb bootstrap management for DNF on SUSE This commit makes sure that the compatibility symlink for /var/lib/rpm is created when the host rpmdb path is set to something different. This fixes a mismatch on bootstrapping SUSE using DNF. Fixes #1669 * Tue Dec 22 2020 marcus.schaefer@gmail.com - Bump version: 9.23.2 → 9.23.3 * Mon Dec 21 2020 dcassany@suse.com - Modify lsblk flags for a consistent output across distros This commit modifies the lsblk flags to make use of the list format instead of raw output. `--list` flag seams to keep the geometry order and produces a consistent output in several distros. * Fri Dec 18 2020 marcus.schaefer@gmail.com - Bump version: 9.23.1 → 9.23.2 * Fri Dec 18 2020 marcus.schaefer@gmail.com - Update kiwi-systemdeps-image-validation Make python anymarkup to be only recommended. The package does not exist on all distributions, e.g suse does not provide it and for kiwi it's an optional plugin * Fri Dec 18 2020 marcus.schaefer@gmail.com - Fixed missing provides tag When building WSL images the image type is set to appx. Therefore obs is looking for what provides kiwi-image:appx This provides tag was missing * Fri Dec 18 2020 marcus.schaefer@gmail.com - Don't install obsolete requires packages The derived docker build test installs obsolete kiwi requires * Thu Dec 17 2020 marcus.schaefer@gmail.com - Bump version: 9.23.0 → 9.23.1 * Thu Dec 17 2020 marcus.schaefer@gmail.com - Update spec file Complete and cleanup spec for drop in replacement of new systemdeps sub-packages * Thu Dec 17 2020 marcus.schaefer@gmail.com - Bump version: 9.22.4 → 9.23.0 * Thu Dec 17 2020 marcus.schaefer@gmail.com - Set min version python requirement The use of new features like type hinting and annotations requires a python version >= 3.6 * Thu Dec 17 2020 marcus.schaefer@gmail.com - Bump version: 9.22.3 → 9.22.4 * Thu Dec 17 2020 dcassany@suse.com - Use the generic Dict type This commit makes use of the Dict type in the container factory classes so these type hints aligned with the other dict related type hints in KIWI code. This commit improves the refactor done in 99be52ba. * Thu Dec 17 2020 marcus.schaefer@gmail.com - Update preferences documentation The last commit added the optional arch attribute to the preferences section but the documentation did not expose this information. This is related to Issue #1640 * Wed Dec 16 2020 marcus.schaefer@gmail.com - Fixed no-self-use issue from codacy report The Logger.progress method is actually a static method and should be used as such * Wed Dec 16 2020 marcus.schaefer@gmail.com - Added strong typing for the following API methods * logger * logger_color_formatter * logger_filter * xml_description * xml_state * markup/any * markup/base * markup/xml This references Issue #1644 * Wed Dec 16 2020 dcassany@suse.com - Add 'arch' attribute to preferences This commits adds the attribute 'arch' to preferences. It works as any other 'arch' attribute within the schema. Preferences defined with architectures that do not match the host are ignored. If no 'arch' is provided it matches all any host architecture. Fixes #1640 * Wed Dec 16 2020 marcus.schaefer@gmail.com - Fixed color json output kiwi supports output of yaml/json markup in color mode using pjson. The writing of this data required to be encoded prior output. * Tue Dec 15 2020 marcus.schaefer@gmail.com - Fix vagrant documentation The previous pull request adding a baseVagrantSetup method and documentation broke the build of the docs due to invalid indentation. The test pipeline has failed but the PR was merged so this followup commit is needed to fix the docs * Tue Dec 15 2020 dcassany@suse.com - Refactor iso_tools factory class This commit refactors the IsoTools class and turns it into a proper factory class and also includes type hints to facilitate it's use from an API POV. Related to #1498 * Tue Dec 15 2020 dcassany@suse.com - Refactor container factory classes This commit refactors the container related classes to turn them into proper factory classes and also includes type hints to facilitate it's use from an API POV. Related to #1498 * Tue Dec 15 2020 marcus.schaefer@gmail.com - Delete traces of travis integration Rename and clarify code that was still using the name travis. Delete all references to the travis CI system from kiwi * Tue Dec 15 2020 marcus.schaefer@gmail.com - Bump version: 9.22.2 → 9.22.3 * Tue Dec 15 2020 marcus.schaefer@gmail.com - Fixed SUSE doc update in gitlab pipeline There is a dependency set to build_suse_doc in the push_suse_doc target. But the build_suse_doc target has set except "master" when the push_suse_doc has set only "master". Obviously this doesn't fit together * Tue Dec 15 2020 marcus.schaefer@gmail.com - Bump version: 9.22.1 → 9.22.2 * Mon Dec 14 2020 marcus.schaefer@gmail.com - Fixed source rpm check in gitlab Fedora30 is EOL, thus there is no provider for mock/fedora-30-x86_64.cfg anymore * Mon Dec 14 2020 marcus.schaefer@gmail.com - Delete travis setup * Mon Dec 14 2020 marcus.schaefer@gmail.com - Added gitlab pipeline to deploy kiwi documentation Use a github token and a bit of script code to deploy the kiwi online documentation to the gh-pages branch * Mon Dec 14 2020 marcus.schaefer@gmail.com - Move CI system to gitlab Travis made questionable changes to their open statement and I'm not following this anymore. * Fri Dec 11 2020 marcus.schaefer@gmail.com - Added check_swap_name_used_with_lvm runtime check The optional oem-swapname is only effective if used together with the LVM volume manager. A name for the swap space can only be set if it is created as a LVM volume. In any other case the name does not apply to the system. This condition should be checked to avoid useless settings in the image description. * Fri Dec 11 2020 marcus.schaefer@gmail.com - Allow to customize swap volume name Added a new element <oem-swapname> below the <oemconfig> section which allows to specify a name for the swap volume in case the LVM volume manager is used. The default if not specified continuous to stay at: LVSwap. This Fixes #1638 * Fri Dec 11 2020 marcus.schaefer@gmail.com - Fixed base setup links Do not create a link /var/run pointing to /run. This is unexpected and looks like a left over from kiwi legacy which supported older distributions who might have needed this. This Fixes #1643 * Wed Dec 09 2020 dcermak@suse.com - [doc] Clarify that suse* functions are also for openSUSE * Wed Dec 09 2020 dcermak@suse.com - Add baseVagrantSetup helper function This function is used to setup a vagrant box, so that each vagrant box creator needn't implement it themselves. * Wed Dec 09 2020 dcermak@suse.com - Use DEBUG=0 by default in function Debug This avoids script failures when invoked with `set -u`. * Wed Dec 09 2020 dcassany@suse.com - Make debootstrap repository explicit This commit introduces the use_for_debootstrap attribute for repositories of type apt-deb. This is a boolean attribute to specify the repository that will be used for bootstrapping in apt-deb based images. Only one can be selected and if none is specified KIWI just makes use of the last one in the list. Fixes #1593 * Tue Dec 08 2020 ngompa13@gmail.com - Refactor packaging to split out system dependencies into subpackages The eventual goal is to eliminate the requirement to use magic in build systems (e.g, OBS) to compose the necessary dependencies for image builds, while making it easier for local users to discover what they need to build appliances. Fixes #1503 * Tue Dec 08 2020 ngompa13@gmail.com - Drop useless chkconfig dependency We originally had chkconfig as a dependency because alternatives(8) is part of chkconfig in RH/Fedora systems. Since we don't use that anymore, we don't need this dependency. * Tue Dec 08 2020 ngompa13@gmail.com - Require gnupg on Debian/Ubuntu Without this, it's not possible to do GPG verification of Debian/Ubuntu repositories. * Tue Dec 08 2020 petr.pavlu@suse.com - Fix disk build with <bootloader name="custom"/> * Fix DiskBuilder.create_disk() to not call the BootLoaderConfig factory when bootloader=custom. The factory does not recognize the "custom" bootloader name and raises the following exception: KiwiBootLoaderConfigSetupError: Support for custom bootloader config not implemented * Update DiskBuilder._install_bootloader() to not invoke any bootloader_config methods when bootloader=custom since no config instance is created in such a case. * Tue Dec 08 2020 marcus.schaefer@gmail.com - Bump version: 9.22.0 → 9.22.1 * Tue Dec 08 2020 marcus.schaefer@gmail.com - Fixed validation of bool value in dracut module The oem-multipath-scan setup results in a bool variable inside of the initrd code. The variable kiwi_oemmultipath_scan is therefore either set to "true" or "false". A check in code of the form [ -n ... ] is stupid since the variable always contains text. This commit fixes the validation to make use of the bool() method provided for these type of variables * Fri Dec 04 2020 marcus.schaefer@gmail.com - Added SLE15 s390 FBA integration test Build image for FBA disk * Thu Dec 03 2020 marcus.schaefer@gmail.com - Bump version: 9.21.26 → 9.22.0 * Thu Dec 03 2020 marcus.schaefer@gmail.com - Omit multipath module by default The plain installation of the multipath toolkit activates the dracut multipath code. The setup if the target image runs in a multipath environment or not should however be decided explicitly in the image description via <oem-multipath-scan> and not implicitly by the presence of tools * Wed Dec 02 2020 marcus.schaefer@gmail.com - Fixed multipath disk device assignment in kiwi lib The former lookup of the multipath mapped disk device contained a race condition. If the lookup of the device mapper files happened before multipathd has finished the initialization, kiwi continues with the unix node name and fails when the device mapper keeps a busy state on it. This commit changes the code such that in case of an explicit request to use multipath the lookup of the mapped device becomes a mandatory process that runs until the DEVICE_TIMEOUT is reached. Default timeout is set to 60 sec. This references Issue SUSE-Enceladus/azure-li-services#255 * Wed Nov 25 2020 marcus.schaefer@gmail.com - Fixed PackageManager decorator in unit test Implement patch decorators for factories consistently * Wed Nov 25 2020 marcus.schaefer@gmail.com - Refactor Repository This commit refactors the Repository class and turns it into a proper factory class and also includes type hints to facilitate it's use from an API POV. Related to #1498 * Tue Nov 24 2020 ngompa13@gmail.com - Add DNF as a proper dependency for openSUSE This is required so that OBS can build openSUSE containers and appliances using DNF as the package manager. * Tue Nov 24 2020 marcus.schaefer@gmail.com - Fixed spec file microdnf requirement SUSE/SLES doesn't provide microdnf within the official channels yet * Tue Nov 24 2020 marcus.schaefer@gmail.com - Refactor Partitioner This commit refactors the Partitioner class and turns it into a proper factory class and also includes type hints to facilitate it's use from an API POV. Related to #1498 * Tue Nov 24 2020 dcassany@suse.com - Avoid using generators in pre-mount hooks This commit deletes the generator that was creating the sysroot.mount unit for ramdisk deployments. Generators, specially the sysroot.mount is expected to be created on very early stages of the boot procedure as this has impact on relevant targets such as initrd-root-fs.target, which does not depend on sysroot.mount if the unit is not there. In ramdisk deployments some data is known on pre-mount stage as as it is downloaded from the PXE server. At this stage it is not safe to generate a sysroot.mount unit that depends on initrd-root-fs.target as the target is close to finalize or even finalized already and could potentially skip sysroot.mount exection. Instead we include a mount hook which is only executed on ramdisk deployments that simply runs the mount command to mount /sysroot. This fixes bsc#1178670 * Mon Nov 23 2020 marcus.schaefer@gmail.com - Refactor PackageManager This commit refactors the PackageManager class and turns it into a proper factory class which also include type hints to facilitate it's use from an API POV. Related to #1498 * Mon Nov 23 2020 marcus.schaefer@gmail.com - Refactor Markup This commit refactors the Markup class and turns it into a proper factory class which also include type hints to facilitate it's use from an API POV. Related to #1498 * Fri Nov 20 2020 marcus.schaefer@gmail.com - Bump version: 9.21.25 → 9.21.26 * Thu Nov 19 2020 marcus.schaefer@gmail.com - Fixed dnf plugin config setup Only create a dnf plugin config if the plugin config directory to store that file exists in the system * Thu Nov 19 2020 marcus.schaefer@gmail.com - Set --releasever=0 for microdnf To allow microdnf to work from an empty root directory we need to set the release version to zero * Wed Nov 18 2020 marcus.schaefer@gmail.com - Use custom varsdir for dnf builds * Wed Nov 18 2020 marcus.schaefer@gmail.com - Partially revert dcounter.c flaw report I could not find a problem with this read call it does check on the buffer boundaries and it only writes the bytes that read returns until read returns <= 0 * Wed Nov 18 2020 marcus.schaefer@gmail.com - Fixed dcounter.c flaw report Check buffer boundaries if used in a loop * Wed Nov 18 2020 marcus.schaefer@gmail.com - Fixed dcounter.c flaw report Variable scope can be reduced and useless value assignment. * Wed Nov 18 2020 marcus.schaefer@gmail.com - Fixed microdnf support The installroot argument must be used together with --config and additionally with --noplugins, as well as --setopt for cachedir, reposdir and varsdir. Related to #1625 * Tue Nov 17 2020 marcus.schaefer@gmail.com - Move tools README to ReST * Tue Nov 17 2020 marcus.schaefer@gmail.com - Fixed Incorrect list-item indent * Tue Nov 17 2020 marcus.schaefer@gmail.com - Fixed Incorrect list-item indent Use two spaces between bullet and content * Tue Nov 17 2020 marcus.schaefer@gmail.com - Update codacy configuration file Exclude .github helper scripts from the analysis * Tue Nov 17 2020 marcus.schaefer@gmail.com - Update codacy configuration file Exclude doc sources and helper scripts from the analysis * Mon Nov 16 2020 ngompa13@gmail.com - Fix setopt argument for install_weak_deps for microdnf Micro DNF does not support "True"/"False", only "1"/"0"... * Mon Nov 16 2020 marcus.schaefer@gmail.com - Better error reporting if jing is missing On validation error we use jing to report detailed error messages. However if jing is not present no validation errors are displayed. There is a error_log variable as part of the relaxNG object which holds the library error log. This information is not as good as the jing report but better than nothing * Mon Nov 16 2020 marcus.schaefer@gmail.com - Added microdnf support in XML schema The XML schema did not allow to specify microdnf as supported package manager * Mon Nov 16 2020 marcus.schaefer@gmail.com - Added microdnf integration test * Mon Nov 16 2020 marcus.schaefer@gmail.com - Bump version: 9.21.24 → 9.21.25 * Fri Nov 13 2020 ngompa13@gmail.com - Use --config instead of -c for DNF and Micro DNF The -c option is not supported in Micro DNF, but --config is, and it is supported with DNF as well. * Fri Nov 13 2020 ngompa13@gmail.com - Drop 'microdnf makecache' call for microdnf package manager This subcommand does not exist and is not needed. Instead, we need to use '--refresh' where this is needed. * Fri Nov 13 2020 marcus.schaefer@gmail.com - Bump version: 9.21.23 → 9.21.24 * Fri Nov 13 2020 marcus.schaefer@gmail.com - No bootpartition for XFS by default Selecting the xfs filesystem made kiwi to create an extra boot partition. This is from times when grub was not able to read from XFS. As grub doesn't have this limitation since quite some time the bootpartition default in kiwi for XFS should be changed. This is realted to #1611 * Fri Nov 13 2020 marcus.schaefer@gmail.com - Create relative boot link for extra boot partition If an extra boot partition is used the grub toolchain still references files from that partition as /boot/... which fails because they are now at the toplevel. To avoid this and keep any /boot/some-file reference still valid we create a symlink 'boot -> .' This Fixes #1611 * Thu Nov 12 2020 dcassany@suse.com - Fix documentation to be consistent with the XML KIWI scheme This commit fixes the user section documentation to properly reflect XML KIWI scheme constraints. 'home' attribute is optional and 'password' attribute is mandatory. Fixes #1599 * Thu Nov 12 2020 ngompa13@gmail.com - Add support for the Micro DNF package manager Micro DNF is a minimal C implementation of DNF that is usable for minimal appliances and containers. While it is not at parity with DNF, it implements enough functionality that it is mostly usable for building appliance images. * Wed Nov 11 2020 marcus.schaefer@gmail.com - Added remote overlay boot documentation Added a new chapter below: working with images, which describes the options to remote boot via kiwi-overlay from an NBD or AOE exported root filesystem image. * Wed Nov 11 2020 schreiner@suse.de - use BuildRequires for distros which use fdupes * Tue Nov 10 2020 marcus.schaefer@gmail.com - Added support for nbd and aoe root overlay The kiwi-overlay dracut module can also be used as standalone module that is not connected to a disk image. In this case it's needed to specify the location for the root filesystem and optionally the device to write data (default is ram space). This commit adds the opportunity to specify a nbd/aoe location for the root filesystem on the kernel cmdline like in the following examples: root=overlay:nbd=nbd0:192.168.100.42:exportname root=overlay:aoe=e0.1 An optional write space, if it should not be ram space, can be provided through the rd.root.overlay.write option on the kernel cmdline. This Fixes: OSInside/kiwi-descriptions#78 * Mon Nov 09 2020 marcus.schaefer@gmail.com - Increase allowed complexity level Increase overall allowed flake8 complexity level and delete the extra exceptions from code as much as possible * Mon Nov 09 2020 dcassany@suse.com - Add editbootinstall script for Arch Linux tests This commit adds the editbootinstall script to Arch Linux OEM integration tests. The provided script removes the use of linuxefi and initrdefi commands on grub configuration since Arch does not support linuxefi module. Fixes #1559 * Mon Nov 09 2020 marcus.schaefer@gmail.com - Update tox and travis setup for python 3_8 Move latest python test target to 3.8 and also change the deploy travis target to use python 3.8 * Mon Nov 09 2020 marcus.schaefer@gmail.com - Allow console login for the integration tests The integration tests for the cloud targets had the console login for root disabled. This is correct if the image would be really used in the cloud. The integration test however will be functional tested within openQA and that requires serial console and root console login to be allowed. * Sun Nov 08 2020 marcus.schaefer@gmail.com - Added universal box to build status helper * Thu Nov 05 2020 marcus.schaefer@gmail.com - Bump version: 9.21.22 → 9.21.23 * Wed Nov 04 2020 dcassany@suse.com - Move usrmerge package out of the bootstrap section Currently bootstrap phase on APT package manager makes use of the debootstrap tool. However debootstrap is limited to execute the bootstrap using a single repository. This is causes several limitations in OBS builds, such as the impossibility of using update repositories or the inclusion of any package that is not part of the standard OBS repository. Usrmerge package is part of the universe repository in OBS which is not te one used by debootstrap, so it can't be installed on bootstrap phase. * Wed Nov 04 2020 marcus.schaefer@gmail.com - Bump version: 9.21.21 → 9.21.22 * Wed Nov 04 2020 marcus.schaefer@gmail.com - Fixed package manager api inconsistency The method post_process_install_requests_bootstrap in the zypper package manager was missing an argument * Wed Nov 04 2020 marcus.schaefer@gmail.com - Bump version: 9.21.20 → 9.21.21 * Wed Nov 04 2020 marcus.schaefer@gmail.com - Fixed regexp for grub rootdev substitution The regular expression to match the grub root device used a lazy glob match ".*?". This however matches a too long part depending on the rest of the content. This commit fixes the expression to be strict on the allowed characters and makes sure the anchor characters are not part of the matching character class. This Fixes #1607 * Wed Nov 04 2020 quang.tran@suse.com - Fix quick start guide build command The kiwi-descriptions were reorganized in profiles (See OSInside/kiwi-descriptions@788b919ea2500b9d495622c8140e618938634306). However the build command in the quick start guide was not updated appropriately and therefore the build fails. This commit will update the build command. * Tue Nov 03 2020 marcus.schaefer@gmail.com - Fixed install of bash completion The kiwi completion was installed as kiwi-ng.sh below /usr/share/bash-completion/completions. This is wrong because the completion does not pick up files with a suffix like .sh. This commit changes the completion file to be installed as kiwi-ng without the suffix and Fixes #1603 * Tue Nov 03 2020 marcus.schaefer@gmail.com - Update integration tests console setup Update all integration tests to use a serial tty console setup and also to use a serial bootloader setup. This Fixes #1518 * Mon Nov 02 2020 marcus.schaefer@gmail.com - Refactor VolumeManager This commit refactors VolumeManager to turn it into a proper factory class and to also include type hints to facilitate it's use from an API POV. Related to #1498 * Mon Nov 02 2020 dcassany@suse.com - Do not exclude filesystem folders in OCI images This commit does not exclude filesystem folders during the rsync call in OCI images. It has been noted that including an empty /dev folder does not hurt and it can eventually help to work around some limitations of container related tools such as buildah. Fixes bsc#1176129 * Mon Nov 02 2020 marcus.schaefer@gmail.com - Refactor RootImport This commit refactors RootImport to turn it into a proper factory class and to also include type hints to facilitate it's use from an API POV. Related to #1498 * Mon Nov 02 2020 marcus.schaefer@gmail.com - Set displayname in simple disk test Use the simple disk integration test to test the setup of the displayname attribute. It is expected that this image has the configured displayname set in the grub menu. The verification of this setting should be done in a functional test at openQA which we are currently working on * Mon Nov 02 2020 marcus.schaefer@gmail.com - Refactor DiskFormat This commit refactors DiskFormat to turn it into a proper factory class and to also include type hints to facilitate it's use from an API POV. Related to #1498 * Mon Nov 02 2020 marcus.schaefer@gmail.com - Refactor SolverRepository This commit refactors SolverRepository to turn it into a proper factory class and to also include type hints to facilitate it's use from an API POV. Related to #1498 * Mon Nov 02 2020 marcus.schaefer@gmail.com - Set GRUB_DISTRIBUTOR if requested via displayname If the image description explicitly specifies a displayname it is expected that the bootloader shows this in the menu. Therefore in case displayname is set GRUB_DISTRIBUTOR will be set if grub2 is in use. This partially reverts #1420 and Fixes #1575 * Wed Oct 28 2020 marcus.schaefer@gmail.com - Bump version: 9.21.19 → 9.21.20 * Thu Oct 22 2020 marcus.schaefer@gmail.com - Deleted yast from test-image-qcow-openstack yast is not part of the testing queue in kiwi integration tests * Wed Oct 21 2020 marcus.schaefer@gmail.com - Obsolete config functions baseMount/baseCleanMount The above methods are obsolete since kiwi handles these mount/umount processes as part of the core builder code. This Fixes #1536 * Wed Oct 21 2020 marcus.schaefer@gmail.com - Bump version: 9.21.18 → 9.21.19 * Tue Oct 20 2020 marcus.schaefer@gmail.com - Allow custom root volume name setup In addition to the custom size of the root volume it's now also possible to setup the name of the root volume as follows: <volume name="@root=rootlv"/> If no name for the root volume is specified the default name: LVRoot applies as before. This Fixes #1530 * Tue Oct 20 2020 marcus.schaefer@gmail.com - Rename image build tests To use the image builds in openQA they have to have a unique name such that it cannot happen that a cached version of an image in openQA is used. The current names matched openQA cached images e.g openSUSE-Tumbleweed and in addition different image build tests used the same name. This commit uses the name of the image as it is organized in its directory structure prepending "kiwi-" to be unique in openQA when it fetches the image. This is realted to Issue #1555 * Mon Oct 19 2020 dcassany@suse.com - Better integrate debootstrap in KIWI process This commit integrates debootstrap process in KIWI in a more transparent way. This refactor makes debootstrap to operate directly over the image target root tree. This way KIWI can show and parse debootstrap stdout and also avoids having to copy the created root tree from one temporary folder to the actual target root tree path. Related to #1587 * Mon Oct 19 2020 dcassany@suse.com - Include boostrap packages list into deboostrap call This commit includes the packages listed in boostrap section to the debootstrap call instead chrooting into the new root tree and call apt. Fixes #1587 * Fri Oct 16 2020 quang.tran@suse.com - Update outdated OBS User Guide Links * Thu Oct 15 2020 marcus.schaefer@gmail.com - Fixed device_array structure in get_selected_disk In reference to Issue #880 a bug was introduced that broke the contents of the device_array which causes issues on installations with two or more attached disks. The change in the mentioned PR reduced the tuple for each disk from 3 elements to 2 elements. Therefore the loop that iterates over the disk tuples via modulo 3 was broken. This commit fixes the modulo operation to correctly parse the disk_list. Fixes #1588 * Tue Oct 13 2020 marcus.schaefer@gmail.com - Add support for s390 CDL DASD disks On s390 and in CDL mode (4k DASD) the call of grub2-install does not work because grub2-install is not able to identify a 4k fdasd partitioned loop device as a grub supported device and fails. As grub2-install is only used to invoke grub2-zipl-setup and has no other job to do we can circumvent this problem by directly calling grub2-zipl-setup instead. Also delete LDL mode support, IBM no longer supports this * Tue Oct 13 2020 marcus.schaefer@gmail.com - Fixed strncopy in dcounter helper The max size of the copy operation was always set to zero because the strlen of an empty buffer is zero. Bad mistake from my side :( This Fixes #1579 * Mon Oct 12 2020 marcus.schaefer@gmail.com - Bump version: 9.21.17 → 9.21.18 * Sun Oct 11 2020 dcassany@suse.com - Fix profile docs This commit fixes the profiles documentation. The example KIWI-NG command was using wrong flags order. This commit fixes the `--profile` flag order in documentation. * Thu Oct 08 2020 marcus.schaefer@gmail.com - Enhance scope of _fix_grub_root_device_reference In addition to the wrong root=/dev/mapper/loop... reference fixing, written by grub2-mkconfig when used in obs there is also the case that grub2-mkconfig writes root=PARTUUID which is also unwanted and needs fixing. To solve this properly and also with respect to more unexpected grub2-mkconfig data, the code changes to use a regular expression for the root= replacement. The expression matches all root= cases which we want to fixup: 1. If the local used root device appears in the grub config file. 2. If a linux by-id setting is used in the grub config file. The replacement happens for overlayroot disk images where we know grub2-mkconfig cannot handle the layout as well as if kiwi runs in obs where we know grub2-mkconfig fails due to the absence of udev. * Wed Oct 07 2020 marcus.schaefer@gmail.com - Add support for rd.root.overlay.readonly Allow to use an overlayroot system with read-only feature. If kernelcmdline="rd.root.overlay.readonly" is set in combination with overlayroot="true" the overlayfs uses a tmpfs to store new data temporary as long as the system runs. On reboot the newly written data is lost and the system is back to its factory state. * Mon Oct 05 2020 marcus.schaefer@gmail.com - Use custom tmpfs for managing overlays Provide a method to manage the base mount point for overlay and iso mount points and set the base directory to it because /run has a RAM space limitation which is unfortunate to handle live systems. This Fixes #1558 * Mon Oct 05 2020 marcus.schaefer@gmail.com - Bump version: 9.21.16 → 9.21.17 * Mon Oct 05 2020 dcassany@suse.com - Make dependencies to dracut-kiwi-lib release specific This commit adds a dracut-kiwi-lib dependency to dracut-kiwi-oem-dump and darcut-kiwi-oem-repart to match up to the release level. This way the dependency ensures the pulled binaries they are all part of the same build. * Mon Oct 05 2020 marcus.schaefer@gmail.com - Bump version: 9.21.15 → 9.21.16 * Mon Oct 05 2020 marcus.schaefer@gmail.com - Delete length limitation of image id attribute For legacy reasons the <image id="..."/> attributes was limited to 10digits. The contents of /etc/ImageID are now free format and no longer strictly evaluated. Thus the limitations on the id attribute can be deleted * Fri Oct 02 2020 marcus.schaefer@gmail.com - Bump version: 9.21.14 → 9.21.15 * Fri Oct 02 2020 dcassany@suse.com - Align dracut-kiwi-lib version with packages requiring it This commit enforces dracut-kiwi-oem-repart and dracut-kiwi-oem-dump to require dracut-kiwi-lib of the same exact version. This prevents dracut-kiwi-lib and the packages dependent on it being installed on a image with inconsistent versions. Fixes #1529 * Fri Oct 02 2020 marcus.schaefer@gmail.com - Allow to configure .changes creation and bundling Provide config option has_package_changes in the runtime config file and set a useful default. For building outside obs the default for the .changes creation is switched on, for building in obs it's switched off because obs creates its own info file * Tue Sep 29 2020 dcassany@suse.com - Fix compat link for rpmdb location This commit fixes the symlink creation for `/var/lib/rpm`. More specific for derived container images in which the base root tree already included the `/var/lib/rpm` the link, the `ln` command was creating a symlink inside the `/var/lib/rpm` folder givent that it was following the already existing symlink. Adding the `--no-target-directory` force `ln` command to treat `/var/lib/rpm` path as the fully qualified symlink name. Fixes bsc#1176977 * Tue Sep 29 2020 jimklimov@gmail.com - Report download URL on failed request In case a network request to a given URL failed the report message should include the URL This Fixes #1572 * Tue Sep 29 2020 marcus.schaefer@gmail.com - Use pragma: no cover to skip non reachable code Instead of placing the file into .coveragerc use the no cover pragma to skip code paths that can never be reached from being counted in the coverage report. This affects the abstract constructors in the Factory classes * Mon Sep 28 2020 dcassany@suse.com - Refactor BootLoaderInstall This commit refactors BootLoaderInstall class to make it a proper factory class. In addition type hints are added for the constructor method. Related to #1498 * Fri Sep 25 2020 dcassany@suse.com - Refactor BootLoaderConfig This commit refactors BootLoaderConfig to turn it into a proper factory class and to also include type hints to facilitate it's use from an API POV. Related to #1498 * Fri Sep 25 2020 marcus.schaefer@gmail.com - Fix/Refactor s390 support This changes the s390 support on several stages: 1) On s390 the boot process is based on zipl which boots into an initrd from which a userspace grub process is started to support the grub capabilities. The implementation of this concept is provided via the grub2-s390x-emu package. Once installed the setup of the bootloader is done via the grub2-mkconfig and grub2-install commands and therefore from a caller perspective the same as with any other grub2 setup process. For kiwi this means no extra zipl bootloader target code is needed. Therefore this commit deletes the zipl setup from kiwi and puts on the standard grub2 process. This Fixes bsc#1170863 2) To support different targettypes the grub2-s390x-emu provided zipl template must be adapted. Parts of the former zipl bootloader setup therefore now applies to an update of the zipl2grub template file 3) Support for CDL/LDL DASD targets has been disabled in the schema When testing 4k devices and a respective zipl2grub template setup for CDL/LDL targettype it has turned out that grub2-install is not able to run on such a device. My assumption is that the device code in grub2-install does not work for 4k devices with an fdasd created partition table. As this needs further investigations and most probably adaptions on the grub toolchain for s390, we disabled the setup of these modes for now. emulated DASD (FBA) and SCSI targets stays supported. * Wed Sep 23 2020 marcus.schaefer@gmail.com - Add support for package changelog info In addition to the .packages file which shows details about the installed packages in terms of version, license, etc... we now also create a .changes file which contains the changelog information of the installed packages. The file can be used to compare the package changelogs between image builds. * Wed Sep 23 2020 marcus.schaefer@gmail.com - Refactor BootImage Factory This commit refactors the BootImage factory to be a real factory and to add type hints such that its use from an api perspective is clear and enforced. Related to Issue #1498 * Wed Sep 23 2020 marcus.schaefer@gmail.com - Bump version: 9.21.13 → 9.21.14 * Wed Sep 23 2020 marcus.schaefer@gmail.com - Fixed s390/sle15 Virtual disk integration test The integration test used FBA mode as target. As the target is expected to be KVM this is the wrong setting. SCSI should be used instead. This Fixes bsc#1170863 * Wed Sep 23 2020 marcus.schaefer@gmail.com - Followup fix to handle one disk type better The vmx type is auto converted into an oem type with rootfs resize disabled such that all disk images can be handled under one disk type. However people who run kiwi on the commandline and have selected --type vmx before now end with an error message saying that there is no vmx type because it was converted into an oem type. To handle this more gracefully this commit changes the commandline option --type vmx into --type oem if provided and prints a warning message. * Tue Sep 22 2020 marcus.schaefer@gmail.com - Refactor ImageBuilder Factory This commit refactors the ImageBuilder factory to be a real factory and to add type hints such that its use from an api perspective is clear and enforced. Related to Issue #1498 * Tue Sep 22 2020 marcus.schaefer@gmail.com - Bump version: 9.21.12 → 9.21.13 * Tue Sep 22 2020 marcus.schaefer@gmail.com - Cleanup grub adaptions code The grub setup code has some after grub-mkconfig code that fixes the written grub.cfg file on certain conditions. For a better understanding and readability those conditions and reasons are now put into private _fix* methods that explains why we need to patch the written grub config file. We all hope that those methods can go away when grub gets fixed properly. This Fixes #1527 * Mon Sep 21 2020 marcus.schaefer@gmail.com - Cosmetic update for build status helper Show disabled integration test builds with a clear indicator * Mon Sep 21 2020 marcus.schaefer@gmail.com - Bump version: 9.21.11 → 9.21.12 * Mon Sep 21 2020 marcus.schaefer@gmail.com - Added consistency runtime check for the type setup multiple type sections within one preferences section is allowed in a kiwi image description. However, if multiple type sections for the same image attribute are configured only the last type configuration will be ever reachable. The proposed runtime check in this commit detects this situation and raises an exception showing the conflicting types including a solution suggestion which needs to be based on profiles to distinguish between types of the same image type name. * Mon Sep 21 2020 dcassany@suse.com - Get default maintainer and author from image description This commit sets the maintainer and author metadata from the description section of the image in they are not explicitly specified in container-config section. In addition it sets the default container name to `system-container` instead of `systemContainer` as uppercase letters are not valid for docker container references. Fixes #1419 * Fri Sep 18 2020 marcus.schaefer@gmail.com - Bump version: 9.21.10 → 9.21.11 * Fri Sep 18 2020 marcus.schaefer@gmail.com - Update build test directory names Name the build test directory to follow the changes done in Issue #1425. There is only one disk image type now, thus the tests for testing disk images should indicate that better. Also the tests that build live iso images should indicate a live iso not only an iso as it could be mixed up with an install iso * Thu Sep 17 2020 marcus.schaefer@gmail.com - Consolidate build test names and description Update build test image names to be more generic and not bound to a specific version of a distribution. As the tests are usually based on rolling releases of distros the name of the test image should be generic. Also adapted the specification of the test images to describe the focus of the test if not generic. * Wed Sep 16 2020 marcus.schaefer@gmail.com - Bump version: 9.21.9 → 9.21.10 * Wed Sep 16 2020 dcassany@suse.com - Fix the early boot grub.cfg file This commit makes sure that the early boot configuration files for grub make use of the proper boot path and omiting the `/boot` prefix if there is a dedicated boot partition. Fixes #1553 * Tue Sep 15 2020 3873925+vmoutoussamy@users.noreply.github.com - Change Appliance names to drop the name LimeJeOS The name LimeJeOS was an invention of the SUSE Studio project. Since the project does no longer exist, users have no idea what the name means. Therefore the integration tests as well as the documentation now changes the image names to provide more clarity. This Fixes #1544 * Mon Sep 14 2020 dcassany@suse.com - Include loadenv as a default module for grub images This commit includes the 'loadenv' module to the list of basic grub modules. This makes sure the module is included in any grub-mkimage that KIWI does. Fixes #1547 * Sun Sep 13 2020 marcus.schaefer@gmail.com - Make oem be a superset of vmx A vmx image is the same disk as an oem just without the dracut repart/resize feature. This difference is better handled with an oemconfig parameter <oem-resize> which allows to switch resize on or off. The extra image type vmx will be dropped and an XSLT stylesheet automatically transforms a vmx description to be a oem image with the resize feature switched off. This Fixes #1425 * Fri Sep 11 2020 marcus.schaefer@gmail.com - Make oem image use dracut by default Before this commit an oem image still had the kiwi initrd_system set as default. As we are decommission the custom kiwi initrd concept the default should be changed. It is still possible to use a custom kiwi initrd but it needs to be explicitly requested via the initrd_system="kiwi" attribute. In addition to the changed default a runtime check was introduced that checks the presence of the boot= attribute which only makes sense in combination with the kiwi initrd_system. If boot= is set but initrd_system="kiwi" is not, a message is raised that explains the situation and either requests setting initrd_system properly or deleting the boot attribute. The change only affects people who still use oem with a boot="oemboot/..." setting and no explicit selection of kiwi as the initrd_system. As these image type configurations should not be in use anyway because this is all legacy and announced to go away, we need to make the next step and enforce a new default in code. This is related to Issue #1299 * Wed Sep 09 2020 marcus.schaefer@gmail.com - Bump version: 9.21.8 → 9.21.9 * Tue Sep 08 2020 marcus.schaefer@gmail.com - Support dynamic linux/linuxefi in any case Instead of restricting the dynamic linux vs. linuxefi setup to a specific grub version, support this setup for any version of grub. This Fixes bsc#1175729 and bsc#1176134 * Tue Sep 08 2020 marcus.schaefer@gmail.com - Explicitly set start sector for msdos repartition When using the sfdisk(>=2.26) tool the start and end of partitions aligns to block-device I/O limits. This means it's hardware specific what values sfdisk picks. In a repart operation this is however dangerous for the start sector which must be the same to prevent corruption of the data in the partition when kiwi resizes it. Therefore this commit uses the sfdisk dump command to read the start sector for deleted partitions and uses that start sector if the same partition gets recreated such that only the end of the partition changes and gets aligned properly. This Fixes #1543 * Mon Sep 07 2020 marcus.schaefer@gmail.com - Complete documentation of type attributes Some type attributes e.g efipartsize and others were not documented properly. This Fixes #1532 * Mon Sep 07 2020 dcassany@suse.com - Strip package and archive names This commit strips the package and archive names string to trim any trailing or heading space included into the XML. Fixes #1494 * Sun Sep 06 2020 marcus.schaefer@gmail.com - Bump version: 9.21.7 → 9.21.8 * Thu Aug 27 2020 dcassany@suse.com - Make use of POSIX locale in Arch Linux integration tests Current Arch Linux (August 2020) has no other locale than POSIX or C enabled on the system by default. In fact, to enable further locales in Arch it is required to uncomment the desired ones in `/etc/locale.gen` and then execute the tool `locale-gen`, after that the selected locales are eligible for the common system adminstration tools such as `localectl`. In KIWI the locale setting happens before running `config.sh` so there aren't changes to generate any custom locale before applying the value configured in the description XML file. * Thu Aug 27 2020 marcus.schaefer@gmail.com - Fixed legacy custom kiwi initrd based image builds This patch is two fold: * Image builds that uses the kiwi initrd system did not apply the grub config file fixes because the root= parameter is an optional information when using a kiwi initrd. However this information is required to apply the grub config file fixes. Therefore this patch simplifies the kernel commandline processing such that it is the same for dracut and custom kiwi initrd based systems. This means root= is passed in any case. * The other part of the patch disables the method that strips unused libraries from the custom kiwi initrd. It has turned out that is safes us almost nothing but could causes corrupted initrds missing important libraries e.g libpam which is linked against udev and other tools. Therefore libpam is also added to the protected strip list * Thu Aug 27 2020 marcus.schaefer@gmail.com - Fixed legacy oem test build install gawk package in bootstrap to avoid conflict in tumbleweed between gawk and busybox-gawk * Wed Aug 19 2020 marcus.schaefer@gmail.com - Added s390 SLE15 integration tests * Tue Aug 18 2020 marcus.schaefer@gmail.com - Added suse integration test built with dnf Use dnf to build a suse image * Thu Aug 13 2020 marcus.schaefer@gmail.com - Include box plugin images to build_status Also show some colors for failed and unresolvable builds * Tue Aug 11 2020 marcus.schaefer@gmail.com - Bump version: 9.21.6 → 9.21.7 * Tue Aug 11 2020 marcus.schaefer@gmail.com - Fixed archlinux integration test build The setup of the locale via systemd-firstboot --locale=en_US.UTF-8 failed on archlinux with the error message Locale en_US.UTF-8 is not installed. This commit sets the locale explicitly * Tue Aug 11 2020 marcus.schaefer@gmail.com - Fixed GCE integration test build nothing provides google-compute-engine-init * Tue Aug 11 2020 marcus.schaefer@gmail.com - Fixed bootloader grub copy SameFileError exception Only copy the file if the given source and destination are not the same file * Tue Aug 11 2020 marcus.schaefer@gmail.com - Simplify build_status helper Instead of a static list with all integration test build names only maintain a list of integration test build project names * Tue Aug 11 2020 marcus.schaefer@gmail.com - Bump version: 9.21.5 → 9.21.6 * Mon Aug 10 2020 marcus.schaefer@gmail.com - Fixed doc structure for image types The documentation did not differentiate correctly between the explanation of the image types, their results and the build host constraints compared to the documentation that actually describes how to build an image for those types. This Fixes #1520 * Fri Jul 24 2020 marcus.schaefer@gmail.com - Skip filesystem check for XFS prior xfs_grow running xfs_repair check isn't strictly necessary before resizing, and in some cases it may even prevent resizing by giving an error that would be cleared through mounting the fs (e.g. when the fs wasn't cleanly umounted, and thus letting xfs recover and replay its journal). Given that xfs can only grow online (while being mounted), this is sufficient to ensure that the fs is in a state where it can be resized. This is related to bsc#1174009 * Fri Jul 24 2020 dcassany@suse.com - Remove tuned daemon from CentOS integration test tuned daemon causes issues at install time with grub configuration. The build host configuration affects BLS entries generation if tuned deamon is around. This is likely to cause issues in general and it actually cause issues in OBS builds (because of a non standard highly customized build environment). * Fri Jul 24 2020 dcassany@suse.com - Add Fedora RawHide test This commit upgrades the Fedora 30 test to a Fedora RawHide integration test in OBS. Note that an archive needs to be added at bootstrap phase to include `/etc/kernek/cmdline` configuration file to ensure the BLS entries are properly generated under OBS worker hosts. * Fri Jul 24 2020 marcus.schaefer@gmail.com - Fixed code logic in resize_filesystem method resize_filesystem runs fs-check on the filesytem prior to resize. This check however should not be done if the filesystem got deployed on a ramdisk. For that purpose the _is_ramdisk_device method exists. The logic in the method as well as the call were wrong. This in the end lead to a correct logic but is completely confusing. This commit fixes and simplifies the _is_ramdisk_device method and corrects the caller logic * Wed Jul 22 2020 marcus.schaefer@gmail.com - Make sure kernel options are respected by grub Set options variable in grub loader/entries to match the kiwi image description setup. This adaption currently happens only when building in OBS because in this env the options setup done by grub is a complete mess. * Wed Jul 22 2020 marcus.schaefer@gmail.com - Fixed root replace for grub menu entries The root device spec in the grub boot/loader/entries/*.conf files when building in OBS is not matching the loop mapped image root device but matches the root device of the OBS worker. Very strange behavior and of course wrong. Because of that the expression to replace the wrong device with the correct one must be a regular expression and cannot be based on the loop mapped image root device. * Wed Jul 22 2020 marcus.schaefer@gmail.com - Fixed path to search for grub menu entries * Wed Jul 22 2020 marcus.schaefer@gmail.com - Fixed scope of remove_hierarchy The remove_hierarchy method walked through the entire path it was given. That included the root path which is beyond its scope. This Fixes #1515 * Wed Jul 22 2020 marcus.schaefer@gmail.com - Fixed corrections in BootLoaderSpec grub config Distributions like Fedora RawHide or CentOS8 applies to the grub BootLoaderSpec as described here: https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec Part of the spec is that menu entries are handled in extra files below /boot/loader/entries. Unfortunately the grub2-mkconfig code has still no clue how to find the correct root device in special environments like obs workers or in overlay systems. To fixup the result of grub2-mkconfig there is code in kiwi which needs to be adapted because the file that contains the wrong information is now no longer grub.cfg but some /boot/loader/entries/*.conf file. This commit solves the issue. * Thu Jul 16 2020 marcus.schaefer@gmail.com - Fixed grub setup in EFI/BOOT directory kiwi copied the same grub.cfg file as it exists in boot/grub2 to the efi path. This is wrong as the setup in the efi boot directory is used to enable normal grub loading and not providing the user grub configuration. In addition the changes here makes sure that the early grub boot code is placed into the system in any EFI case except for secure boot when shim-install is present. If shim-install is present it also creates the early grub boot setup such that kiwi doesn't have to do it. This Fixes #1491 and Fixes bsc#1172908 * Wed Jul 15 2020 marcus.schaefer@gmail.com - Use rsync in inplace transfer mode Using the --inplace option in rsync helps to save space on syncing the rootfs data and prevents e.g OBS workers from running out of VM space when transfering root filesystem data. Also using --inplace allows to keep hardlinks intact. This is related to bsc#1096738 * Wed Jul 15 2020 marcus.schaefer@gmail.com - Don't keep copy of grub2-install in the system To prevent shim-install from calling grub2-install in uefi mode kiwi temporary replaces the tool by a noop. This acts as a workaround for an issue in shim-install. However the workaround left a file copy of grub2-install in the system which should not happen. This commit Fixes bsc#1173226 and Fixes #1490 * Tue Jul 14 2020 dcassany@suse.com - Rename CentOS 7 test and add CentOS 8 test This commit renames the CentOS 7 test and adds a new CentOS 8 test Related to #1468 * Tue Jul 14 2020 dcassany@suse.com - Update Ubuntu and Debian image tests This commit updates Ubuntu test to Focal distribution and adds an additional Debian Buster image test. Related to #1468 * Mon Jul 13 2020 dcassany@suse.com - Include CentOS vendor in grub2 configuration This commit ensures the vendor files for grubenv consider CentOS vendoring. * Wed Jul 08 2020 marcus.schaefer@gmail.com - Fixed documentation for OEM swap partition A swap partition in an OEM deployment is only created if that is explicitly requested via the oem-swap element * Wed Jul 08 2020 marcus.schaefer@gmail.com - Bump version: 9.21.4 → 9.21.5 * Wed Jul 08 2020 dcassany@suse.com - Do not create a md5 checksum output file for archive images This commit removes the creation of the md5 file that includes a checksum of the image binary for the `tbz` image type. Removing it as this is the only image type that includes it as part of the result and because the bundle procedure already creates a sha256 file out of the results, so there is still the chance to produce validation checksums. * Fri Jul 03 2020 dcassany@suse.com - Document output files KIWI produces This commits adds a chapter to describe the ouput files that are part of any image build. * Fri Jul 03 2020 schneemann@b1-systems.de - Fixed oem recovery tar parameter order Reorder tar parameters When building an oem-image with oem-recovery set to true a tar error appears saying: "The following options were used after any non-optional arguments in archive create or update mode". This commit fixes the order of arguments to tar to avoid the error condition. Fixes #1501 * Thu Jul 02 2020 marcus.schaefer@gmail.com - Fixed tox min version * Thu Jul 02 2020 marcus.schaefer@gmail.com - Cleanup setup.py The way kiwi uses setup.py assumes that pip runs this script like a spec file in rpm is processed. However this is not the case given that pip implicitly creates a static zip file called wheel which looses all the code logic done in setup.py. Therefore setup.py should not contain code that needs to run at install time. Of course this change comes with an effect which is that the following files will not be available when installing kiwi from pip: * man pages: /usr/share/man/man8/... * command completion: /etc/bash_completion.d/kiwi-ng.sh * kiwi default config file: /etc/kiwi.yml * package docs: /usr/share/doc/packages/kiwi-ng/... (kiwi.pdf, LICENSE, README) kiwi stays fully functional without this information. It is expected that the installation of kiwi as a service will be done by a package and its package manager. When using kiwi from pip it is designed to provide a python module but not a complete user application. The way pip and wheels interact with each other seems to demonstrate that pip is not a package manager but more a python module manager. This Fixes #1415 * Thu Jul 02 2020 tom_schr@web.de - Describe targets in tox.ini * Make use of description to show them with "tox -av" * Use comments as "description" lines * Define minimal tox version (3.5.0) * Wed Jul 01 2020 marcus.schaefer@gmail.com - Bump version: 9.21.3 → 9.21.4 * Fri Jun 26 2020 marcus.schaefer@gmail.com - Refactor FileSystem Factory With regards to Issue #1486 a discussion came up that the way factories are implemented are questionable when thinking about strong typing for the public kiwi interface. This commit refactors the FileSystem factory to be a real factory and to add type hints such that its use from an api perspective is clear and enforced. * Thu Jun 25 2020 marcus.schaefer@gmail.com - Bump version: 9.21.2 → 9.21.3 * Thu Jun 25 2020 dcassany@suse.com - Fixes live ISOs This commit fixes iso images. Due to a change introduced in c7ed1cf live ISOs were no longer booting as the rootfs.img filesystem was copied to the squashfs container while being still mounted. Because of that, at boot time, it refused to mount. This commit adds umount method for the filesystem base class, so it can be umounted before deleting the instance. Fixes #1489 and bsc#1173356 * Fri Jun 19 2020 bogdan.maryniuk@elektrobit.com - Global variables (#1485) * Fix according to PEP8 * Refactor global variables pythonic way * Remove unused import * Thu Jun 18 2020 dcassany@suse.com - Add locale configuration hints in docs * Wed Jun 17 2020 bogdan.maryniuk@elektrobit.com - Add missing decorator for static methods * Tue Jun 16 2020 marcus.schaefer@gmail.com - Update documentation in content and structure This commit adds a documentation for the KIWI XML description. In contrast to the former auto generated code from the XML schema this document can now finally be used as a reference. Along with that new chapter all auto generated and static html content as been deleted. Also all helper scripts around the proprietary oxygen tool and our schema doc generator has been deleted. Auto generating this information does not lead to a reference guide people can really work with. As a consequence to these changes this commit also includes some changes of the structure such that no information written by other people in the past gets lost. This Fixes #1421 and Fixes #1474 * Mon Jun 15 2020 marcus.schaefer@gmail.com - Bump version: 9.21.1 → 9.21.2 * Fri Jun 12 2020 marcus.schaefer@gmail.com - Fixed check for root device in grub config There is a code path that fixes the grub2-mkconfig used root device when building in an environment that does not allow to resolve the by-X path names, e.g an obs build worker without udev. For images that explicitly defines a root=... value in the kernelcmdline attribute the root device check was not called because the _get_root_cmdline_parameter method returns None. This commit fixes the method to return the expected root device in any case such that the grub2-mkconfig root device check has a chance to fix what grub2-mkconfig has created. This fixes bsc#1172928 * Fri Jun 12 2020 dcassany@suse.com - Remove /etc/sysconfig/language support As of SLE15 and onwards /etc/sysconfig/language is considered to be obsolete and just kept for compatibility purposes. Thus there is no need to manage the file anymore. Fixes #1471 * Fri Jun 12 2020 marcus.schaefer@gmail.com - Bump version: 9.21.0 → 9.21.1 * Fri Jun 12 2020 marcus.schaefer@gmail.com - Fixed test-image-qcow-openstack Nothing provides libyui-ncurses-pkg11, yast2-trans-en_US in TW anymore * Fri Jun 12 2020 marcus.schaefer@gmail.com - Moved sle12 ppc integration test to internal bs In agreement with IBM the sle12 integration test has been moved into the internal buildservice. The reason for this change is a python 3.4 compatibility problem. This version of python is used in sle12 but would require patching of upstream kiwi in terms of type hints and annotations to continue to work. We don't want to cary this patch upstream but in the sle12_kiwi repository which contains the kiwi used in sle12. Therefore also the integration test needs to move into the internal sle12 space. * Thu Jun 11 2020 bogdan.maryniuk@elektrobit.com - Ignore MyPy cache * Thu Jun 11 2020 bogdan.maryniuk@elektrobit.com - Ignore VSCode cache * Wed Jun 10 2020 dcermak@suse.com - Remove sed calls to fix /etc/vimrc An update of vim in Tumbleweed will move /etc/vimrc to /usr/share/vim as part of the /usr - /etc split. This makes the sed call fail because /etc/vimrc no longer exists. However, the fix is not required anymore then, as the vim package dropped the "syntax on" line from the default vimrc. * Tue Jun 09 2020 marcus.schaefer@gmail.com - Fixed permissions of custom boot image root dir When building a custom kiwi initrd the root directory has the permissions of the mkdtemp created directory but should have the permissions of a linux root dir which is 0755. This Fixes #1394 * Sat Jun 06 2020 marcus.schaefer@gmail.com - Bump version: 9.20.19 → 9.21.0 * Thu Jun 04 2020 marcus.schaefer@gmail.com - Fixed size of msgbox dialog The width of the dialog was set to a small value which causes the message to be choped. I found this when testing pxe deployments. The error messages on "Failed to fetch..." were missing the interesting part * Wed Jun 03 2020 marcus.schaefer@gmail.com - Update orthos test image Simplify image for use in a pxe test deployment * Wed Jun 03 2020 marcus.schaefer@gmail.com - Added new post disk sync script hook Allow to put a disk.sh script as part of the image description which is called for the disk image types `vmx` and `oem` only and runs after the synchronisation of the root tree into the disk image loop file. At call time of the script the device name of the currently mapped root device is passed as a parameter. The chroot environment for the call is the mounted disk itself which makes this different from the config.sh/images.sh caller environment. This Fixes #1464 * Wed Jun 03 2020 marcus.schaefer@gmail.com - Update user defined scripts documentation Added information about new disk.sh script and reworked the entire chapter * Tue Jun 02 2020 marcus.schaefer@gmail.com - Fixed VolumeManager cleanup instances of VolumeManager creates temporary directories but only stores the latest one. The cleanup leaves former directories behind which is fixed by this commit * Fri May 29 2020 marcus.schaefer@gmail.com - Allow to access disk root after sync_data In preparation to allow a chroot operation into the loop mounted disk this commit refactors the process when filesystems gets umounted and also fixes the canonical order for calling the destructors. Related to Issue #1464 * Wed May 27 2020 dcassany@suse.com - Add EFI firmware on OEM and ISO ubuntu tests This commits adds efi firmware for Ubuntu integration tests * Wed May 27 2020 marcus.schaefer@gmail.com - Bump version: 9.20.18 → 9.20.19 * Wed May 27 2020 marcus.schaefer@gmail.com - Added test-image-custom-partitions to build_status * Tue May 26 2020 dcassany@suse.com - Fix the boot path for initrd detection This commit fixes the path to check the initrd naming convetion from an already existing initrd file in /boot * Tue May 26 2020 marcus.schaefer@gmail.com - Bump version: 9.20.17 → 9.20.18 * Tue May 26 2020 marcus.schaefer@gmail.com - Added custom partition image integration test There are still people who like many extra static inflexible entries in a partition table instead of using LVM or filesystem volume capabilities for sometimes good but often questionable reasons. In kiwi we intentionally support partition table entries on a restricted basis but that does not mean you can't create an image with a highly customized partition table. However it includes some bits of custom code as part of the image description and that's what this reference implementation of an image with custom partitions demonstrates. The image described here adds three extra partitions, var, var/log and var/audit. The concept to create custom partitions is based on specifying a spare partition which is by default created before the root partition. The spare space can now be sliced into as many partitions as needed and that needs to be implemented by the author of the image description. Of course the partition table itself comes with limitations which has to be respected depending on the partition table type. * Tue May 26 2020 dcassany@suse.com - Fix the patch applied on grub.cfg This commit fixes the patch applied on grub.cfg when EFI mode is selected and grub < 2.04. There are some distros that make use of the `linux16` command instead of `linux` in grub configuration, this commit extends the regex to also consider `linux16` command. * Tue May 26 2020 marcus.schaefer@gmail.com - Fixed apt and pacman repository unit tests The way the post_init method was used to test custom arguments leads to a broken I/O wrapper. As consequence the test failed when called with "pytest -s" and also leaves files around from other test I/O redirections. * Tue May 26 2020 marcus.schaefer@gmail.com - Fixed spec file on bare word comparison on e.g Fedora Rawhide rpm complains about bare word comparison error: bare words are no longer supported, please use "..." This patch fixes the spec template to respect this * Mon May 25 2020 marcus.schaefer@gmail.com - Bump version: 9.20.16 → 9.20.17 * Mon May 25 2020 marcus.schaefer@gmail.com - Fixed dracut output file format detection The current way to detect the dracut output file format was based on a lookup of the format used in the dracut tool itself. However there are distributions like Ubuntu which calls dracut and passes the name of the initrd file as options to the call. This invalidates the checking done by kiwi. The only chance for kiwi to do the same than the distributions does is by looking for an initrd file pre-created by the package installations and use the same format. Only if no such initrd file exists the former format detection code applies. The additional code expects any initrd file to match the glob pattern 'init*'. This Fixes #1450 * Mon May 25 2020 marcus.schaefer@gmail.com - Fixed line ending of sha256 bundler file The .sha256 file does not end with a newline. This Fixes #1449 * Mon May 25 2020 marcus.schaefer@gmail.com - Fix scope for linuxefi grub config adaption In kiwi we support a one time patch for the grub config file that changes the static use of linuxefi to be dynamic. In grub2 >= 2.04 all this has already been fixed but for grub2 version older than this version we applied the patch. The patch however was only applied based on the presence of a grub setting named GRUB_USE_LINUXEFI. It has turned out that this variable is a custom extension not part of grub upstream which makes the test functional only on distributions that supports this setting. The use of linuxefi however is code that belongs to grub upstream. Therefore this patch changes the scope of the one time patch to be only based on the version of grub no matter if GRUB_USE_LINUXEFI is supported by the distro or not. This Fixes #1453 * Fri May 22 2020 marcus.schaefer@gmail.com - Fixed root device setup in vendor grubenv In addition to the root device setup in grub.cfg we also need to patch the vendor grubenv file which contains an invalid kernelopts value written by grub2-mkconfig under the conditions explained in Issue #1287. This Fixes Issue #1454 * Fri May 22 2020 marcus.schaefer@gmail.com - Bump version: 9.20.15 → 9.20.16 * Fri May 22 2020 marcus.schaefer@gmail.com - Fixed schematron rule for bootloader targettype The targettype attribute must be allowed for the grub2_s390x_emu bootloader name * Fri May 22 2020 marcus.schaefer@gmail.com - Bump version: 9.20.14 → 9.20.15 * Fri May 22 2020 marcus.schaefer@gmail.com - Fixed parse result description reference The object that holds the parse result also contains an information about description_dir and derived_description_dir. The change on the markup processing impacted the value for description_dir to be no longer the origin (user provided) directory. That broke any reference of files that belongs to the description directory like custom scripts config.sh, images.sh and so on. * Fri May 22 2020 marcus.schaefer@gmail.com - Fixed sdist MANIFEST kiwi.markup was not part of the source tarball * Fri May 22 2020 marcus.schaefer@gmail.com - Bump version: 9.20.13 → 9.20.14 * Fri May 22 2020 dcassany@suse.com - Remmove any Recommends for CentOS7 This commit fixes the package spec for CentOS 7. In CentOS 7 there is no support for weak dependencies. In 9792cea1 a recommended dependency on gpg tools was included for all builds and this caused a failure for CentOS 7. With this commit, the recommended dependency, is omitted for any pre CentOS 8 distro. * Fri May 22 2020 marcus.schaefer@gmail.com - Bump version: 9.20.12 → 9.20.13 * Wed May 20 2020 marcus.schaefer@gmail.com - Refactor dracut disk re-partition library The kiwi repartition code for msdos and gpt tables was based on the parted tool. However parted requires to give start and end addresses to describe a space in the partition table. The numbers were calculated in kiwi based on cylinders. The mapping into cylinders is a virtual number that plays no role under Linux and vanished completely with newer storage technologies. Tools like sgdisk and sfdisk are better prepared to handle disk partitioning and also makes this a more straight forward code in kiwi. Thus this commit refactors the re-partition code to drop parted and use a dedicated tool depending on the partition table type. This Fixes #1406 * Wed May 20 2020 dcassany@suse.com - Fix default repositories for APT This commit fixes the default repositories configuration for APT. Fixes #1439 * Mon May 18 2020 dcassany@suse.com - Include recommend for gpg tool * Fri May 15 2020 dcassany@suse.com - Fix signing keys management for APT This commit fixes the management of the trusted keyring for apt repositories. It creates a `trusted.gpg` keyring with the provided signing keys so APT can check against that the configured repositories. Fixes #1440 * Thu May 14 2020 marcus.schaefer@gmail.com - Fixed spec file This patch is two fold. First the py2 version of kiwi was dropped since py2 is EOL. To indicate that correctly on the package level python3-kiwi has to obsolete python2-kiwi. The other part of the change is a file conflict of the files: etc/bash_completion.d/kiwi-ng.sh /usr/share/doc/packages/python-kiwi/README which were provided by the kiwi-man-pages sub-package but were moved to be provided by the main python3-kiwi package now. On update of the package with an older version of kiwi that maintains this files to belong to kiwi-man-pages a file conflict at install time appears. To solve this python3-kiwi now conflicts with kiwi-man-pages < %{version} This Fixes #1413 and Fixes bsc#1168973 and bsc#1156677 * Wed May 13 2020 marcus.schaefer@gmail.com - Cleanup use of machine platform name in kiwi we handle 32bit x86 architecture names as ix86. This is done by checking i586 and i686 32bit arch names. However those checks are spread over the entire kiwi code base and should be consolidated into one method. The cleanup of those arch name usage fixes an inconsistency between the arch name used in the disk builder and the arch name used in the subformat image formats. This Fixes #1438 * Wed May 13 2020 marcus.schaefer@gmail.com - Fixed zypper error code validation The error code 127 - command not found, was not treated as an error. This commit adds 127 to be an error condition along with the other 1xx error codes from zypper that are handled as errors. This Fixes #1430 * Wed May 13 2020 marcus.schaefer@gmail.com - Added archlinux to build_status helper Show the archlinux build results in the build_status helper script * Wed May 13 2020 marcus.schaefer@gmail.com - Added sidebar link to ArchLinux build tests * Tue May 12 2020 dcassany@suse.com - Fix string formatting After a flake8 upgrade to v3.8.0 these changes were required to pass the `tox -e check` validation. * Tue May 12 2020 dcassany@suse.com - Add Arch Linux integration tests for x86_64 * Mon May 11 2020 marcus.schaefer@gmail.com - Support multiple markup formats Allow to read multiple markup formats. Supported are XML and YAML. The parsing and transformation is based on the anymarkup module. The use of anymarkup is optional and implemented as an on demand loading module. If a user uses a yaml config file or a request to convert into yaml is made without an installed anymarkup module an exception is thrown * Mon May 11 2020 marcus.schaefer@gmail.com - Fixed boxbuild documentation The command doesn't have to be called as root. Therefore the example should not be used with sudo prefix * Mon May 11 2020 marcus.schaefer@gmail.com - Allow setup of serial line in bootloader So far kiwi used a static serial line setup of the console type was configured to use a serial console. However if different parameters are needed there was no way to change the static setup. This commit adds a new bootloader attribute called serial_line which allows to specify the serial line parameters for the grub bootloader e.g serial_line="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1" Please note serial_line takes the value as it is given and adds this as a line to the grub configuration or as content to the variable GRUB_SERIAL_COMMAND. No further validation of the information takes place by kiwi. This Fixes #1401 * Mon May 11 2020 marcus.schaefer@gmail.com - Support grub timeout_style parameter Grub supports a style setting that influences the display of the menu depending on the configured timeout value. With this patch kiwi allows to specify the style via a new bootloader parameter named timeout_style="hidden|countdown". If not set the grub default applies which shows the menu in any case. This Fixes bsc#1165730 and Fixes #1404 * Fri May 08 2020 marcus.schaefer@gmail.com - Bump version: 9.20.11 → 9.20.12 * Fri May 08 2020 marcus.schaefer@gmail.com - Update build tests to match new schema v7.2 * Thu May 07 2020 marcus.schaefer@gmail.com - Refactor setup of bootloader parameters The bootloader settings are handled through attributes in the type element. Over the years some attributes were added and there are requests for more settings. Therefore the bootloader setup deservers its own section. With this commit the schema changes from v7.1 to v7.2 and moves bootloader, bootloader_console boottimeout and zipl_targettype into a new bootloader subsection below type. The commit also adds an auto transformation template such that customers don't have to change their image descriptions. This is related to Issue #1401 * Tue May 05 2020 patrik.r.jakobsson@gmail.com - Fix support for multiple dracut modules Passing the dmsquash flag adds dmsquash-live and livenet modules to dracut. This broke when adding a check to only add modules that dracut reports as available. Use a list instead of a string to represent the modules to add. Fixes: 07ea23a4 * Mon May 04 2020 marcus.schaefer@gmail.com - Rewrite chapter about self-contained builds Document the new boxed build plugin. The former solution with dice will be deprecated in favor of the kiwi plugin. This is related to Issue #1409 * Mon May 04 2020 dcassany@suse.com - Clean AnonymousUniqueId This is a follow up commit for 469f71144. There is not need to remove the `/var/lib/zypp/AnonymousUniqueId` file from the clean up method since this has been already integrated inside the python code base and this is not needed anymore as a helper function. * Fri May 01 2020 marcus.schaefer@gmail.com - Bump version: 9.20.10 → 9.20.11 * Fri May 01 2020 marcus.schaefer@gmail.com - Update Oxygen schema documentation * Fri May 01 2020 marcus.schaefer@gmail.com - Fixed headline for schema docs chapter Use the same headline for the schema chapter in the schema_docs generator as in the default source file * Fri May 01 2020 marcus.schaefer@gmail.com - Bump version: 9.20.9 → 9.20.10 * Thu Apr 30 2020 dcassany@suse.com - Clean AnonymousUniqueId from the image This commit is two fold. For one side does a small refactor to move the deletion of custom RPM macros to package manager level inside a cleaning method. This way only RPM based package managers run RPM specific code and each package manager can apply its own specific logic. On the other hand for the zypper package manager the deletion of /var/lib/zypp/AnonymousUniqueId file has been added as part of the new cleaning method. Fixes #1396 * Thu Apr 30 2020 marcus.schaefer@gmail.com - Added kis type to image attribute * Wed Apr 29 2020 marcus.schaefer@gmail.com - Use auto video mode as default for grub An explicit video mode 800x600 was used for grub if no video mode setup exists in the XML description. For grub this should better result in the auto mode. Related to bsc#1165730 * Tue Apr 28 2020 marcus.schaefer@gmail.com - Do not set GRUB_DISTRIBUTOR grub mkconfig creates a proper string based on /etc/os-release if GRUB_DISTRIBUTOR is not set. We assume this to be true for all distributions. This Fixes #1416 * Tue Apr 28 2020 marcus.schaefer@gmail.com - Fixed spec file header information Fixed copyright date/company and url path to project * Tue Apr 28 2020 marcus.schaefer@gmail.com - Fixed ovf Machine section setup for virtualbox Required attributes/sections name, ostype, uuid and StorageControllers were missing according to IVirtualBox::createMachine documentation from here: https://www.virtualbox.org/sdkref/interface_i_virtual_box.html This Fixes #1322 * Mon Apr 27 2020 marcus.schaefer@gmail.com - Added new build type kis KIS is an abbreviation for Kernel, Initrd, System and defines a highly customizable image consisting out of these components. This commit performs the changes documented in #1414 and introduces the new kis type. From an image build perspective kis is currently the same as pxe with restrictions for kis on the schema level. A kis build uses dracut and does not allow to use the legacy netboot initrd. The pxe type will therefore be exclusively used to built for the legacy netboot infrastructure and is on its way to deprecation in the future. This Fixes #1262 * Thu Apr 23 2020 marcus.schaefer@gmail.com - Added KIS chapter A new chapter to document KIS images. KIS is an abbreviation for Kernel, Initrd, System and defines a highly customizable image consisting out of these components. This Fixes #1346 * Thu Apr 23 2020 marcus.schaefer@gmail.com - Move the self-contained chapter to the toplevel This chapter will be rewritten when the new kiwi box plugin is available and deserves a space on the toplevel page * Thu Apr 23 2020 marcus.schaefer@gmail.com - Moved chapters from building to working Chapters build_in_buildservice and build_with_profiles belongs more to working with images * Thu Apr 23 2020 marcus.schaefer@gmail.com - Refactor netboot chapters All information about network boot that references the legacy netboot code has been moved into one chapter at working_with_images named legacy_netboot_root_filesystem.rst * Thu Apr 23 2020 marcus.schaefer@gmail.com - Update article about network live boot Added a note about the configured PXE loader * Thu Apr 23 2020 marcus.schaefer@gmail.com - Update boot server setup chapter Describe the general setup procedure to setup DHCP and TFTP services using dnsmasq for clients to boot with either pxelinux or grub loaders * Thu Apr 23 2020 dcassany@suse.com - Add flags and argument separator for zypper This commits adds a `--` argument in zypper install calls right after the flags and before the arguments (in this case packages) list. Fixes #1407 * Wed Apr 22 2020 marcus.schaefer@gmail.com - Disable AudioAdapter for vagrant The kiwi template for vagrant images assumes the box files to be used in non graphics mode and for the purpose of automation or server deployment. Thus by default we disable Audio. For details see the API reference: https://www.virtualbox.org/sdkref/interface_i_audio_adapter.html This Fixes #1322 * Wed Apr 22 2020 marcus.schaefer@gmail.com - Added check_syslinux_installed_if_isolinux_is_used ISO images that are configured to use isolinux requires the host to provide a set of syslinux binaries. The runtime check makes sure to check for this condition early including a proper message. This Fixes #1376 * Fri Apr 17 2020 marcus.schaefer@gmail.com - Bump version: 9.20.8 → 9.20.9 * Fri Apr 17 2020 marcus.schaefer@gmail.com - Fixed _get_grub2_mkconfig_tool Last patch on this method breaks the search for alternative mkconfig names. It returns always on the first lookup which could be none. This breaks on systems that uses a different name than grub2-mkconfig, like on Ubuntu. * Thu Apr 16 2020 marcus.schaefer@gmail.com - Bump version: 9.20.7 → 9.20.8 * Thu Apr 16 2020 marcus.schaefer@gmail.com - Increase spare space on disk repart The sizing of the virtual cylinders in parted seems to be unfavorable, as with some disks and SD cards here the device size is not a multiple of the cylinder size, so the last incomplete cylinder is wasted. If this wasted space is more than 5MiB, kiwi tries to resize indefinitely. Therefore min_additional_mbytes gets increased to prevent running into this situation. This Fixes bsc#1165823 * Thu Apr 16 2020 marcus.schaefer@gmail.com - Fixed return value from _get_grub2_mkconfig_tool The method returned the basename of the tool if it could be found by Path.which(). But the method's scope has been changed in a way that the return value of the method must be the result from Path.which() to allow working on the full path name. * Thu Apr 16 2020 marcus.schaefer@gmail.com - Bump version: 9.20.6 → 9.20.7 * Wed Apr 15 2020 dcassany@suse.com - Make CommandCapabilities.check_version take the longest match This commit ensures that when trying to parse the version of a tool the comparison is done with the longest match for the given regular expression. This solves cases such in `grub2` where the tool name already provides some digit that could be seen as a version. * Wed Apr 15 2020 marcus.schaefer@gmail.com - Fixed check for grub mkconfig capabilities The check for the capabilities of the tool were applied to the tool installed on the host but the later call of the tool will be done with the tool inside the image root * Wed Apr 15 2020 marcus.schaefer@gmail.com - Validate use of GRUB_USE_LINUXEFI On systems that uses GRUB_USE_LINUXEFI with grub2 version less than 2.04 there is no support for dynamic EFI environment checking. In this condition we extend the grub setup to add this support. The change kiwi does is as follows: * Apply only on grub < 2.04 1. Modify 10_linux to set linux/initrd as variables 2. Write hybrid setup as 01_efihybrid This Fixes bsc#1165960 and bsc#1168480 * Tue Apr 14 2020 jan.loeser@elektrobit.com - Fixed typo in docstring Istall -> Install * Sat Apr 11 2020 marcus.schaefer@gmail.com - Create qcow2 images in two steps The creation of the qcow2 format was done in one qemu-img convert call. That call instructs qemu to compress and convert in one call. The downside of this approach is that not all qcow2 options can be used. For example the setup of: <type ... formatoptions="preallocation=metadata"/> failed the build with an error message that compression and preallocation is not possible at the same time. Thus this patch changes the way the qcow2 image is created to be done in two steps. The first step converts the format without compression and therefore allows for any format option to be used. The second call only applies the compression and leads to the final result. * Fri Apr 03 2020 marcus.schaefer@gmail.com - Bump version: 9.20.5 → 9.20.6 * Thu Apr 02 2020 marcus.schaefer@gmail.com - Fixed plugin documentation While setting up the kiwi boxed plugin I realized some small mistakes in the plugin documentation * Thu Apr 02 2020 marcus.schaefer@gmail.com - Allow overlay directories for profiles In addition to the existing root/ overlay directory which applies always there can now also be profile specific overlay directories. If an overlay directory should be applied for a specific profile this can now be done by placing this data in a directory that is named the same as the profile name. * Wed Apr 01 2020 marcus.schaefer@gmail.com - Make build of filesystem image optional for pxe Allow to build a kernel/initrd pair without a root filesystem image. Related to Issue #1388 * Fri Mar 27 2020 marcus.schaefer@gmail.com - Bump version: 9.20.4 → 9.20.5 * Thu Mar 26 2020 dcassany@suse.com - Add SECURE_BOOT parameter for grub2 in efi mode This commit adds the SECURE_BOOT parameter on bootloader sysconfig for grub2. Fixes bsc#1167746 * Wed Mar 25 2020 marcus.schaefer@gmail.com - Added new oem-resize-once element The new element controls the behavior of the repart/resize code in the oem-repart dracut module. By default the repart/resize happens on every reboot and therefore also allows for disk geometry changes during the livetime of the machine. If the element is set to false the repart/resize operation happens only once and then never again. To check for this condition a new profile environment variable kiwi_rootpartuuid which holds the PARTUUID of the root partition has been added to the disk builder. * Tue Mar 24 2020 dcassany@suse.com - No default boot partition for btrfs_root_is_snapshot This commit ensures no boot partition is used when root is set to be a btrfs snapshot unless this is explicitly required by the user. Fixes #1351 * Sun Mar 22 2020 marcus.schaefer@gmail.com - Make disk allocation check more robust The tools used to check the disk allocation condition are sfdisk and sgdisk. The problem is that at least sfdisk is different in behavior and functionality compared across the distributions we support with kiwi. In addition the verification for the msdos table cannot be used to distinguish between intentionaly wanted free space on disk and a disk that has not yet been resized. Thus this commit changes two parts: a) always report unallocated space available for the msdos table to allow to run kiwi's resize code b) make sure the table type is taken into consideration It's important to run the verification based on the table type (DOS, GPT) where we know the tools to work. In any other case we report the disk to have unallocated space and give the resize code a chance * Sat Mar 21 2020 marcus.schaefer@gmail.com - Fixed openstack integration test nothing provides python2-oslo and required py2 packages * Fri Mar 20 2020 marcus.schaefer@gmail.com - Fixed bootloader install Mount EFI partition in any case not only for the shim target * Thu Mar 19 2020 marcus.schaefer@gmail.com - Fixed centos integration test Currently centos images does not build because of a broken XML description * Thu Mar 19 2020 marcus.schaefer@gmail.com - Update centos integration test There is no testing of centos disk images that uses the old msdos partition table. All tests were done with GPT table layout. * Thu Mar 19 2020 dcassany@suse.com - Adding OEM integration tests for Ubuntu This commit adds oem image type for Ubuntu integration tests * Wed Mar 18 2020 marcus.schaefer@gmail.com - Complete refactoring of fstab handling With the new Fstab class from prior pull request there is an opportunity to handle all fstab related actions to be done by that class. This commit extends the Fstab class with an add_entry method such that we can avoid the extra lists holding raw fstab lines in e.g the disk builder. In the end all fstab related data is stored in an instance of the Fstab class. This also extends the KIWI api by an fstab management class. Related to #1329 and #1349 * Wed Mar 18 2020 marcus.schaefer@gmail.com - Cleanup fstab handling for containers When building container images an extra create_fstab method exists that created an empty fstab file. The reasons for this are historical and also related to appx support from obs. The obs based support for appx containers was based on the creation of a kiwi docker image that got modified and turned into an appx container. Now with native appx support by kiwi this special fstab handling is no longer needed and should be deleted. This Fixes #1329 * Tue Mar 17 2020 marcus.schaefer@gmail.com - Validate and order final fstab file On write of the final fstab file read, validate and order the entries. This is related to Issue #1349 * Tue Mar 17 2020 marcus.schaefer@gmail.com - Added Fstab class Handling of fstab should be done in its own namespace and class. The current handling of fstab entries is spread at several places. There should be only one code that writes the fstab entries and that code should also care for the correct canonical order of the mountpoints * Tue Mar 17 2020 dcassany@suse.com - Fix order in fstab Any mount point directly under / should be just right after the root mountpoint and before the custom mountpoints based on user's subvolume configuration. Fixes #1349 and bsc#1164310 * Sat Mar 14 2020 marcus.schaefer@gmail.com - Skip nodev devices for size calculations Added a static list of mountpoints used for devices that are not associated with a physical device like /proc and use that information in the exclude list for calculating the image byte size. This Fixes #1363 * Fri Mar 13 2020 dcassany@suse.com - Add kpartx dependency on dracut-kiwi-oem-dump package This commit adds a missing dependency on dracut-kiwi-oem-dump package. In images where The `kpartx` tool is missing the dracut-kiwi-oem-dump was not applied for the initrd. Fixes #1364 * Sun Mar 08 2020 marcus.schaefer@gmail.com - Added new image type: wsl Support for building appx container images for Windows Subsystem Linux (WSL). This Fixes #1235 * Fri Mar 06 2020 marcus.schaefer@gmail.com - Fixed file name for config.bootoptions file The dracut code in 90kiwi-dump/kiwi-dump-image.sh looks for a file matching ${image_uri}.config.bootoptions but the install code packs a file named pxeboot.${image_uri}.config.bootoptions into the tarball. Thus without renaming the file it won't be found. Also the documentation mentions the file to be named ${image_uri}.config.bootoptions. This commit fixes the install code to match the dracut boot code and the documentation * Wed Mar 04 2020 marcus.schaefer@gmail.com - Fixed daps image path * Wed Mar 04 2020 marcus.schaefer@gmail.com - Bump version: 9.20.3 → 9.20.4 * Wed Mar 04 2020 dcassany@suse.com - Fix a regression for container builds in OBS This commit fixes a regression introduced in 12d84be2. We need to ensure that `labels` item exist in oci image configuration dict before updating it and creating it in case it doesn't exist. * Tue Mar 03 2020 marcus.schaefer@gmail.com - Fixed suse doc push pipeline build and push are not allowed to run in parallel * Tue Mar 03 2020 marcus.schaefer@gmail.com - push suse doc only on merge to master * Tue Mar 03 2020 marcus.schaefer@gmail.com - Bump version: 9.20.2 → 9.20.3 * Mon Mar 02 2020 marcus.schaefer@gmail.com - Build and push SUSE documentation On any pull request also build the suse documentation and push changes to the OSInside/kiwi-suse-doc git repository. The SUSE documentation team needs a repo with docbook sources for the publishing procedure. In addition change the gitlab pipeline to run in three stages: Test, Documentation and Package. Let the style and unit tests run in parallel and cleanup the dependency setup * Fri Feb 28 2020 dcassany@suse.com - Fix container labels setup in OBS This commits fixes the containers label setup in OBS, ensuring that adding the 'org.openbuildservice.disturl' label does not clear any other label. Fixes #1338 * Fri Feb 28 2020 marcus.schaefer@gmail.com - Bump version: 9.20.1 → 9.20.2 * Fri Feb 28 2020 marcus.schaefer@gmail.com - Fixed schema regexp validation Regexp patterns used in the schema are translated into python expressions by generateDS. It's required to use the XSD schema to run generateDS, xsd however has some restrictions on pattern use which leads to a warning message for the ones fixed here * Wed Feb 26 2020 marcus.schaefer@gmail.com - Fixed completion_generator Due to the change of the binary name for consistency in the docopt docstrings the completion generator failed to produce correct results. This commit fixes it * Wed Feb 26 2020 ngompa13@gmail.com - Store Mock build logs and built RPMs as short-term artifacts This makes it much easier to debug what is happening with mock when failures occur. * Tue Feb 25 2020 marcus.schaefer@gmail.com - Added sle15 ppc oem integration test Related to Issue #1325 * Tue Feb 25 2020 marcus.schaefer@gmail.com - Added task plugin documentation Documentation for developers how to write a custom kiwi task plugin. * Tue Feb 25 2020 marcus.schaefer@gmail.com - Update manual page documentation Fixed manual pages to use kiwi-ng as the command name * Tue Feb 25 2020 marcus.schaefer@gmail.com - Fixed docopt strings to use correct binary name The kiwi binary from the entry_point configuration is kiwi-ng. The docopt strings should use this name for consistency. The alternative binary name kiwi is just a symlink created on the rpm packaging level and is not guaranteed to exist depending on how kiwi was installed * Tue Feb 25 2020 marcus.schaefer@gmail.com - Refactor plugin architecture Set kiwi.tasks to be the plugin entry point and register existing task plugins in setup.py. Change the code in cli.py to auto register plugins using the iter_entry_points method from the pkg_resources class. This allows for easier writing of external kiwi plugins. * Mon Feb 24 2020 marcus.schaefer@gmail.com - Fixed handling of fillup templates Systems using a template tool to generate config files might not be effective when they see the intermediate config files we need from the host to let certain package managers work correctly. Therefore the cleanup code in kiwi takes care to restore from an optionally existing template file if no other custom variant is present. This Fixes bsc#1163978 * Fri Feb 21 2020 marcus.schaefer@gmail.com - Enhance OEM ppc integration test for 4k/512b disks Add profile section to build one image for storage disks with 4k physical blocksize and one image for disks using 512byte blocksize. Related to Issue #1325 * Thu Feb 20 2020 dcassany@suse.com - Make squashfs compression configurable This commit adds the `squashfscompression` attribute in type element. It can take `gzip`, `zstd`, `xz`, `lzo`, `lz4` or `none`. The default is `xz`. Fixes #1315 * Wed Feb 19 2020 marcus.schaefer@gmail.com - Bump version: 9.20.0 → 9.20.1 * Wed Feb 19 2020 marcus.schaefer@gmail.com - Added serial console in centos integration test For use with Kanku we enable the serial console for the centos integration test image * Wed Feb 19 2020 marcus.schaefer@gmail.com - Make PrEP partition known to GPT partitioner * Wed Feb 19 2020 marcus.schaefer@gmail.com - Use GPT table for Power ofw firmware GPT partition table should be preferred for power systems these days. Related to Issue #1325 * Wed Feb 19 2020 marcus.schaefer@gmail.com - target blocksize for IBM Power8 systems is 4k Adapt the oem image integration test for bare metal to use 4k blocksize * Tue Feb 18 2020 marcus.schaefer@gmail.com - Fixup documentation for consistency There is the legacy kiwi version and there is this kiwi(next generation). From a documentation perspective there are several inconsistencies that could confuse users. This commit makes the name for KIWI-NG consistent across the entire documentation. At places where we point to older documentation we use the term Legacy KIWI and a link to the documentation that covers this part. All this is needed in preparation to cleanup the documentation situation for the SUSE documentation but with respect to the upstream doc sources, their layout and markup. * Mon Feb 17 2020 dcassany@suse.com - Do not create empty macros file This commit makes sure to empty RPM macros files are created during the build. Additionally it also ensures that no needless `rm` and `mkdir` calls are done. Fixes #1316 * Mon Feb 17 2020 marcus.schaefer@gmail.com - Turn btrfs requirement into a recommend Only on suse systems btrfs is eligable to be a required package because it's the default filesystem of that distribution. In any other case it should be a recommended package. As a side effect of this change we will be able to activate the CentOS-8 build target * Sat Feb 15 2020 marcus.schaefer@gmail.com - Bump version: 9.19.16 → 9.20.0 * Thu Feb 13 2020 dcassany@suse.com - Fix append file for PXE This commit fixes a regression introduced in 141f384e. With this commit the append file is only added to the PXE tarball only when it is created. * Tue Feb 11 2020 alan.cheung@multapplied.net - Split kiwi-dump into 2 modules to allow inserting a module after the image dump and before system reboot * Tue Feb 11 2020 marcus.schaefer@gmail.com - Addded doc_suse tox target to build docbook target SUSE documentation is based on docbook or asciidoc. The kiwi documentation is maintained along with the code and uses the sphinx system and therefore ReST as markup language. We would like to keep one source and don't want to move to another markup language. Thus the sources needs to be structured in a way that allows translation into sphinx supported targets as well as into SUSE docbook style. This commit changes the documentation structure in a way that both is possible. With the use of Sphinx XML and rstxml2docbook the ReST docs are converted into docbook. From there the SUSE daps tool can create SUSE documentation * Mon Feb 10 2020 marcus.schaefer@gmail.com - Move gitlab stages to use gitlab registry The kiwi-ci-containers project on gitlab now builds all containers that are needed to run all type of tests we have in the gitlab pipeline for kiwi. This commit moves the tests to fetch the containers from the gitlab registry and avoids any requirement to install packages prior to running the tests. This will speedup the overall test time and makes the system also more robust in case the repo servers hosting the packages can't be accessed for some reason * Sun Feb 09 2020 marcus.schaefer@gmail.com - Fixed ISO creation on ppc On the ppc architecture the isolinux path was chosen which is wrong. This patch fixes the ISO creation to use the grub path * Sun Feb 09 2020 marcus.schaefer@gmail.com - Added suse OEM ppc integration test Added obs integration test for building a simple disk image to be started in a VM on power. Related to Issue #1325 * Fri Feb 07 2020 marcus.schaefer@gmail.com - Move gitlab build_doc target to gitlab registry Use the container from the kiwi-ci-containers project to run the build_doc target * Fri Feb 07 2020 marcus.schaefer@gmail.com - Delete use of ifplugd in integration tests ifplugd was dropped from the factory tree and that change needs to be addressed in the integration tests to let them build again * Thu Feb 06 2020 marcus.schaefer@gmail.com - Added ppc integration test links Added ppc integration test links to the overview page of the kiwi documentation. Related to Issue #1325 * Thu Feb 06 2020 marcus.schaefer@gmail.com - Bump version: 9.19.15 → 9.19.16 * Wed Feb 05 2020 dcassany@suse.com - Add .append file for PXE images This commit creates the .append file for PXE images. This file is only created for initrd based images and includes the UUID of the rootfs and any parameter added by the user within the 'kernelcmdline' attribute. Fixes #1327 * Wed Feb 05 2020 marcus.schaefer@gmail.com - Deleted distro provided login.defs from overlay * Wed Feb 05 2020 marcus.schaefer@gmail.com - Delete use of methods that are done by the builder * Tue Feb 04 2020 marcus.schaefer@gmail.com - Deleted obsolete ifplugd from arm build test * Mon Feb 03 2020 marcus.schaefer@gmail.com - Deleted obsolete ifplugd from s390 build test * Mon Feb 03 2020 marcus.schaefer@gmail.com - Update status helper script Also show new ppc integration test builds * Mon Feb 03 2020 marcus.schaefer@gmail.com - Added fedora ppc integration test Added obs integration test for building a simple disk image to be started in a VM on power. Related to Issue #1325 * Sun Feb 02 2020 marcus.schaefer@gmail.com - Added suse ppc integration test Added obs integration test for building a simple disk image to be started in a VM on power. Related to Issue #1325 * Sun Feb 02 2020 marcus.schaefer@gmail.com - Bump version: 9.19.14 → 9.19.15 * Wed Jan 29 2020 ngompa13@gmail.com - Disable RPM module content validation and filtering when building in OBS The Open Build Service builds images by identifying the requested dependencies, downloading them into an isolated environment, regenerating the repository metadata from scratch with *only* that content, and then passing those new repositories to be used for building images. This enforces the reproducibility of the image build process. However, when building images for Linux distributions that have AppStreams/modules (such as Red Hat Enterprise Linux/CentOS 8) in an Open Build Service system, the repository metadata associated with modules is not present as OBS does not generate it. This causes the image build to fail because the normal module content filtering rules make it so that modular RPMs are disabled unless there is module metadata in the repository that identifies them and that the module has been configured to be enabled. As it is not possible for us to satisfy those conditions, instead we disable modular filtering entirely when we detect that the image build is occurring inside the build service, as we are reasonably certain that OBS will not give us bad or broken package sets. * Tue Jan 28 2020 marcus.schaefer@gmail.com - Fixed ppc kernel lookup On power the kernel is named e.g vmlinux-4.12.14-197.29-default kiwi was missing that name match. Related to Issue #1325 * Mon Jan 27 2020 marcus.schaefer@gmail.com - Fixed sat solver flags validation The sat library from the python3-solv plugin does not expose the flags information as method. Instead the flags value is a variable pointing to an integer that has a name mapping in self.solv.Selection from the library. * Fri Jan 24 2020 marcus.schaefer@gmail.com - Bump version: 9.19.13 → 9.19.14 * Wed Jan 22 2020 dcassany@suse.com - Make use of Path.which including root_dir parameter This commit refactors the use of Path.which in several parts of the code. Since dd4d2ed78 the Path utility is capable to run Path.which on certain chroot env, thus no need to adapt the PATH environment variable. Fixes #1281 * Tue Jan 21 2020 marcus.schaefer@gmail.com - Make PXE oem deployment genericly useable When deploying a disk image via PXE the initrd contained a config file which connects it to a certain image. This has the disadvantage that no other image could be deployed with it. This commit changes the deployment code in a way that the config file is read from the network if the disk is deployed via PXE. The tarball created by kiwi provides the image connected config file but users now have the opportunity to create their own boot configurations which allows deployment of different images with the same kiwi built deployment initrd. This Fixes #1298 and is one first step into a more generic PXE support offered by kiwi. * Mon Jan 20 2020 marcus.schaefer@gmail.com - Bump version: 9.19.12 → 9.19.13 * Mon Jan 20 2020 dcassany@suse.com - Remove RootBind.move_to_root method This commit removes the RootBind.move_to_root method as this can all be done by using the Path.move_to_root utility method. This allows to drop the RootBind attribute in PackageManager classes and focus path manipulation methods into a common utility. Related to #1281 * Mon Jan 20 2020 marcus.schaefer@gmail.com - Bump version: 9.19.11 → 9.19.12 * Mon Jan 20 2020 marcus.schaefer@gmail.com - Fixed custom args check If a custom argument exists in the dictionary but has no value it should be treated as not set and initialized empty as intended * Fri Jan 17 2020 marcus.schaefer@gmail.com - Fixed order of fstab entries If a volume manager is used the volumes are added before the root filesystem(/) entry in fstab. This does not hurt because at boot time systemd manages the mounting of the rootfs prior to any other information in the fstab file but it's conceptually broken. Users justifiably can expect the fstab entries in the correct order such that mounting from top to bottom leads to a consistent root filesystem state. * Fri Jan 17 2020 marcus.schaefer@gmail.com - Bump version: 9.19.10 → 9.19.11 * Wed Jan 15 2020 marcus.schaefer@gmail.com - Added support for spare partition fs attributes Added new type attribute: ```xml <type ... spare_part_fs_attributes="..."/> ``` which can be a comma separated list of the following currently supported filesystem attributes: * no-copy-on-write * synchronous-updates See chattr and filesystem manual pages for details on those attributes. More attributes for the spare part context can be added on request. This Fixes #1233 * Wed Jan 15 2020 dcassany@suse.com - Allow builds without KIWI dracut modules This commit avoids requesting non installed dracut modules to the dracut creation. It bumps a warning message if the module requested by KIWI is not installed in the root-tree and ignores the request. This allows the creation of images without including KIWI dracut modules when the related runtime checks are disabled. Fixes #1300 * Mon Jan 13 2020 marcus.schaefer@gmail.com - Bump version: 9.19.9 → 9.19.10 * Sun Jan 12 2020 marcus.schaefer@gmail.com - Follow up fix for kernel version lookup When using custom kiwi boot images a shell method named baseCreateCommonKernelFile was used to create a common kernel file name in the boot image to allow a simpler search code in the builder. The search code in the builder however uses the standard kernel naming schema and with the latest changes to the kernel version lookup the common name did not match the matching pattern anymore. The use of such a common kernel file is obsolete and the shell method can finally be deleted. * Sat Jan 11 2020 marcus.schaefer@gmail.com - Bump version: 9.19.8 → 9.19.9 * Thu Jan 09 2020 marcus.schaefer@gmail.com - Refactor kernel version lookup For the lookup of the kernel version kiwi provided a small C program that reads the first bytes of the kernel binary and extracts the version information. Given the various compression formats and also the problem of kernel files that contains the decompressor code which could be anything it has turned out to be difficult to provide a stable tool to read the version from the binary. Therefore the code in kiwi was refactored to read the version via regexp match from the filename which also makes kversion an obsolete tool. This Fixes #1308 * Thu Dec 19 2019 dcassany@suse.com - Bump version: 9.19.7 → 9.19.8 * Thu Dec 19 2019 dcassany@suse.com - Update libyui-ncurses-pkg10 to libyui-ncurses-pkg11 In Tumbleweed there is no longer the libyui-ncurses-pkg10 its been superseded by libyui-ncurses-pkg11. This fixes the test-image-qcow-openstack integration test * Thu Dec 19 2019 dcassany@suse.com - Reference commit for SUSE maintenance This commit adds a reference to Issue #1301 and the report in bugzilla bsc#1159538. The issue was fixed in commit 7d96d19c * Wed Dec 18 2019 dcassany@suse.com - Fix grub2 configuration for shim fallback setup If shim fallback setup is enabled the grub.cfg is copied to the EFI partition. This commit makes sure that the grub.cfg is copied to the EFI partition according to the efi mount point. Fixes bsc#1159235 * Tue Dec 17 2019 dcassany@suse.com - Ensure no swap volume is added on btrfs When the selected filesystem is btrfs the volume manager is not LVM. In that case the swap partition is not volume, it is a completely independent partition. So that we cannot add and additional volume for swap when swap is specified in the description file. This patch fixes #1301 and fulfills #1297 * Thu Dec 12 2019 marcus.schaefer@gmail.com - Fixed installation chapter in the documentation The chapter still outlines multipython support but we dropped support for python2 some time ago * Tue Dec 10 2019 marcus.schaefer@gmail.com - Bump version: 9.19.6 → 9.19.7 * Sun Dec 08 2019 marcus.schaefer@gmail.com - Fixed swap setup if btrfs is used In case of a volume manager the simplified variant of the device name is used in the fstab file to reference the swap device. However this is only correct for the lvm volume management but not for btrfs. In case of btrfs the swap space is not a subvolume but a real partition and thus the simplified device spec in fstab puts in the loop mapped device which is wrong. This patch fixes it * Fri Dec 06 2019 ngompa13@gmail.com - Exclude 'Recommends: kiwi-man-pages' for EL7 and older in the spec * Fri Dec 06 2019 marcus.schaefer@gmail.com - Fixed xz options syntax in default kiwi.yml xz options are passed as a string and splitted in code but not handled as yml list * Fri Dec 06 2019 marcus.schaefer@gmail.com - Fixed scope of kiwi-man-pages sub package The kiwi-man-pages package provided data that belongs to the main package, e.g the completion as well as the license information. In addition kiwi-man-pages should not be a requirement. * Fri Dec 06 2019 marcus.schaefer@gmail.com - Fixed result map for OEM pxe install The result map for OEM images with installpxe enabled contained a wrong file name. Thus the result bundler was not able to fetch the tarball * Thu Dec 05 2019 marcus.schaefer@gmail.com - Open image files in UTF-8 Post image build metadata like the packages file which are created from data produced by the package manager can contain multibyte characters and should be written into files opened with the UTF-8 encoding. The same applies to the image imported XML description. This Fixes #1290 * Wed Dec 04 2019 marcus.schaefer@gmail.com - Bump version: 9.19.5 → 9.19.6 * Wed Dec 04 2019 marcus.schaefer@gmail.com - Fixup package list for GCE integration test Package growpart-rootgrow does no longer exist. Will be replaced by a partgrow implementation * Wed Dec 04 2019 marcus.schaefer@gmail.com - Fixed root setup when building in OBS When building in an OBS worker no udevd is running which prevents grub2-mkconfig from finding the by-* device nodes and it puts the local loop device in which is wrong. Therefore the patching code used for overlay disk configurations also applies when building in an OBS worker environment. This Fixes #1287 * Mon Dec 02 2019 marcus.schaefer@gmail.com - Bump version: 9.19.4 → 9.19.5 * Fri Nov 29 2019 marcus.schaefer@gmail.com - Fixed setup of default grub config In /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT also contained the root= information. If grub2-mkconfig runs with that information it places the root device information twice because grub2-mkconfig resolves this information itself. This commit prevents the root= information to be placed in the default grub config and Fixes bsc#1156908 * Wed Nov 27 2019 marcus.schaefer@gmail.com - Lookup distribution specific grub font dir In addition to the generic grub font directory also lookup distribution specific font paths in the system and copy the grub unicode font into it. This Fixes #1253 * Wed Nov 27 2019 dcassany@suse.com - Do not rsync /dev on debootstrap This commit does not rsync /dev on debootstrap and instead it uses the bind mount for /dev the same way it is done for other non apt based bootstrap processes. * Wed Nov 27 2019 dcassany@suse.com - Add new root option in Path.which method This commit adds to Path utility a couple of methods to manipulate paths. One to rebase given paths to a new root and another one to trim the given root path. In addition a new option in Path.which is added to allow searches into chroot evironments. Fixes #1276 * Tue Nov 26 2019 dcassany@suse.com - Do not rsync kernel filesystems on debootstrap This commit ensures that /proc and /sys are not rsynched when debootstrapping an apt based image. Fixes #1270 * Tue Nov 26 2019 marcus.schaefer@gmail.com - Bump version: 9.19.3 → 9.19.4 * Tue Nov 26 2019 marcus.schaefer@gmail.com - Fixed condition to create swap partition The previous condition created the partition if swap is requested and no volume management is used. But this is wrong because if any other than the LVM volume management is used we want the swap space as partition. Only in case of LVM the swap space is a LVM volume. * Tue Nov 26 2019 marcus.schaefer@gmail.com - Bump version: 9.19.2 → 9.19.3 * Tue Nov 26 2019 marcus.schaefer@gmail.com - Fixed access to device map for fstab setup Swap is an optional element in the device map. Thus access to an element of that dictionary should not fail * Mon Nov 25 2019 marcus.schaefer@gmail.com - Bump version: 9.19.1 → 9.19.2 * Mon Nov 25 2019 marcus.schaefer@gmail.com - Fixed VolumeManager device map handling The former implementation builds a new device map which is a subset of the low level device map. However due to the additional swap partition the maps provided by the VolumeManager classes are now incomplete. Instead this commit changes the VolumeManager interface to receive the current low level device_map and merged device changes on top of it when needed. * Mon Nov 25 2019 marcus.schaefer@gmail.com - Bump version: 9.19.0 → 9.19.1 * Mon Nov 25 2019 marcus.schaefer@gmail.com - Fixed runtime checks on volume label setup Fixed the checks for check_volume_setup_defines_reserved_labels and check_volume_label_used_with_lvm. Both checks needs to skip on the kiwi internally created volume named LVSwap * Mon Nov 25 2019 marcus.schaefer@gmail.com - Delete superfluous .osc metadata from build tests Not sure how and why the .osc buildservice metadata was added to the git but it's for sure not needed * Mon Nov 25 2019 marcus.schaefer@gmail.com - Bump version: 9.18.35 → 9.19.0 * Mon Nov 25 2019 marcus.schaefer@gmail.com - Added check_volume_setup_defines_reserved_labels Check to prevent using reserved filesystem labels in LVM volume definitions * Thu Nov 21 2019 dcassany@suse.com - Include grub.cfg inside the efi partition This commit ensures the grub.cfg file is included within the vfat efi partition. This fixes #1271 and bsc#1157354 * Wed Nov 20 2019 marcus.schaefer@gmail.com - Fixed extending LVM volumes For extending the LVM volumes a resize prefix is set for each volume. If no extra prefix is needed it can happen that the former prefix setting is used which is wrong. The resize prefix must be reset for each new volume iteration * Wed Nov 20 2019 marcus.schaefer@gmail.com - Bump version: 9.18.34 → 9.18.35 * Tue Nov 19 2019 marcus.schaefer@gmail.com - Prevent swap partition to be the last one In an OEM deployment that requested the creation of a swap partition via <oem-swap> that swap partition was created at first boot and was always the last partition on the disk. This was required because it could not be placed before any other partition without destroying those partition contents. This process leaves the system in an inflexible condition if the storage device can change its geometry dynamicly as it's the case for SAN systems. The typical deployment target for OEM images are SAN storage clusters and it's cumbersome to resize the root partition if swap is last. This commit Fixes #1231 and changes the handling of swap if requested via <oem-swap> as follows: 1. The swap space is created as part of the image build process and no longer on first boot of the image via dracut code. This increases the size of the non compressed .raw disk image by the configured swap space size or the default. The compressed versions are not affected since zero initialized swap space compresses to almost no space. Deployment of the image however also deploys the swap partition which increases deployment time. For big swap configurations it's advisable to switch off image verification via oem-skip-verify. For very big swap configurations it's also recommended to prevent kiwi from adding them as part of the image and let them be created on first boot via a systemd service that e.g places a swap file, or creates a swap volume when possible such that the fexibility to resize the rootfs is still available. 2. The setup of the swap space is now explicit. It's no longer calculated by twice times RAM size because on newer machines this could lead to huge numbers. Either the kiwi encoded default swap size applies or the user configured value. 3. LVM based oem disks creates the swap space as logical volume. The volume is created as part of the image build process and no longer on first boot. The swap volume at build time of the image is of a minimal size and gets resized on first boot. 4. The move of the swap creation into the builder code also handles swap per configured device persistency schema like any other devices. This means by default swap is mounted via by-uuid name and thus also Fixes #1259 * Tue Nov 19 2019 marcus.schaefer@gmail.com - Fixed subsequent reboot of oem disk On a second reboot of an oem disk we check with gdisk's verification command if the disk needs to be resized. That command however mounts the disk in the background and therefore it's urgently required to mask the systemd rootfs service before. Otherwise systemd thinks this is evil and drops into a rescue shell * Tue Nov 19 2019 marcus.schaefer@gmail.com - Reference commit for SUSE maintenance This commit adds a reference to Issue #1261 and the report in bugzilla bsc#1157104 * Tue Nov 19 2019 marcus.schaefer@gmail.com - Bump version: 9.18.33 → 9.18.34 * Fri Nov 15 2019 dcassany@suse.com - Start using tftp system user package With this commit we start requiring tftp system user package. This user was created and managed by multiple packages before, with the risk of having inconsistent criteria on its defaults. Now there there a system user package so whatever package that requries this user should just require this package and do not create or modify the tftp user. Related with bsc#1143454 * Fri Nov 15 2019 dcassany@suse.com - Improve alias documentation in XML schema This commit aligns the documentation of the default repository alias with the current implementation. Fixes #1247 * Fri Nov 15 2019 marcus.schaefer@gmail.com - Bump version: 9.18.32 → 9.18.33 * Thu Nov 14 2019 marcus.schaefer@gmail.com - Fixed zipl bootloader config template The targetgeometry value is not allowed for SCSI and FBA mode. So far we handled only SCSI and failed on FBA mode. This commit fixes it * Thu Nov 14 2019 dcassany@suse.com - Allow use of relative paths for `dir:<path>` URIs This commit allows the use of relative paths for local URIs using the the following format: dir:<path> This is helpful to set in config.xml local URIs for repositories. Fixes #1261 * Thu Nov 14 2019 marcus.schaefer@gmail.com - Adapt test-image-oem integration test for s390 The test was originally designed to test for DASD 4k block storage. However the kpartx utility in the Leap15, TW code stream has issues mapping partitions if the loop device was setup using 4k sector size. So far we can't create images with 4k blocksize due to that issue. Thus the integration test is now adapted for an emulated DASD device in FBA mode which is not using 4k blocksize. Once the problem with kpartx is solved on s390 we will create another integration test to test 4k image builds * Thu Nov 14 2019 marcus.schaefer@gmail.com - Bump version: 9.18.31 → 9.18.32 * Thu Nov 14 2019 marcus.schaefer@gmail.com - Update s390 integration tests Added vmx build test to run in kvm on s390. Updated the existing oem build test to deploy on DASD. The concept of the network setup invented by kiwi for s390 does no longer apply and was also not used on the s390 distribution * Thu Nov 14 2019 marcus.schaefer@gmail.com - Fixed zipl bootloader setup for s390 images The preparation to call zipl and the call itself were wrong. For whatever reason the kernel image the initrd are moved to another location prior to calling zipl. That move broke the system because no kernel/initrd existed at the expected place anymore. In addition the zipl call itself was issued from a the wrong directory. Also no config file was written as an after effect of the refactoring in Issue #1194. This Fixes #1173 and bsc#1156694 * Wed Nov 13 2019 dcermak@suse.com - Document possible values for the name attribute of package This fixes #1260 Co-Authored-By: Thomas Schraitle <tom_schr@web.de> * Thu Nov 07 2019 marcus.schaefer@gmail.com - Bump version: 9.18.30 → 9.18.31 * Wed Nov 06 2019 dcassany@suse.com - Fix gitlab CI pipeline Ensure the gitlab CI includes make package for docs generation * Wed Nov 06 2019 dcassany@suse.com - Ensure grub.cfg is copied in EFI/BOOT folder This commit fixes the live images in efi mode. Grub configuration file is copied to the correct location in <boot_dir>/EFI/BOOT. Fixes bsc#1155815 * Thu Oct 31 2019 marcus.schaefer@gmail.com - Bump version: 9.18.29 → 9.18.30 * Thu Oct 31 2019 ro@suse.de - fix kernel module handling for xz compressed modules and firmware files to fix issue #1256 * Tue Oct 29 2019 marcus.schaefer@gmail.com - Bump version: 9.18.28 → 9.18.29 * Tue Oct 29 2019 marcus.schaefer@gmail.com - Update Host/Image support matrix Update documentation about the Host vs. Image support and compatibility matrix with regards to the SLES target. * Mon Oct 28 2019 marcus.schaefer@gmail.com - Add default /etc/kiwi.yml file Provide a comment only etc/kiwi.yml file that contains all parameters we support so far including a short description This Fixes #1232 * Mon Oct 28 2019 marcus.schaefer@gmail.com - Bump version: 9.18.27 → 9.18.28 * Fri Oct 25 2019 marcus.schaefer@gmail.com - Delete left over print statement from unit test * Fri Oct 25 2019 javierm@redhat.com - Enable BLS configuration if is supported Fedora now uses a BLS configuration by default, but this is not supported by all distributions. So check if is supported by the grub2-mkconfig tool and only enable the option if that's the case. Fixes: #1248 * Fri Oct 25 2019 marcus.schaefer@gmail.com - Bump Fedora x86 build test to Fedora30 * Fri Oct 25 2019 marcus.schaefer@gmail.com - Bump version: 9.18.26 → 9.18.27 * Thu Oct 24 2019 dcassany@suse.com - Fix btrfs_root_is_snapshot This commit makes sure the chrooted operations of over a loop device including btrfs subvolumes and root as an snapshot include the `/.snapshots` subvolume mount. This is necessary for certain operations that depend on the layout, e.g. grub configuration using `grub2-mkconfig`. * Thu Oct 24 2019 marcus.schaefer@gmail.com - Skip isolinux ui setup on serial terminal config If the attribute bootloader_console="serial" is set, the expectation that there is no graphics hardware available is valid. Thus the isolinux setup should not contain any ui configuration instructions because that leads to run the graphics initialization which blocks the system if not present. Please note the bootloader_console allows for multiple console configuration. In mixed setup the ui configuration still applies. This Fixes #1153 * Thu Oct 24 2019 marcus.schaefer@gmail.com - Added helper script to test status of test builds build_status fetches information from obs about the status of the integration test builds. It also allows an easy refresh of the tests regarding content changes on git when called with the refresh parameter: build_status refresh * Wed Oct 23 2019 marcus.schaefer@gmail.com - Update development documentation With the latest change to the logger kiwi can now be better used as an api in other python programs * Wed Oct 23 2019 marcus.schaefer@gmail.com - Fixed install_devel_packages helper Missing libffi and enchant devel packages. Also deleted trang since it's not provided by default in the distro and optional * Wed Oct 23 2019 marcus.schaefer@gmail.com - Bump version: 9.18.25 → 9.18.26 * Wed Oct 23 2019 marcus.schaefer@gmail.com - Update documentation Link paths to the integration tests has changed * Wed Oct 23 2019 marcus.schaefer@gmail.com - Fixed package list for arm test builds * Wed Oct 23 2019 marcus.schaefer@gmail.com - Move arm build tests to obsrepositories * Wed Oct 23 2019 marcus.schaefer@gmail.com - Move s390 build tests to obsrepositories * Wed Oct 23 2019 marcus.schaefer@gmail.com - Reorganize build tests We build images against different distributions. In order to do that in obs we should be able to handle one prj config per distribution. Thus the tests move from a flat tree to a distro structured tree here and in obs * Wed Oct 23 2019 marcus.schaefer@gmail.com - Move suse tests to obsrepositories Changes on the obs backend made this change necessary. The chain of process decisions is different if a repo is added to the prj config compared to if the repo is added to the kiwi XML file. It seems the preferred solution is the obs prj config and I'm tired running into problems again and again * Tue Oct 22 2019 dcassany@suse.com - Make home attribute optional on users definition This commit makes home attribute of users definition optional. This way the home directory is created according to the distribution defaults. Note that `-m` option is passed to user add, thus the home directory is requested to be created even without having an explicit home path defined. Fixes #1025 * Mon Oct 21 2019 marcus.schaefer@gmail.com - Refactor use of logging facility Use getLogger method instead of a global log object Also use caplog fixture to capture log messages in unit tests. This Fixes #1244 * Mon Oct 21 2019 marcus.schaefer@gmail.com - Version 2.29.24 fixes the pattern problem and avoids the recursion bug * Mon Oct 21 2019 marcus.schaefer@gmail.com - Fixed oem resize message and invokation The oem resize should only start if there is unallocated space on the disk available. If it starts the message in case of a not applicable resize should be more meaningful This commit addresses both issues and Fixes #1102 * Fri Oct 18 2019 marcus.schaefer@gmail.com - nothing provides yast2-registration With the move of the tests to the TW repo this package was no longer provided * Fri Oct 18 2019 marcus.schaefer@gmail.com - Deleted openSUSE-release-dvd from test images For whatever reason the Tumbleweed repo does not provide this package anymore * Fri Oct 18 2019 marcus.schaefer@gmail.com - Update integration tests OBS has changed the repo paths. openSUSE:Factory/snapshot is empty which resulted in any suse test to fail. This commit changes the repo to openSUSE:Tumbleweed/standard * Thu Oct 17 2019 marcus.schaefer@gmail.com - Bump version: 9.18.24 → 9.18.25 * Thu Oct 17 2019 marcus.schaefer@gmail.com - Fixed grub mkconfig call for read-only root In case of an overlay root system via overlayroot="true" all parts of the rootfs are read-only by squashfs except for the extra boot partition. However tools like grub's mkconfig creates temporary files at call time and therefore /tmp needs to be writable during the call time of the tools. Related to Issue #1194 * Thu Oct 17 2019 marcus.schaefer@gmail.com - Bump version: 9.18.23 → 9.18.24 * Thu Oct 17 2019 marcus.schaefer@gmail.com - Fixed method header of write_meta_data Interface class and implementation class has to use the same header definitions. * Thu Oct 17 2019 marcus.schaefer@gmail.com - Lookup grub mkconfig tool In the same way as we need to lookup the name for the mkimage tool we also have to lookup the name of the config tool. That's because distributions do not handle that consistently * Thu Oct 17 2019 marcus.schaefer@gmail.com - Bump version: 9.18.22 → 9.18.23 * Thu Oct 17 2019 marcus.schaefer@gmail.com - Fixed EFI path creation Only copy files to the EFI path on prior creation of that path * Thu Oct 17 2019 marcus.schaefer@gmail.com - Bump version: 9.18.21 → 9.18.22 * Thu Oct 17 2019 marcus.schaefer@gmail.com - Fixed fallback copy of grub config file For ISO images that are EFI bootable as well as for EFI secure boot configurations that are not based on shim-install kiwi provides a fallback code that copies the grub config file to the efi/efi-vendor boot path. This fallback code was broken because of the recent change to let grub2 mkconfig create the config file. The call of grub2 mkconfig happens at a later stage which required an adaption of the fallback mechanism. This is related to Issue #1194 * Thu Oct 17 2019 marcus.schaefer@gmail.com - Bump version: 9.18.20 → 9.18.21 * Thu Oct 17 2019 marcus.schaefer@gmail.com - Fixed use of config_file before assignment * Wed Oct 16 2019 marcus.schaefer@gmail.com - Bump version: 9.18.19 → 9.18.20 * Wed Oct 16 2019 dcassany@suse.com - Re-structure unit tests folders This commit relocates unit tests to a folder structure that matches the source code structure. Fixes #1128 * Wed Oct 16 2019 marcus.schaefer@gmail.com - Delete unused template data With the move to grub2 mkconfig some static template data became obsolete. This commit removes the unused data * Tue Oct 15 2019 marcus.schaefer@gmail.com - Adapted handling of initrd boot names Due to the change of using grub2-mkconfig the way custom kiwi initrd file names are handled doesn't work anymore. grub2-mkconfig is not able to cope with the names kiwi used when creating custom kiwi initrd's (initrd.vmx). Thus the same naming code as used for the dracut initrd system has to apply for the custom kiwi initrd code as well. This commit moves the name handling into the baseclass because the same naming schema now applies to both initrd systems. * Tue Oct 15 2019 marcus.schaefer@gmail.com - Fixed install image setup for kiwi initrd system If the kiwi initrd system is used the eltorito image was not found because searched in the wrong place * Mon Oct 14 2019 dcassany@suse.com - Change kiwi-ng-3 binary references to kiwi-ng This commit changes from kiwi-ng-3 or kiwi to kiwi-ng the console script used in command line examples. * Fri Oct 11 2019 dcassany@suse.com - Add INFO message for primary group This commit adds an INFO message if the primary group is set according to the groups attribute in description file. Fixes #1059 * Fri Oct 11 2019 dcassany@suse.com - Use kiwi-ng and kiwicompat as console_scripts This commit instead of installing kiwi-ng-3 and kiwicompat-3 as console_scripts it makes use of kiwi-ng and kiwicompat. Then all others are created as symlinks at rpm level in spec. Fixes #1226 * Thu Oct 10 2019 marcus.schaefer@gmail.com - Bump version: 9.18.18 → 9.18.19 * Tue Oct 08 2019 dcassany@suse.com - Upadate xml_parser autogenerated code This commit updates xml_parser.py autogenerated code using a newer generateDS version. The previous generateDS version is not properly handling the regular expressions of some element's content. Fixes #1217 * Tue Oct 08 2019 dcassany@suse.com - Remove universal flag kiwi is no longer an universal python module, since it does not support python 2 anymore. This will prevent to install future versions on python2 environments using pip. Related with #1226 * Fri Oct 04 2019 dcassany@suse.com - Refactor patch_open use in builder's tests This commit removes the use of @patch_open decorator in favor of directly patching 'builtins.open' and use mock.mock_open utility to mock the context manager. Related to #1128 * Fri Oct 04 2019 marcus.schaefer@gmail.com - Flexible use of linuxefi module Not all distributions provides the grub linuxefi module anymore. This means a static list for building an efi grub image if needed is no longer appropriate. This patch changes the module handling at the following places 1. Use linuxefi for building custom efi modules only if present on the host system 2. Use linuxefi related grub2-mkconfig variables only if the host grub2-mkconfig implementation supports it 3. Prevent building custom efi image on Fedora by extending the search path for the distro provided efi image and also adapt the spec file accordingly * Thu Oct 03 2019 dcassany@suse.com - Fix the sha256 generated file content This commit makes sure the generated sha256 file in a 'kiwi result bundle' call includes the filename with the correct extension. For compressed files it was omiting the suffix that included during the compression. Fixes #1223 and related to bsc#1139915 * Wed Oct 02 2019 marcus.schaefer@gmail.com - Fixed rpmdb compat link setup On older versions of zypper the path /var/lib/rpm was hardcoded and not used from the rpm macro definition. For such systems and to support them properly on hosts that have the rpm database already moved a compat link was created. However if the host has the rpm database at /var/lib/rpm the link doesn't make sense. This patch fixes this and therefore bsc#1150190 * Tue Oct 01 2019 marcus.schaefer@gmail.com - Complete dracut setup for luks boot An image that is configured with an encrypted root including /boot includes a /.root.keyfile in initrd to let dracut/systemd decrypt the root and mount it without asking the password. On rebuild of the initrd, dracut has no configuration that tells it to include the /.root.keyfile again. This patch adds that configuration and Fixes #1192 * Mon Sep 30 2019 marcus.schaefer@gmail.com - Follow up patch for SourceType info The message that display the selected source type was using the former metalink text which is wrong. This patch corrects the message and only display it if a sourcetype was specified * Mon Sep 30 2019 marcus.schaefer@gmail.com - Update contributing chapter Simplify the setup of a development environment and update the documentation appropriately * Mon Sep 30 2019 marcus.schaefer@gmail.com - Support specifying the source type of repos Repository source paths can be more than just a baseurl. There is also the opportunity to point to a metalink file or a mirrorlist. In both cases the packagemanager needs to know the type of this target. Therefore a new attribute called sourcetype exists which allows to specify the type the repo path uri is associated with. Currently the dnf repository class is the only one that makes use of the information. This change is required to support Fedora >= 30 images. I also expect this concept to be used by other distributions in the future * Mon Sep 30 2019 dcassany@suse.com - Using the correct Tumbleweed base image * Fri Sep 27 2019 marcus.schaefer@gmail.com - Refactor use of raises in unit tests Use raises as context manager instead of a method decorator. This clearly identifies which code part is expected to raise an exception. Related to Issue #1128 * Thu Sep 26 2019 marcus.schaefer@gmail.com - Refactor repository unit tests Refactor repository unit tests as described in Issue #1128 * Wed Sep 25 2019 marcus.schaefer@gmail.com - Bump version: 9.18.17 → 9.18.18 * Wed Sep 25 2019 marcus.schaefer@gmail.com - Fixed typo in message text Systen -> System * Wed Sep 25 2019 marcus.schaefer@gmail.com - Fixed return code validation of check_filesystem Usually the return code from the filesystem check tools is simple: Non zero exit code means an error occurred. However in case of the extX filesystem this does not apply. This commit documents the possible error conditions and supplies a tool specific check condition. This Fixes #1209 * Wed Sep 25 2019 marcus.schaefer@gmail.com - Update dracut caller options No need to pass the --force option and added --verbose option as it provides useful information in the image log file * Tue Sep 24 2019 marcus.schaefer@gmail.com - Fixed kiwi-live module setup The installation of the checkmedia tool is optional and and not mandatory. In addition activate the media check verification also through the upstream used rd.live.check kernel parameter. This is related to Issue #1158 * Mon Sep 23 2019 dcassany@suse.com - Update documentation to the PXE install file names * Mon Sep 23 2019 marcus.schaefer@gmail.com - Update kiwi live ISO chapter Compare overlay vs.dmsquash live ISO modules by their features to allow customers a proper selection of the module. This Fixes #1158 * Mon Sep 23 2019 dcassany@suse.com - Add information in PXE install files This commmit adds additional information for the image and pxeboot files that are part of the install tarball in OEM PXE deployments. This way all files inside the install tarball include the following pattern <image-name>.<arch>-<version> at the same time anyfile prefix and suffix remains unchanged. Fixes #1147 * Fri Sep 20 2019 marcus.schaefer@gmail.com - Bump version: 9.18.16 → 9.18.17 * Wed Sep 18 2019 dcassany@suse.com - Make kiwi-overlay module compatible with kiwi-repart This commit makes the modules provided by dracut-kiwi-overlay and dracut-kiwi-oem-repart compatible. The main idea of this commit is forcing the preparation of the overlay rootfs write partition after kiwi-repart gets into the play. Since kiwi-overlay mounts the write partitiontition it has to be executed after the kiwi-repart. For that instead of doing the job using an initqueue event added by a udev rule we just add the very same logic in pre-mount hook that happens after the kiwi-repart pre-mount hook thanks to lower priority. Fixes #1184 * Wed Sep 18 2019 49054986+lorenzen-b1@users.noreply.github.com - fix docu following schema: profile inheritance following the schema the "requires" element needs an attribute "profile" * Tue Sep 17 2019 marcus.schaefer@gmail.com - Use grub2-mkconfig for writing grub config Instead of creating a template based grub config file, use grub2-mkconfig to create the config file during the build process. This commit changes from config template to grub2 tooling for the disk based image types vmx and oem This Fixes #1194 * Tue Sep 17 2019 marcus.schaefer@gmail.com - Bump version: 9.18.15 → 9.18.16 * Tue Sep 17 2019 dcassany@suse.com - Fix modules omission for dracut based initrds This commit fixes a regression introduced in 07ea23a4. In OEM images the dracut modules were not properly omitted as the code was evaluating the wrong variable. Fixes #1201 * Fri Sep 13 2019 dcassany@suse.com - Fix GPT to MBR convertion This commit swaps the order of the command in gpt to mbr convertion in partitioner.gpt.set_mbr method. sgdisk by default converts the partition table from MBR to GPT in memory. The change is never applied unless you provide the -g option forcing to overwrite the partition table format. If sgdisk does the convertion in memory and the user does not provide the -g flag it returns an error code. The solution applied in this commit is to just run the GPT to MBR convertion as the last sgdisk command and change partition type before running the convertion. * Fri Sep 13 2019 marcus.schaefer@gmail.com - Bump version: 9.18.14 → 9.18.15 * Fri Sep 13 2019 30520224+jpwidera@users.noreply.github.com - Fixed user permission The comand was evaluated as chmod -c -R '...' . This is not the correct syntax. Removing quotation marks solved problem and Fixes #1191 * Thu Sep 12 2019 dcassany@suse.com - Clean up openstack packages * Thu Sep 12 2019 dcassany@suse.com - Fix unresolves for x86 integration tests nfsidmap package is no longer available in TW. It's been renamed to libnfsidmap1, moreover this is a package already required by nfs-client and similar packages. Thus gets installed in the modified image descriptions without having to list it, as it is already a dependency of another required package. * Thu Sep 12 2019 marcus.schaefer@gmail.com - Do not require multipath in dracut-kiwi-oem-dump Installation of multipath tools triggers storage devices to be handled as multipath maps in dracut. If the deployment happens in a non multipath system those devices do not exist and the system later hangs in the dracut initqueue waiting for mapper devices that never appears * Thu Sep 12 2019 jan.widera@posteo.de - Reverting partsthat are already implemented This problem is discussed in #1195 * Tue Sep 10 2019 jan.widera@posteo.de - Switched back to original root-device search * Tue Sep 10 2019 marcus.schaefer@gmail.com - Detect raid compound in root disk detection Make sure raid managed storage e.g fake raid is detected using the correct md device. Fixes #1181 * Tue Sep 10 2019 marcus.schaefer@gmail.com - Bump version: 9.18.13 → 9.18.14 * Fri Aug 30 2019 widera@helzel.com - Allows to list fake-raid partitions Solves problem in #1181 * Fri Aug 30 2019 dcassany@suse.com - Add the `-wildcards` flag in mksqashfs call This commit ensures the `-wildcards` flag of mksquashfs is being used. This is related to #1184 * Fri Aug 30 2019 dcassany@suse.com - Adding overlayroot integration test * Thu Aug 29 2019 marcus.schaefer@gmail.com - Bump version: 9.18.12 → 9.18.13 * Thu Aug 29 2019 marcus.schaefer@gmail.com - Add --add-bootstrap-packages option The prepare and build commands now allows to specify additional packages to be installed as part of the early bootstrap phase This Fixes #1151 * Wed Aug 28 2019 marcus.schaefer@gmail.com - Detect raid disks in oem dump module The current disk detection only takes lsblk entries into account that marks the device as 'disk'. However on raid disks like fake raid controllers the disk is mapped via dmraid and marked as 'raidX' device. This commit also takes those devices into account for deployment. Issue #1181 * Tue Aug 27 2019 marcus.schaefer@gmail.com - Fix return value of is_prepared method The method is expected to return a bool value. In fact it returned a list. An empty list is evalutated as False in python, a list with content as True. So the way the method is used is correct but the return value should be a real bool value to match the docs and expectations. Also the unit test for this code was wrong. This Fixes #1175 * Mon Aug 26 2019 marcus.schaefer@gmail.com - Update documentation regarding fstab adaptions * Mon Aug 26 2019 marcus.schaefer@gmail.com - Add support for custom fstab script extension In addition to fstab append and patch features we also allow an fstab.script file that is called chrooted. The change is needed to support overlay mounting of filesystems as part of the initrd. If system filesystems needs to be changed in a way that they can be used in an overlay mount, the standard mount entry has to take the x-initrd.mount capability which requires a modification of the fstab which is cumbersome to handle as a patch file. This concept is currently used as part of the MicroOS project in SUSE and is applied in the integration test build maintained for this target. This Fixes bsc#1129566 * Fri Aug 23 2019 ngompa13@gmail.com - Fix GitLab CI jobs for building on Fedora Mock is incorrectly using systemd sysusers now without a systemd dependency or working sysusers scriptlets. For now, manually create the mock group. In addition, let's go ahead and upgrade to a Fedora 30 chroot for the mock builds. * Fri Aug 23 2019 dcassany@suse.com - Avoid default installation of dracut kiwi modules With this commit dracut modules won't be installed by default in the initrd unless they are requested by the commandline calling dracut or by a dracut configuration file. Fixes bsc#1142899 bsc#1136444 Fixes #1103 * Fri Aug 23 2019 marcus.schaefer@gmail.com - Update live iso integration test build Our live iso test is setup for EFI. Since the switch to grub no isolinux will be used with the test. Thus there is no need to install the gfxboot branding package anymore * Thu Aug 22 2019 dcermak@suse.com - Stop inheriting from object This is no longer required in Python3 * Thu Aug 22 2019 dcassany@suse.com - Add crypt dependency to kiwi-lib dracut module This commit fixes the dependencies of the kiwi-lib dracut module to include crypt module required by kiwi-luks-lib.sh. In addition it also updates the check() section to return 255 instead of 0. In check section a return code of 0 means install it, 255 install only if required by another module, anything else, do not install. Related with bsc#1142899 * Wed Aug 21 2019 marcus.schaefer@gmail.com - Create ssh host keys for MicroOS test image * Wed Aug 21 2019 marcus.schaefer@gmail.com - Added network setup for MicroOS test build * Tue Aug 20 2019 schwab@suse.de - Add support for riscv64 * Tue Aug 20 2019 marcus.schaefer@gmail.com - Fixed conflict in integration build tests pkgconf-pkg-config conflicts with pkg-config on TW * Tue Aug 20 2019 marcus.schaefer@gmail.com - Bump version: 9.18.11 → 9.18.12 * Mon Aug 19 2019 marcus.schaefer@gmail.com - Added MicroOS integration test The future technologies team is implementing a coreOS derivate based on btrfs and some overlay technology. For supporting them some changes were required in kiwi and thus we should add an integration test build which makes use of this features. * Mon Aug 19 2019 marcus.schaefer@gmail.com - Add required cryptomount coding for EFI boot For non EFI boot grub2-install has code which gets activated through the GRUB_ENABLE_CRYPTODISK setting. However for the EFI boot case no installation of boot code is needed and therefore the grub earlyboot script has to run cryptomount * Mon Aug 19 2019 marcus.schaefer@gmail.com - Add /mnt to list of protected paths On recursive removal make sure /mnt belong to the protected elements. This Fixes #1170 * Mon Aug 19 2019 marcus.schaefer@gmail.com - Added full encrypted image build test * Fri Aug 16 2019 marcus.schaefer@gmail.com - Extended LUKS encryption support We supported luks encrypted images with the exception of the boot partition because grub was not able to read from an encrypted device at that time. Since some time grub is able to read from an encrypted partition and this commit add support for it. With this patch luks encrypted images will no longer create an extra boot partition and the entire system will be encrypted. The opening of the luks container happens on the grub level only once. Customers can still specify to use an unencrypted extra boot partition with the bootpartition="true" flag. In this case the opening of the luks containers happens on the systemd level as before. This is related to Issue #1162 * Thu Aug 15 2019 stefan.seyfried@sap.com - remove '-z' option from rsync local copy calls rsync's "compress" option just does not make any sense when rsync is used to copy files locally, it only increases CPU usage and slows down the process ;-) * Wed Aug 14 2019 marcus.schaefer@gmail.com - Delete SuSEfirewall2 from test builds The package seems to be no longer present on suse * Wed Aug 14 2019 marcus.schaefer@gmail.com - Bump version: 9.18.10 → 9.18.11 * Mon Aug 12 2019 marcus.schaefer@gmail.com - Allow dracut initrd to be used with pxe type The pxe image type builds a simple filesystem image plus a custom initrd. That initrd is usually build from the kiwi netboot image descriptions which implements a workflow to fetch the filesystem image and deploy it as rootfs for a pxe client. User who wants to implement their own handling of the rootfs image in e.g a custom dracut module were not able to build this image type because we did not allow the initrd_system attribute for the pxe type * Mon Aug 12 2019 marcus.schaefer@gmail.com - Use message variable for long message text * Mon Aug 12 2019 marcus.schaefer@gmail.com - Fixed handling of bool values in initrd code Some values evaluated in the initrd code are created in the kiwi builder and passed in as a profile file. bool values created by kiwi for use in shell scripts takes the string 'true' or 'false' or are not set at all if not specified in the kiwi XML description. Some code paths in the initrd code uses the '-n' switch to check for bool values, however if the string 'false' is passed '-n' will do the wrong thing. Therefore a method for the initrd code has been introduced to clearly handle bool values * Mon Aug 05 2019 dcassany@suse.com - Bump version: 9.18.9 → 9.18.10 * Fri Aug 02 2019 dcassany@suse.com - Align setup.py with the correct license * Fri Aug 02 2019 marcus.schaefer@gmail.com - Pass components to debootstrap call If repo components are specified the collective list of component names should be passed to the debootstrap call. This Fixes #1157 * Thu Aug 01 2019 marcus.schaefer@gmail.com - Update image name for s390 oem integration test Align image name to the schema we use for all other integration tests * Thu Aug 01 2019 marcus.schaefer@gmail.com - Fixed zipl bootloader setup targetgeometry not allowed for targettype SCSI * Fri Jul 26 2019 marcus.schaefer@gmail.com - Bump version: 9.18.8 → 9.18.9 * Fri Jul 26 2019 marcus.schaefer@gmail.com - Fixed left over import of six module The use of the six compat module was needed to support py2 With the drop of py2 support all of six was no longer needed. However this one was overlooked. * Fri Jul 26 2019 daniel.molkentin@suse.com - 99-kiwi-lib requires rmdir, install it Fixes bsc#1143033 * Thu Jul 25 2019 marcus.schaefer@gmail.com - Bump version: 9.18.7 → 9.18.8 * Wed Jul 24 2019 marcus.schaefer@gmail.com - Added multiconsole setup to Fedora build test * Tue Jul 23 2019 marcus.schaefer@gmail.com - Allow multiple values for grub terminal setup With regards to the grub documentation from https://www.gnu.org/software/grub/manual/grub/grub.html#terminal_005finput multiple terminal consoles can be active. This patch allows to specify terminal collection between serial, console and gfxterm This Fixes #1123 * Tue Jul 23 2019 marcus.schaefer@gmail.com - Bump version: 9.18.6 → 9.18.7 * Mon Jul 22 2019 marcus.schaefer@gmail.com - Fixed use of Command calls in destructors The Command class creates namedtuple to store the result of the call. That tuple is created inside of the Command namespace. If called inside of a __del__ destructor which is often the case in kiwi classes I recently observed an exception from python saying: File "/usr/lib64/python3.6/collections/__init__.py", line 429, in namedtuple File "<string>", line 1, in <module> ModuleNotFoundError: import of builtins halted; None in sys.modules I do not understand why this is a problem for python now and only found the solution in making the command_type variable a global namedtuple. * Mon Jul 22 2019 marcus.schaefer@gmail.com - Bump version: 9.18.5 → 9.18.6 * Sat Jul 20 2019 ngompa13@gmail.com - Fix the pyxattr dependency to allow kiwi to function Most Linux distributions offer the pyxattr module, including openSUSE Tumbleweed. Going forward, we will use the pyxattr module by default as a dependency and only switch back to the other xattr module when on older SUSE Linux distributions that lack the pyxattr module. Note that because kiwi uses setuptools to create the CLI entry points, kiwi checks the Python dependencies before executing, so we change the dependency in the setup.py accordingly so that it will not fail to start. * Fri Jul 19 2019 marcus.schaefer@gmail.com - Bump version: 9.18.4 → 9.18.5 * Fri Jul 19 2019 marcus.schaefer@gmail.com - Update spec file requirements for xattr On suse systems the python-xattr module is used. On any other distribution the python-pyxattr module is used. This commit modifies the spec file to reflect the Requires tag appropriately. On CentOS there is currently no pyxattr build available. Thus we provide that package for this target in the KIWI Staging area at Virtualization:Appliances:Staging. There is an ongoing effort to bring pyxattr to EPEL which would make it available on CentOS and would obsolete the custom build we did. * Fri Jul 19 2019 marcus.schaefer@gmail.com - Bump version: 9.18.3 → 9.18.4 * Fri Jul 19 2019 marcus.schaefer@gmail.com - Update PXE integration test Move to multibuild, build one standard(uncompressed) filesystem image and one compressed version. In any case we expect only one compression process either on the filesystem file or on the archive creation. This is related to Issue #1039 * Fri Jul 19 2019 dcassany@suse.com - Do not recompress PXE image if compressed flag is true This commit is two fold: * Refactor PXE builder to make use of the ArchiveTar instead of directly calling tar command. * Do not compress PXE tarball if the contained image is already compressed according the type's compressed attribute. Related to #1039 * Fri Jul 19 2019 marcus.schaefer@gmail.com - Fixed use of FileSystemBuilder class This was a broken coding for the construction of a FileSystemBuilder instance in the PxeBuilder implementation. The unit testing did not fail due to mocking code. Integration testing however showed it immediately * Thu Jul 18 2019 marcus.schaefer@gmail.com - Added support for fscreateoptions attribute Along with the fsmountoptions attribute there is now also the fscreateoptions attribute which allows to control the options used for creating the filesystem. Please note, it's not kiwi's task to validate that the given option string is supported by the selected filesystem. This means providing wrong values here will cause the build to fail at the time the filesystem gets created. This Fixes #1109 * Wed Jul 17 2019 dcassany@suse.com - Do not compress the install tarball archive Most of the components of the *.install.tar.xz file of a PXE install image are already compressed, thus it doesn't make much sense to recompress them again. Fixes #1032 * Tue Jul 16 2019 dcermak@suse.com - virtual_size must be an integer in metadata.json for libvirt vagrant boxes vagrant-libvirt expects that the parameter virtual_size from metadata.json is an integer and not a string. Supplying a string results in a backtrace when the user provides a different value for libvirt.machine_virtual_size (as the integer is then compared to string). * Tue Jul 16 2019 marcus.schaefer@gmail.com - Bump version: 9.18.2 → 9.18.3 * Mon Jul 15 2019 marcus.schaefer@gmail.com - Fixed ISO creation in EFI mode with cdrtools The changes introduced in #1113 will use the configured bootloader e.g grub to boot the ISO image in BIOS and EFI mode. The creation process works flawlessly if xorriso is used. However if cdrtools are configured the options passed to e.g mkisofs were wrong. In addition it's not possible to create a hybrid ISO based on isohybrid if the loader is not isolinux. If cdrtools are in use the process to make an ISO hybrid bootable is always based on isohybrid and thus only works with isolinux. This patch also covers this case with a warning message and the consequence that we have to skip the hybrid setup in this case. * Mon Jul 15 2019 marcus.schaefer@gmail.com - Fixed setup of bootloader files The BootLoaderConfig class interface writes several files e.g etc/sysconfig/bootloader, boot/grub2/grub.cfg and more. Depending on the image type some of those files belongs into the root directory and some belongs into the boot directory. For standard images both locations points to the same master root entry point. However for special types like live systems the root tree and the boot tree are different targets. For example live root filesystems are a squashfs compressed image file whereas the plain booting information lives outside. Because of that this patch introduces a refactoring of the BootLoaderConfig class to allow to distinguish between root_dir and boot_dir paths. In addition the live image builder makes use of the new concept and thus Fixes #1112 * Fri Jul 12 2019 dcassany@suse.com - Do not create a new machine-id file This commit ensures KIWI is not creating a new machine-id empty file in case it was not provided during the system installation. Fixes bsc#1141168 * Fri Jul 12 2019 marcus.schaefer@gmail.com - Bump version: 9.18.1 → 9.18.2 * Fri Jul 12 2019 marcus.schaefer@gmail.com - Update documentation references The kiwi project has been moved into its own upstream organisation named OSInside. Due to the move some doc and README references needs to be adapted * Fri Jul 12 2019 marcus.schaefer@gmail.com - Bump version: 9.18.0 → 9.18.1 * Thu Jul 11 2019 marcus.schaefer@gmail.com - Fixed spec for use with Recommends The Recommends tag is not known by CentOS/RHEL < v8 * Thu Jul 11 2019 marcus.schaefer@gmail.com - Bump version: 9.17.42 → 9.18.0 * Wed Jul 10 2019 marcus.schaefer@gmail.com - Update documentation The kiwi-descriptions repository has been moved into the OSInside organisation * Wed Jul 10 2019 marcus.schaefer@gmail.com - drop py2 variant of kiwi from completion * Wed Jul 10 2019 ngompa13@gmail.com - Simplify packaging and re-add support for building for CentOS 7 * Tue Jul 09 2019 dcermak@suse.com - Don't add config.vm.base_mac to libvirt vagrant boxes - Refactor VagrantConfigTemplate to no longer require a base_mac by default - Move _random_mac() to Virtualbox subclass - Include config.vm.base_mac in Virtualbox boxes via get_additional_vagrant_config_settings() This fixes #1119 * Mon Jul 08 2019 marcus.schaefer@gmail.com - Bump version: 9.17.41 → 9.17.42 * Mon Jul 08 2019 marcus.schaefer@gmail.com - Fixed get_persistent_device_from_unix_node The method get_persistent_device_from_unix_node takes a device path and looks up it's basename to be present as persistent variant below the given schema, e.g by-id. However if the method receives an already persistent device path e.g from /dev/mapper the persistent schema representation will only match a numbered dm-N device and not the map name. The method then returns nothing but should return the original device path. This caused bad after effects like reported in Issue SUSE-Enceladus/azure-li-services#163 * Sun Jul 07 2019 marcus.schaefer@gmail.com - Drop support for python2 Python2 is announced to be unmaintained from Jan 2020. KIWI supports Python 2.7 and it should not support any python version that is not maintained upstream. This Fixes #1036 * Fri Jul 05 2019 dcermak@suse.com - [doc] Add user documentation about the usage of the embedded Vagrantfile - Document the usage of the `vagrantconfig.embedded_vagrantfile` attribute - Remove the suggestion to generate the ssh keys during image creation (this results in **all** boxes having the same ssh host keys, which is pretty dangerous if someone would use a vagrant box in a production environment.) - Stop recommending veewee, this project is dead - Replace forgotten hard coded number with {schema_version} * Thu Jul 04 2019 dcermak@suse.com - Fix test breakage when /etc/kiwi.yml is present The unit test for the RuntimeConfig class are also testing the default values in some functions. To work around a possibly existing ~/.config/kiwi/config.yml, several functions change the value of HOME. This is unfortunately not sufficient if a /etc/kiwi.yml exists, as that one is taken as a fallback *if* ~/.config/kiwi/config.yml isn't present. This issue is fixed by creating a default_runtime_config with os.path.exists patched to return False. Thereby none of the runtime configuration files will be taken into account. * Thu Jul 04 2019 dcermak@suse.com - Add embedded_vagrantfile attribute to vagrantconfig This element allows the user to specify a relative path to an alternative Vagrantfile that will be embedded inside the finished Vagrant box. - update XML schema - add additional logic to DiskFormatVagrantBase.create_image_format - add unit test for the custom Vagrantfile - fix other vagrant unit tests * Thu Jul 04 2019 marcus.schaefer@gmail.com - Bump version: 9.17.40 → 9.17.41 * Wed Jul 03 2019 marcus.schaefer@gmail.com - Update Boot From Hard Disk method Instead of searching for an efi binary to boot, use the exit method that exits from grub and let the firmware choose the next entry in the device list * Wed Jul 03 2019 nadvornik@suse.cz - Do not crash on missing HOME * Tue Jul 02 2019 marcus.schaefer@gmail.com - Added live ISO integration tests for arm * Tue Jul 02 2019 marcus.schaefer@gmail.com - Consolidate syslinux file names and search paths Handle those file names and search path in the Defaults space and only once in the code * Tue Jul 02 2019 guillaume.gardet@free.fr - Remove '^' which break BaseStripFirmware function (boo#1132455) * Mon Jul 01 2019 dcassany@suse.com - Do not supress output for dracut call This commit adds a stderr_to_stdout option to Command.run method to redirect stderr to stdout. Additionally this commit also includes to the debug log the dracut call output, including both, stderr and stdout. Fixes #1114 * Mon Jul 01 2019 marcus.schaefer@gmail.com - Fixed path_test unit test The code there checked for the message of an exception but recent changes in pytest did not allow to do it that way anymore. * Mon Jul 01 2019 marcus.schaefer@gmail.com - Fixed zipl bootloader setup On zipl we manually move the kernel and initrd file to the zipl boot path because symlinks can't be read. That move operation used the wrong filenames and was broken since baseCreateCommonKernelFile is only used in the legacy custom kiwi boot images but not in the dracut case. * Fri Jun 28 2019 dcassany@suse.com - Adding support for Pacman package manager This commit adds support for pacman package manager and, in consequence, support for Arch Linux images. It also adds the package definition for Arch Linux. * Fri Jun 28 2019 marcus.schaefer@gmail.com - update per review by Tom * Thu Jun 27 2019 marcus.schaefer@gmail.com - Fixed spec file requirement list for arm on Fedora The package u-boot-tools is named uboot-tools on Fedora and RHEL * Thu Jun 27 2019 marcus.schaefer@gmail.com - Update secure boot fallback code With the concept of shim being an option and not mandatory also the fallback code has to adapt and treat the absence of shim.efi as not fatal. In this situation we expect the found grub.efi binary to be correctly signed which we can only assume but not prove * Thu Jun 27 2019 marcus.schaefer@gmail.com - Make signed grub search path more generic * Wed Jun 26 2019 marcus.schaefer@gmail.com - Update distribution support information Update the documentation with regards to our supported distribution statement. This Fixes #1108 * Wed Jun 26 2019 marcus.schaefer@gmail.com - Update signed grub.efi search path list On arm there is no shim package that provides a signed grub loader for secure boot. Instead the grub package(s) provides the signed loader under yet another location in the system. This commit adds the new search path * Wed Jun 26 2019 marcus.schaefer@gmail.com - Refactor ISO boot, use grub in EFI mode Before this commit isolinux was used to boot an ISO and thus forms a hard requirement. isolinux however only exists for the x86 platform. This limitation did not allow to create ISO images for other platforms. With this commit a refactoring of the ISO boot setup is introduced. * isolinux is only used if the bios firmware is requested and the platform matches the x86 architecture. A runtime check will check for this condition and exits early if not applicable * in case of the EFI firmware we already used grub in EFI mode but still had isolinux in place for the legacy/CSM boot. That part is now also replaced by a platform specific grub eltorito image and grub's boot_hybrid.img for hybrid boot. On platforms that do not provide those modules the support for it will be skipped With this change in place it's possible to control the ISO boot layout through the firmware setup and all platform specific modules are handled as such. Therefore we also deleted the syslinux requirement. This Fixes #1092 * Tue Jun 25 2019 dcassany@suse.com - Fix memory leak in OCI contianer tests This commit fixes a memory leak in container_image_oci_test caused by partially mocking a file opening. A ContainerImageOci instance tries to open and read two files: the runtime configuration, if present, and the `/.buildenv`, if present. In order to test the `/.buildenv` presence file opening is mocked causing the runtime configuration reading fall in an inifite loop. This commit mocks the the RuntimeConfig instances to avoid this issue. Fixes #1110 * Mon Jun 17 2019 marcus.schaefer@gmail.com - Stabilize Gitlab rpm stage The rpm stage in the gitlab CI pipeline runs against a collection of mirror services. If those mirrors are not available the test fails. Such failed tests are cumbersome because they don't indicate an error condition we can/should fix. The openSUSE TW mirrors showed to be unreachable more often than others which might be because that target changes their content relatively often. This patch changes the test strategy to allow the TW rpm test to fail but still keep the other rpm targets mandatory as they don't show the connection problems. * Fri Jun 14 2019 marcus.schaefer@gmail.com - Provider better error message in prepare phase In case of an error the real valuable information is often somewhere in the package manager output that does not get exposed to the users console by default. The error message we provide should tell users how they can get further details such that they know how to find the real cause of the problem. This patch enhances the error message in that regard. * Tue Jun 11 2019 dcassany@suse.com - Make kiwi installable in a venv This commit sets the buildroot to the venv `sys.prefix`. This way all the binaries are installed in a path under the venv. Fixes #1022 * Fri Jun 07 2019 marcus.schaefer@gmail.com - Bump version: 9.17.39 → 9.17.40 * Wed Jun 05 2019 marcus.schaefer@gmail.com - Decrease the default min partition size The default 50M as min size for a partition could be set to a smaller value. For now 10MB seems to be enough for the overhead calculation and leads to more accurate results on the specified size constraints * Mon May 27 2019 marcus.schaefer@gmail.com - Update documentation for consistency Instead of hard coded names for example images and their versions a prolog map including placeholders has been added. * Fri May 24 2019 marcus.schaefer@gmail.com - Bump version: 9.17.38 → 9.17.39 * Thu May 23 2019 marcus.schaefer@gmail.com - Update obs docs per review by Tom * Wed May 22 2019 dcassany@suse.de - Disable check-valid-until with repository_gpgcheck This commit is two fold: * From one side fixes a wrong use of the `trusted` option for apt repositories. `trusted=no` does not force to run the gpg checks it just forces the repository to be considered untrusted regardless the result of the security checks. * From the other side it disables the option `check-valid-until` in case gpg checks are disabled using the `repository_gpgcheck`. It works at repository level. This enables using unmaintained or expired repositories for the build. Fixes #1028 * Fri May 17 2019 toms@suse.de - Simplify shell pipe expression with shell builtin Replace "echo $var | sed ..." expression with ${var//SEARCH/REPLACE} shell builtin as suggested by Codacy * Thu May 16 2019 marcus.schaefer@gmail.com - Fixed runtime checker message The output of check_image_include_repos_publicly_resolvable was not well formatted and was also using an object address that is not useful for users * Wed May 15 2019 marcus.schaefer@gmail.com - Make mediacheck runtime check arch independent The check_mediacheck_only_for_x86_arch runtime check fails on non x86 architectures but the tagmedia toolchain exists independent of the platform architecture. This Fixes #1091 * Tue May 14 2019 marcus.schaefer@gmail.com - Set home as protected path Along with adding home to the protection list, cleanup the prepare instance cleanup code in a way that it only runs if a root_bind object exists which needs to call its cleanup path * Mon May 13 2019 dcermak@suse.com - Extend docs about building multiple profiles on OBS * Fri May 10 2019 dcermak@suse.com - Remove FIXME from the runtime configuration file example * Thu May 09 2019 dcermak@suse.com - Improve the documentation about building in the Build Service Co-Authored-By: Thomas Schraitle <tom_schr@web.de> * Thu May 09 2019 dcermak@suse.com - Turn sphinx warnings into errors Modify the sphinx Makefile to treat warnings like undefined references as errors * Wed May 08 2019 aplanas@gmail.com - kiwi-live-lib: mount live ISO as read-only During the boot process of a live image, dracut shows this WARNING: dracut-initqueue: mount: /run/initramfs/live: WARNING: device write-protected, mounted read-only This is not a problem, as the live ISO image is, indeed, read-only. This patch fix this cosmetic issue being explicit in the mount options in `mountIso` function. * Tue May 07 2019 marcus.schaefer@gmail.com - Call isolinux-config only on supported archs * Mon May 06 2019 dcassany@suse.de - Discard default dependencies for sysroot.mount This commit makes default dependencies from sysroot.mount to be explicitly omitted. This fixes potential inconsistencies in ordering pre-mount.service with local-fs.target. This change is also applied to upstream sysroot.mount generator here: https://github.com/systemd/systemd/pull/12281 Fixes #1015 * Fri May 03 2019 dcassany@suse.de - Fix locale setting For pre-Leap 15 openSUSE versions KIWI >= 9.12.0 was not completely setting locale, as it was missingto set the RC_LANG variable from `/etc/sysconfig/language` file. Current commit enforces to update locale in `/etc/sysconfig/language` (if the file exists) at the same time it applies systemd-firstboot configurations. Fixes #1081 * Thu May 02 2019 dcermak@suse.com - Cleanup TODO & FIXME from xml_description.rst * Fri Apr 26 2019 dcermak@suse.com - Add GitLab CI pipeline badge to README.rst * Fri Apr 26 2019 dcermak@suse.com - Extend the development documentation Co-Authored-By: Thomas Schraitle <tom_schr@web.de> * Fri Apr 26 2019 dcermak@suse.com - Log thrown exceptions in Compress.get_format() * Fri Apr 26 2019 dcermak@suse.com - Fix documentation of Compress.get_format() * Fri Apr 26 2019 dcermak@suse.com - log exception in SystemPrepare.__del__ * Fri Apr 26 2019 dcermak@suse.com - Use yaml.safe_load instead of yaml.load yaml.load is relatively dangerous when the loaded data comes from untrusted sources, as it can allow for arbitrary code execution, see: https://pyyaml.org/wiki/PyYAMLDocumentation#LoadingYAML safe_load limits the created python objects to the basic Python types like integers and strings, which is all that we need for the runtime configuration file. * Thu Apr 25 2019 marcus.schaefer@gmail.com - Fixing doc source for broken refs and xml syntax * Wed Apr 24 2019 dcermak@suse.com - Document the usage of profiles via the CLI and OBS * Wed Apr 24 2019 tomschr@users.noreply.github.com - Apply suggestions from @tomschr Co-Authored-By: dcermak <45594031+dcermak@users.noreply.github.com> * Wed Apr 24 2019 dcermak@suse.com - Improve the documentation of the runtime configuration file Co-Authored-By: Thomas Schraitle <tom_schr@web.de> * Wed Apr 24 2019 tomschr@users.noreply.github.com - Apply suggestions from @tomschr Co-Authored-By: dcermak <45594031+dcermak@users.noreply.github.com> * Wed Apr 24 2019 dcermak@suse.com - Extend the documentation of Custom Disk Volumes * Wed Apr 24 2019 dcermak@suse.com - Add documentation of the XML schema in a tutorial like fashion Co-Authored-By: Thomas Schraitle <tom_schr@web.de> * Wed Apr 24 2019 dcermak@suse.com - Add documentation how to configure VMX build types * Tue Apr 23 2019 dcermak@suse.com - Cleanup warnings in utils/size.py - use a raw string for the regexp search string - improve the readability of the returned value * Tue Apr 23 2019 dcermak@suse.com - Make the user.password attribute mandatory Not providing a user password results in an error when usermod or openssl is later called by kiwi (depending on the value of `pwdformat`). This fixes #1061. * Tue Apr 23 2019 marcus.schaefer@gmail.com - Fixed repo setup for cloud integration test builds Using the devel:languages:python repos leads to inconsistencies on the module dependencies * Mon Apr 22 2019 marcus.schaefer@gmail.com - Bump version: 9.17.37 → 9.17.38 * Mon Apr 22 2019 marcus.schaefer@gmail.com - Delete obsolete repository types Deleted red-carpet, slack-site, up2date-mirrors, urpmi and yast2 from the allowed values list of the repository type attribute. This Fixes #1029 * Mon Apr 22 2019 marcus.schaefer@gmail.com - Fixed build_in_buildservice stale references Fixed style issues reported on sphinx build. Also deleted pointers to non existing references * Mon Apr 22 2019 marcus.schaefer@gmail.com - Delete suseRemovePackagesMarkedForDeletion Any package removal is controlled by kiwi itself. There is no need to provide a shell helper method that is rpm specific. This Fixes #1054 * Thu Apr 18 2019 dirk@dmllr.de - Preserve licenses/other txt files by baseStripFirmware (bsc#1132455) (Fixes #1063) LICENSES are usually not large and should be kept alongside of the binaries. Also some firmware files sideload additional txt files (like for example brcmfmac43430 needs the sdio description txt files). We should just always include them because they're not listed as needed files. Co-Authored-By: Dan Čermák <dcermak@suse.com> * Tue Apr 16 2019 dcermak@suse.com - Split overview/workflow.rst into multiple files Co-Authored-By: Thomas Schraitle <tom_schr@web.de> * Tue Apr 16 2019 tomschr@users.noreply.github.com - Update doc/source/building/build_in_buildservice.rst Co-Authored-By: dcermak <45594031+dcermak@users.noreply.github.com> * Mon Apr 15 2019 dcermak@suse.com - Rework documentation about building on OBS * Mon Apr 15 2019 marcus.schaefer@gmail.com - Added integration test guest image for OpenStack * Sun Apr 14 2019 marcus.schaefer@gmail.com - Update suse integration tests per Factory changes The way plymouth themes are provided has changed on suse. The package plymouth-branding-openSUSE is no longer providing the theme named openSUSE. In fact the plan is to switch to the upstream bgrt theme which is provided in another package. This commit adapts to the changes in the distribution * Fri Apr 12 2019 dcermak@suse.com - Bump copyright year in the docs * Thu Apr 11 2019 dcermak@suse.com - Fix spelling in kiwi.rnc * Thu Apr 11 2019 marcus.schaefer@gmail.com - Bump version: 9.17.36 → 9.17.37 * Wed Apr 10 2019 marcus.schaefer@gmail.com - Fix rpm metadata creation There are rpm versions that require access to /dev and fail with the error message 'Failed to initialize NSS library' For details see: https://bugs.centos.org/view.php?id=14767 Due to the rpm location checkup fix from Issue #1037 this change impacts builds for distributions that uses an rpm version with the above behavior (e.g CentOS) and fails as consequence of the rpm call error. This commit fixes this in a way that we make sure the host /dev is available at the time of the call. * Wed Apr 10 2019 marcus.schaefer@gmail.com - Bump version: 9.17.35 → 9.17.36 * Wed Apr 10 2019 dcassany@suse.de - Fix xml syntax on documentation example * Wed Apr 10 2019 dcassany@suse.de - Add custom curl options docs * Tue Apr 09 2019 marcus.schaefer@gmail.com - Refactor handling of runtime tests check dict Consolidate check list into CliTask base class such that we can avoid duplication of runtime check dicts. Only runtime tests that require stateful information according to the commandline call are handled directly in the task code * Tue Apr 09 2019 marcus.schaefer@gmail.com - Delete check_grub_efi_installed_for_efi_firmware The motivation is nice to check if the required grub module package is part of the package list if the efi firmware is requested, but as long as there is no distribution wide standard for packaging grub this check will cause more trouble than it is of help. Currently it failed for the arm architecture and the grub2-arm64-efi package. We decided to prevent checking against static lists and dropped this runtime check. Missing grub modules will be recognized at the grub stage when we search for them. * Tue Apr 09 2019 dcassany@suse.de - Adding custom curl options for dracut-kiwi-lib module This commit parses the `rd.kiwi.install.pxe.curl_options` argument from the kernel command line to read and use curl options for the `fetch_file` function of `kiwi-net-lib.sh` utility. Options are passed as comma separated values. Fixes #891 * Mon Apr 08 2019 dcassany@suse.de - Update bootstrap macro management This commit extends the bootstrap macro management to also consider the case where image was already bootstrap. Note this is a common case for building derived container images and also the situation when `--allow-existing-root` flag is in use. * Fri Apr 05 2019 marcus.schaefer@gmail.com - Auto upgrade all image descriptions to v7.0 schema * Fri Apr 05 2019 marcus.schaefer@gmail.com - Deleted pxedeploy section There is no further demand in the client config creation for the legacy netboot code. Customers using the netboot initrd already create the client config.<MAC> file manually or through another system. With the next generation kiwi we also recommend the disk based network deployment using the dracut capabilities and marked the netboot code as still supported but on the legacy stream. Along with the deletion in the schema the following changes were also done: * Deleted use of pxedeploy section in implementation * Increase schema version to v7.0 * Update documentation on schema version update * Added xsl stylesheet conversion from v6.9 to v7.0 Automatic schema version upgrade from v6.9 to v7.0 deletes the pxedeploy section from any type specification This Fixes #19 * Thu Apr 04 2019 dcassany@suse.de - Fix filesystem labels If multiple volumes were defined they were not properly labeled. This commit fixes a miss use of custom_args dictonary by the filesystem base class. This class was modifying the given custom_args that is passed by reference, thus modifiyng the custom_args instance of the caller. This issue was causing to propagate the modified create_options of a filesystem across all the volumes, causing all volumes to be labelled as ROOT. With this commit Filesystem class performs a deepcopy of the custom_args dictionary to limit the scope of any change inside each Filesystem instance. Fixes #1044 * Thu Apr 04 2019 dcassany@suse.de - Bump version: 9.17.34 → 9.17.35 * Wed Apr 03 2019 dcassany@suse.de - Fix regression on kiwi-repart dracut module There was a regression introduced in #1035 (048b5c3e). We mask systemd-fsck-root.service during the repart, but we are not always unmasking it. If the repart is not possible the service is masked but not unmasked, which causes the boot to fail. With this commit after masking the fsck service we trap EXIT and run the unmask command on script exit. This way we ensure the unmask command is always executed. * Tue Apr 02 2019 marcus.schaefer@gmail.com - Doc fix for lex literal_block as xml * Mon Apr 01 2019 marcus.schaefer@gmail.com - Update compression flag for qcow2 format In case of a qcow2 format we store the result uncompressed Since the format conversion only takes the real bytes into account such that the sparseness of the raw disk will not result in the output format and can be taken one by one This Fixes bsc#1128146 In addition the commit includes a refactoring for the evaluation of the compress flag in the runtime config. Instead of the global overwrite, the flag gets evaluated individually at the time the result metadata is created * Mon Apr 01 2019 dcassany@suse.de - Add the possibility to disable runtime checks This commit adds runtime configuration parameters to disable the runtime checks. This is specially handy if someone does not want to use the kiwi dracut modules and provide custom ones instead. In orde disable some runtime check consider a runtime config yaml like: runtime_checks: - disable: - check_dracut_module_for_oem_install_in_package_list - check_dracut_module_for_live_iso_in_package_list This commit fixes #893 * Mon Apr 01 2019 marcus.schaefer@gmail.com - Fixup has_rpm method from RpmDataBase class The method checked for the presence of /usr/bin/rpm. But that binary is also provided by another toolkit named busybox. Thus to check if the rpm we are aiming for is present the check has been modified to look for /usr/bin/rpmdb which is exclusively provided by rpm only. This Fixes #1037 * Sun Mar 31 2019 marcus.schaefer@gmail.com - Fixed creation of image metadata files At the end of a build process the metadata information files .packages and .verified are created. On rpm based systems, rpm is invoked as chrooted operation inside the new root tree. For images that gets installed exclusively from the bootstrap phase there is no rpm inside of the image and the call fails. The result are empty metadata files. This patch prevents calling rpm inside of the image root tree if it's not installed and also uses the RpmDataBase interface instead of directly calling rpm. This Fixes #1037 * Fri Mar 29 2019 marcus.schaefer@gmail.com - Bump version: 9.17.33 → 9.17.34 * Fri Mar 29 2019 stefan.seyfried@sap.com - kiwi-repart: avoid race between repart and fsck See issue #1034, this fixes non-booting CentOS-7 OEM images that fail during repartition / FS resize. Summary: all parted actions trigger a rescan of partition tables and this repeatedly starts / stops systemd-fsck-root.service until it finally fails. The workaround is to mask systemd-fsck-root.service during repartitioning / FS resize. * Fri Mar 29 2019 marcus.schaefer@gmail.com - Update travis doc building target Disable doc test on travis, we have this in the gitlab-ci pipeline. * Fri Mar 29 2019 marcus.schaefer@gmail.com - Move sphinx config to python3 Disable modules that have not been ported to sphinx 2.0 API * Fri Mar 29 2019 marcus.schaefer@gmail.com - Disable linkcheck/spellcheck The spellcheck plugin has not been moved to the sphinx 2.0 API and there are tons of spelling mistakes reported due to the use of technical terms that are unknown to spellcheck. Also disabled the linkcheck because it just stands more in our way than it reports issues that needs to be fixed. * Thu Mar 28 2019 marcus.schaefer@gmail.com - Bump version: 9.17.32 → 9.17.33 * Thu Mar 28 2019 marcus.schaefer@gmail.com - Added integration test for bootstrap only builds * Thu Mar 28 2019 marcus.schaefer@gmail.com - Fixed bootstrap only building Image descriptions that define packages in the bootstrap section only don't need a package manager inside of the image. However the code to update the location of the rpm database did not check the presence of rpm and failed on such image descriptions. This Fixes #1030 * Tue Mar 26 2019 dcermak@suse.com - Extend live ISO documentation * Tue Mar 26 2019 aplanas@gmail.com - Replace @staticmethod with @classmethod when needed @classmethod are used in Python to represent methods that can query and update the class (cls parameter). Is expected to be used for metaprograming, or advanced techniques that require the access to the class itself, before we have an instance. @staticmethod are used to associate a function to a class. It will not be have access to the instance (self) not the class (cls). In other programming languages are known as class methods. This patch replace all the @classmethod with @staticmethod when there is not need to access to the cls parameter, because the intention is to be used as normal functions. * Mon Mar 25 2019 dcermak@suse.com - Minor improvements to the documentation - add a newline to the workflow's abstract - add warning to installation via the distro's package manager - fix package name of git - add marker for `Installation from OBS` section * Mon Mar 25 2019 dcermak@suse.com - Add intersphinx extension to the docs * Mon Mar 25 2019 dcermak@suse.com - New method: Path.access - thin wrapper arround os.access This function calls os.access, but first checks whether the input parameters are sane, instead of simply returning false when the file in question does not exist or an invalid mode was specified. * Mon Mar 25 2019 marcus.schaefer@gmail.com - Added doc chapter on Fstab modifications * Fri Mar 22 2019 dcermak@suse.com - Split code_style_plus_unit_test into two jobs for parallel runs * Fri Mar 22 2019 dcermak@suse.com - Addapt documentation to changed script calling convention * Fri Mar 22 2019 dcermak@suse.com - Only execute scripts via bash when they are not user executable Currently we call scripts directly through bash, which has the unfortunate disadvantage, that the shebang line is completely ignored. Now we instead check whether the owner of the script is allowed to execute it and if yes, we let the OS execute it (which takes the shebang into account) or otherwise call it through bash. * Fri Mar 22 2019 marcus.schaefer@gmail.com - Support optional fstab.patch file In addition to the support for fstab.append, users can now also provide a patch file to change the contents of the fstab file as it got written by kiwi. The feature is probably rarely used but needed in the area of suse's transactional update mechanism. This Fixes bsc#1129566 and Fixes #945 * Thu Mar 21 2019 dcermak@suse.com - Add warning about a missing /vagrant/ folder to the documentation * Thu Mar 21 2019 dcermak@suse.com - Fix libvirt vagrant box Vagrantfile to use rsync by default The documentation is suggesting that rsync is used by default to synchronize the shared folders, yet the libvirt vagrant boxes used the system default (=nfs). * Tue Mar 19 2019 marcus.schaefer@gmail.com - Bump version: 9.17.31 → 9.17.32 * Tue Mar 19 2019 stefan.seyfried@sap.com - relax the live iso root dir permissions The root of the live ISO has permissions 0700, which is inconvenient if you mount it to explore its contents. Relax to 0755 instead. Without this, the mounted ISO FS can only be accessed by root. * Mon Mar 18 2019 marcus.schaefer@gmail.com - Fixed race condition on live overlay mount Make sure to wait for all targets of the overlay mount This Fixes #1015 * Sun Mar 17 2019 marcus.schaefer@gmail.com - Bump version: 9.17.30 → 9.17.31 * Fri Mar 15 2019 marcus.schaefer@gmail.com - Update the documentation regarding vagrant boxes Extend the documentation on how to build VirtualBox vagrant boxes All this was done by Dan Čermák <dcermak@suse.com> * Fri Mar 15 2019 marcus.schaefer@gmail.com - Refactor incremental changelog update The creation of the package changelog is based on a reference file. However that reference file contained log information in a specific timezone which requires to hardcode the region of that timezone in the code to correctly run date/time calculations. This can be done better from a conceptual point of view. This patch changes the handling in a way that the reference file is a git log excerpt including the dates as git log lists them. The dates contains complete numeric time/date/zone information and can be used for calculations. The changelog helper tool converts the result data to match the requirements of rpm changelog files and prints the time/date information localized to the callers timezone or as UTC if the --utc switch is given. By default the user local timezone settings applies. That way the setup of the local timezone is immaterial to the changelog processor and the workaround in the gitlab-ci rpm stage can be deleted too. * Fri Mar 15 2019 dcassany@suse.com - Add buildah tool support for OCI and Docker types This commit adds buildah tool support for OCI and Docker types. It requires buildah and skopeo to be installed in the host. The use of umoci (kept as default choice) or buildah is configured using the runtime configuration file; consider the following structure: ``` oci: - archive_tool: buildah ``` * Fri Mar 15 2019 dcassany@suse.de - Fix derived docker images build This commit fixes the derived docker images when the base image is a compressed file. After the refactor in #998 the decompression of the base image and the skopeo call to import the decompressed image happened in absolutely independent scopes. NamedTemporaryFile python class by default deletes the created temporary file when the class instance is destroyed, this class is used to decompress the base image. Because of isolated scopes at the time skopeo was called the NamedTemporaryFile instance was not there anymore. This commit makes sure that the temporary file instance is already in memory at the time skopeo is called. * Fri Mar 15 2019 marcus.schaefer@gmail.com - Fixed gitlab-ci rpm stage localtime setup By default the timezone of the container is set to UTC. However the reference changelog entries are created in the CET timezone. The current implementation uses dateutil.parser.parse to parse the reference date/time. That call takes the localtime into account and responds with a warning: + UnknownTimezoneWarning: tzname CET identified but not understood The current code does not convert the CET timezone into the localtime timezone (UTC in this case) and creates a timezone naive datetime object. That object however can't be used to compare with timezone aware datetime objects which causes a runtime exception. The qick fix here is to set the localtime to the timezone used in the reference changes file * Thu Mar 14 2019 marcus.schaefer@gmail.com - Limit scope of virtualbox_guest_additions_present This attribute is only used with the virtualbox provider. Added a schematron rule to limit the scope to the virtualbox provider only. This Fixes #1003 * Thu Mar 14 2019 marcus.schaefer@gmail.com - Bump version: 9.17.29 → 9.17.30 * Thu Mar 14 2019 marcus.schaefer@gmail.com - Add consistency check to update_changelog Don't take commits into account that are older than the given reference commit. This would destroy the chronological order. Missing commits older than the reference can be incorporated by rebuild_changelog_reference.sh * Thu Mar 14 2019 marcus.schaefer@gmail.com - Fixed reading of container config The additional_tags attribute is optional. If not set the container config hash does not contain this key. Accessing the key without the get() method leads to an unhandled python exception * Wed Mar 13 2019 stefan.seyfried@sap.com - add rd.kiwi.oem.maxdisk= boot parameter this limits the disks considered for oem deployment to a given size * Wed Mar 13 2019 marcus.schaefer@gmail.com - Abandon the bumpversion helper The bumpversion helper script updated the reference file with changes since the latest date of the existing reference. However even though the two pieces are in chronological order that does not mean that the concatenated version of those is still in chronological order. Thus that helper is deleted and a new helper rebuild_changelog_reference exists. That rebuilds the entire reference file from the history and makes sure it is in chronological order. The tool should only be called if the chronological order of the total changes information is violated which under normal conditions does not happen * Wed Mar 13 2019 marcus.schaefer@gmail.com - Allow --since|--until opts in update_changelog In addition to create changelog information since the latest date of a reference changelog, also allow to create changelog information until the latest data of a reference changelog * Wed Mar 13 2019 marcus.schaefer@gmail.com - Update changelog reference * Wed Mar 13 2019 ms@suse.de - Bump version: 9.17.28 → 9.17.29 * Wed Mar 13 2019 ms@suse.de - Update changelog reference * Wed Mar 13 2019 ms@suse.de - Fixed bumpversion helper Make sure the commit for the changelog reference update and the commit for the version bump have different timestamps by sleeping 2sec between the two actions * Wed Mar 13 2019 ms@suse.de - Update API documentation In reference to Refactor OCI images packing the difference between docker and OCI images is just on packing format. Thus the extra docker container subclass is no longer present. * Wed Mar 13 2019 ms@suse.de - Bump version: 9.17.27 → 9.17.28 * Wed Mar 13 2019 ms@suse.de - Update changelog reference * Wed Mar 13 2019 seife+dev@b1-systems.com - kiwi-dump-image: fix kiwi_oemdevicefilter for rd.debug * Wed Mar 13 2019 ms@suse.de - Added bumpversion helper Script that also updates the changelog reference file before the version bump. It's optional to use this but it would be handy as the commit would show the rpm changelog differences from one tag to the other * Tue Mar 12 2019 ms@suse.de - Fixed code smells on completion_generator Also update python interpreter to use for the completion and the changelog helpers * Tue Mar 12 2019 ms@suse.de - Update gitlab CI config The rpm stage needs python because the changelog script is now written in python * Tue Mar 12 2019 ngompa13@gmail.com - Drop duplicate EPEL7 reference in the test CentOS appliance We already request the standard, update, and extras repos and the EPEL7 repo separately. There's no reason to request the "centos" EPEL7 repo which combines standard+update and EPEL7 repos already. * Mon Mar 11 2019 seife+dev@b1-systems.com - centos-appliance: reorder repos to fix build EPEL has older package versions of e.g. librepo, which breaks dnf. Re-prioritize to prefer the good CentOS packages instead of bad EPEL. * Mon Mar 11 2019 ms@suse.de - Update changelog file Fix changelog entries for their encoding, author name and format Also make sure commits are shown in reverse chronological order of the author date. We intentionally don't use the commit date because a commit can be older than the latest entry in the current reference file and would then not be part of the git log information * Sun Mar 10 2019 ms@suse.de - Introduce better changelog handling The current way of creating the changelog file for the package is based on reading the entire history of the git repository and turns that information into a changelog. The downside of this approach is that any change in the code that creates this changelog information will impact older entries and could cause a conflict on the changes file of the released package. This usually leads to declined package submissions and blocks us in fixing bugs in the changelog generator. This commit changes the process in a way that only changes related to the oldest entry of a reference changelog file compared to the current branch are taken into account. This Fixes #979 * Sun Mar 10 2019 dcassany@suse.de - Adding a derived docker image build test * Sun Mar 10 2019 ms@suse.de - Bump version: 9.17.26 → 9.17.27 * Fri Mar 08 2019 ngompa13@gmail.com - Use correct GRUB 2 and shim EFI packages for test CentOS 7 appliance CentOS 7 has inherited the changes from Fedora in how its EFI binaries are packaged, so we need to adapt to handle those and build the appliance properly. * Fri Mar 08 2019 ms@suse.de - Fixed evaluation of @root size setup The @root volume setup allows to specify a size for the root volume in an LVM setup. The size setting was not respected and the root volume was always resized to the rest space available. This patch fixes the read_volume_setup_all_free method on the dracut kiwi library to know if there is root volume setup and respect its contents. This Fixes #983 * Fri Mar 08 2019 ngompa13@gmail.com - Update generated configuration file for DNF The dnf.conf file generated by KIWI contained some obsolete options as well as options that have been renamed. This change updates the options set so that they match what is expected by DNF and configures the appropriate behavior. * Thu Mar 07 2019 ms@suse.de - Bump version: 9.17.25 → 9.17.26 * Thu Mar 07 2019 ms@suse.de - hotfix runtime check for count of fullsize volumes The check did not respect images that do not come up with a systemdisk section. systemdisk is an optional section and the test did not respect this and failed with a stack trace * Thu Mar 07 2019 ms@suse.de - Bump version: 9.17.24 → 9.17.25 * Thu Mar 07 2019 ms@suse.de - Update provider support status in vagrant docs * Thu Mar 07 2019 ms@suse.de - Rebuild schema docs Create an up to date state of the oxygen schema doc in the repo * Thu Mar 07 2019 ms@suse.de - Fixed Title underline too short warning in the doc * Thu Mar 07 2019 ms@suse.de - Fixed permanent redirect links in documentation * Thu Mar 07 2019 ms@suse.de - Bump version: 9.17.23 → 9.17.24 * Thu Mar 07 2019 ms@suse.de - Cleanup example_dot_profile_config.xml Don't use multiple all size volumes * Thu Mar 07 2019 dcermak@suse.com - Add different installation methods to the documentation * Thu Mar 07 2019 ms@suse.de - Check for multiple allsize volumes setup Added runtime check check_volume_setup_defines_multiple_fullsize_volumes which reads the volume setup and counts the number of volumes that define a 'all' volume. Only one is allowed * Wed Mar 06 2019 ms@suse.de - Complete test coverage on iso tools testing If there is no mkisofs/genisoimage present on the system, the tests based on real example iso files are skipped. The code tested in this case is now covered in a mock style to run through the logic even without the tools in place * Wed Mar 06 2019 ms@suse.de - Follow up fix for zypper compat link Move the code handling the compat setup of the rpm database to the correct method of the repository API. Call the import of the signing keys only if there are signing keys * Wed Mar 06 2019 dcermak@suse.com - Fix suseRemoveYaST to work with set -e When the config.sh is invoked with set -e then suseRemoveYaST causes the whole script to fail when no yast packages are present. The problem is that `grep yast` returns 1 in that case. => Explicitly ignore the return value of grep Furthermore, if no YaST packages were found, we don't want to invoke rpm, as that would fail too (as it is called without any parameters). * Wed Mar 06 2019 ms@suse.de - Care for update alternatives on rpmdb move In set_database_to_image_path we also have to care for the move of the alternatives path to the new rpmdb location * Wed Mar 06 2019 ms@suse.de - Fixup zypper/suse link to rpm database The compat code generating the /var/lib/rpm link was only effective if a signing key was specified, however it should be effective in any case * Tue Mar 05 2019 ms@suse.de - Run cdrtools based unit tests on demand Only if the underlaying system provides legacy cdrtools, run the unit tests which actually reads the test data iso using those tools. * Tue Mar 05 2019 dcermak@suse.com - Add GitLab CI pipeline status to README.rst * Mon Mar 04 2019 ms@suse.de - Improve error messages The error messages for running a build against an undefined image definition as well as the error message to explain why the imageinclude attribute can only be used with public repos has been improved by suggestions from J. Mixer * Mon Mar 04 2019 seife+dev@b1-systems.com - pxe: use dracut's network code, drop own setup * Fri Mar 01 2019 dcermak@suse.com - Extend the GitLab-CI pipeline - build the documentation in the build_doc stage - run tests for all supported Python versions in tox_check - build an RPM for Fedora 29 & OpenSUSE Tumbleweed in RPM stage * Fri Mar 01 2019 ngompa13@gmail.com - Ensure DNF is installed for kiwi itself and the test CentOS 7 appliance In e33f53aa4513c38a42736c82db3ec5e0b9da41d4, we switched to DNF when requesting YUM. This now means we need to ensure DNF is installed for images where we previously used YUM for that. * Thu Feb 28 2019 dcermak@suse.com - Add environment for running the unit tests with Python 3.7 to tox Python 3.7 does only appear to be available on Ubuntu Xenial with sudo enabled * Thu Feb 28 2019 dcermak@suse.com - Extend documentation about using KIWI to build vagrant images * Thu Feb 28 2019 dcermak@suse.com - Extend documentation on how to build inside OBS * Thu Feb 28 2019 dcermak@suse.com - Bump required minimum disk space * Thu Feb 28 2019 dcermak@suse.com - Extend index.rst by a "advertising" section * Thu Feb 28 2019 dcermak@suse.com - Add url to PyPI & use https instead of http * Thu Feb 28 2019 dcermak@suse.com - Extend quickstart to be more viable as a stand-alone document * Thu Feb 28 2019 dcermak@suse.com - Reorder TOCs so that the most important comes first * Thu Feb 28 2019 dcermak@suse.com - (whitespace-cleanup) on doc/source/overview/workflow.rst * Thu Feb 28 2019 ngompa13@gmail.com - Rework package manager selection to use DNF when YUM is requested YUM v3 is no longer developed, having been superseded by DNF for several years. With DNF now available as a usable package manager in Red Hat Enterprise Linux 7 through the Extras channel and SUSE Linux Enterprise 15 through PackageHub, there is no reason for keeping support for YUM v3 around. We are keeping support for requesting YUM because in Red Hat Enterprise Linux 7, DNF is referred to as "YUM v4", and it is simply referred to as "YUM" in Red Hat Enterprise Linux 8. To avoid confusion from people, we're just going to leave it in place as an alias to the DNF package manager. As for why this is happening now, Fedora is retiring YUM v3 in Fedora 31, so we might as well get it over with and cut over now. Reference: https://fedoraproject.org/wiki/Changes/Retire_YUM_3 * Thu Feb 28 2019 dcermak@suse.com - Fix some spelling mistakes & sentence order in the docs * Thu Feb 28 2019 ms@suse.de - GitLab CI integration Run tox targets on demand. With GitLab CI selected containers are small but also limited in their scope. * Thu Feb 28 2019 ms@suse.de - Fixed iso tools unit test Test was not environment independent and behaved differently compared to which iso tool change is installed. * Thu Feb 28 2019 ms@suse.de - GitLab CI integration Select 3.6 image to run the test * Thu Feb 28 2019 ms@suse.de - Fixed shellcheck issue on kiwi-partitions-lib.sh Fixup SC2046: Quote this to prevent word splitting * Thu Feb 28 2019 ms@suse.de - GitLab CI integration Not so easy to get pip running there. Try standard binary name of after pip ugrade to install the rest of the chain * Thu Feb 28 2019 ms@suse.de - GitLab CI integration No alternative naming for py3 commands * Thu Feb 28 2019 ms@suse.de - GitLab CI integration Fixed install of tox on the runner * Thu Feb 28 2019 ms@suse.de - GitLab CI integration Require tox to be installed on the runner * Thu Feb 28 2019 ms@suse.de - GitLab CI integration pip not installed by default on the runner * Thu Feb 28 2019 ms@suse.de - Looks like Travis will go away Try moving CI integration to GitLab * Wed Feb 27 2019 ms@suse.de - Write sha256sum --check compatible shasum format Change the output format of the bundler shasum file to be compatible with a 'sha256sum --check' call. This fixes bsc#1127173 * Wed Feb 27 2019 ms@suse.de - Move azure integration test build to Factory repos * Wed Feb 27 2019 ms@suse.de - Fixed package list of azure integration test * Wed Feb 27 2019 ms@suse.de - Fixed repo setup from azure integration test * Wed Feb 27 2019 ms@suse.de - Bump version: 9.17.22 → 9.17.23 * Tue Feb 26 2019 dcermak@suse.com - Allow xdist to run the tests in parallel for the Python 2.7 env This reverts an accidental change that was introduced with 942ed7a8eea65f1c99b5f51a8587cfbeae73b484, which removed the {posargs} from tox.ini for the python 2.7 environment. * Tue Feb 26 2019 ms@suse.de - Added get_description method to XMLState In preparation to access the contents of the <description> section this pull requests adds a simple method to read the contents. * Mon Feb 25 2019 ms@suse.de - Update tools from strip list for oemboot For legacy oemboot kiwi descriptions the strip list for tools to keep in the initrd is still active. On s390 required tools for dasd_configure were missing and got added by this commit. This Fixes #963 * Mon Feb 25 2019 ms@suse.de - Fixed import of signing keys In reference to bsc#1112357 it was required to add the compat symlink /var/lib/rpm such that zypper can read the signing keys. Unfortunately zypper does not use the configured rpmdb from the rpm macro setup. * Mon Feb 25 2019 seife+dev@b1-systems.com - add rd.kiwi.install.pass.bootparam boot parameter if this boolean is set, most boot parameters are passed on to the kexec kernel on OEM image deployments * Sat Feb 23 2019 ms@suse.de - Bump version: 9.17.21 → 9.17.22 * Sat Feb 23 2019 ms@suse.de - Followup fix for disk detection from root device No matter if one ore more devices are used in a multipath map, if the root device is managed by multipath kiwi has to use the mapped device for all operations, otherwise we run into busy or blocked state inside of the initrd operations. This is related to Issue #954 and bsc#1126283 and bsc#1126318 * Sat Feb 23 2019 ms@suse.de - Fixed relocation of GPT Simplify the relocation of the GPT to the end of the current disk by using sgdisk -e instead of gdisk. The possitive after effect of this is that the broken return value handling of gdisk in centos will be fixed and did not harm the kiwi deployment anymore. This Fixes #958 * Fri Feb 22 2019 ms@suse.de - Bump version: 9.17.20 → 9.17.21 * Fri Feb 22 2019 ms@suse.de - Speedup the make build target Activated the pytest xdist feature Dan added for the make build target to speedup package creation * Fri Feb 22 2019 ms@suse.de - Bump version: 9.17.19 → 9.17.20 * Fri Feb 22 2019 ms@suse.de - Update vagrant libvirt unit test Take extra config from DiskFormatVagrantLibVirt as base for the test and don't mock that information as it was done before in the base class * Fri Feb 22 2019 ms@suse.de - Extend the vagrant base class test Take an example for additional vagrant config settings into account * Fri Feb 22 2019 ms@suse.de - Refactor unit tests for vagrant classes Better use of pytest capabilities, avoid mock rewrite of implementation classes * Fri Feb 22 2019 ms@suse.de - Fixed DiskFormatVagrantBase docs and behavior Update class docs per review by Dan, also raise on use of methods without proper provider implementation * Fri Feb 22 2019 ms@suse.de - Fixed create_box_img in DiskFormatVagrantLibVirt The call to create_box_img did not use the given tmpdir parameter but assumes an instance variable to provide this information * Thu Feb 21 2019 seife+dev@b1-systems.com - fix network failure with "BOOTIF=" parameter If a BOOTIF= parameter (pxelinux "IPAPPEND 2" option) is present, dracut handles the network already *and* overwrites the 90-net.rules that kiwi-*-net-genrules.sh created, thus the interface is not named "lan0" and ifup is destined to fail. Work around the issue by detecting if the interface is already handled by generic dracut code and just skipping the ifup call. Fixes / improves issue #942 * Thu Feb 21 2019 ms@suse.de - Added some style fixes to the vagrant classes Adapt doc strings to match style on lists. Change variable names not class global to be lowercase. Use 80 chars per line. Don't reach code that potentially uses undefined variables * Thu Feb 21 2019 ms@suse.de - Refactor vagrant storage subformat In preparation to support other vagrant providers a base class for Vagrant operations has been created. Original Code written by DanČermák <dcermak@suse.com> * Thu Feb 21 2019 ms@suse.de - Fixed disk detection from root device The method lookup_disk_device_from_root assigns the disk device matching the root device uuid. However in a multipath environment multiple disk devices matches the same root device. The code to assign the multipath map in this case was missing in the dracut code base. This Fixes #954 and Fixes bsc#1126283 and bsc#1126318 * Wed Feb 20 2019 ms@suse.de - Fixed losetup call due to move in option names util-linux dropped losetup-Add-support-for-setting-logical-blocksize.patch because different implementations exists in the new kernel, and it has a conflicting implementation in util-linux. This caused a change in the option to specify the logical sector size. The option --logical-blocksize was replaced by --sector-size. We adapt this now in kiwi too * Wed Feb 20 2019 dcermak@suse.com - Add pytest-xdist to dev-virtualenv to run the unit tests in parallel - fix CLI args not being passed to pytest by tox for unit_py3_4 and unit_py3_6 - enable parallel run on travis - document how to run the unit tests in parallel * Wed Feb 20 2019 ro@suse.de - s390-test-image: add factory base project (same as on arm) * Mon Feb 18 2019 dcermak@suse.com - Add support to build vagrant boxes with the Virtualbox provider This commits adds initial support to build Vagrant boxes with the Virtualbox provider. - The attribute 'provider' of the option <vagrantconfig> now supports the option "virtualbox". - A new boolean attribute 'virtualbox_guest_additions_present' was added to <vagrantconfig>. When set to true, KIWI will assume that guest additions have been installed into the base image and configure the shared folders to use vboxfs, otherwise rsync will be used. This fixes #532 (https://github.com/SUSE/kiwi/issues/532). * Thu Feb 14 2019 ms@suse.de - Bump version: 9.17.18 → 9.17.19 * Thu Feb 14 2019 ms@suse.de - Fixed isolinux fallback path In case isolinux-config failed or does not exist on the distribution a fallback path is called. That code hardlinks the files to the isolinux compiled in standard path. However due to the move of the grub unicode file for iso images the path contains a directory. Directories can't be hardlinked thus this patch uses 'cp -l' instead of the 'ln' command to create the linked target contents. * Thu Feb 14 2019 ms@suse.de - Bump version: 9.17.17 → 9.17.18 * Wed Feb 13 2019 ms@suse.de - Fix location of grub unicode font This is a follow up patch for #f5bac4495d34. The change of the location of the font file was not applied if an iso target, live or install image is being built. This patch completes the change and Fixes bsc#1124885 * Wed Feb 13 2019 ms@suse.de - Fix handling of zypper return codes The following codes should be handled as errors: 104 - ZYPPER_EXIT_INF_CAP_NOT_FOUND 105 - ZYPPER_EXIT_ON_SIGNAL 106 - ZYPPER_EXIT_INF_REPOS_SKIPPED * Tue Feb 12 2019 dcassany@suse.de - Refactor OCI images packing This commit refactors the OCI images support: * added import_container_image and export_container_image methods to oci_tools classes. 'umoci' and 'buildah' consume different formats thus the inital skopeo call to import a container is tool dependent. * use oci-archive transport for packing the OCI images, this causes docker and oci operations to just diverge on transport type. * add_tag method no longer needed in oci_tools/base, skopeo is used for that matter. * container/docker.py class is no longer needed. The difference between docker and OCI images is just on packing format which is just a parameter in skopeo. It does not deserve a dedicated class * system/root_import/docker.py class no longer needed. The difference between OCI and Docker class was just the transport type for the skopeo call. It does not deserve a dedicated class * Mon Feb 11 2019 ms@suse.de - Sort file and dir entries in iso sortfile * Sun Feb 10 2019 bwiedemann@suse.de - tox: Allow to run a single test using tox -v -e unit_py2_7 -- -vv ./test/unit/iso_tools_cdrtools_test.py * Sat Feb 09 2019 bwiedemann@suse.de - Sort filesystem listings so that kiwi works in a reproducible way in spite of indeterministic filesystem readdir order and http://bugs.python.org/issue30461 See https://reproducible-builds.org/ for why this is good. * Sat Feb 09 2019 ms@suse.de - Moved azure integration test to Leap15 Factory doesn't resolve well together with Cloud:Tools. I'd like to have stable integration tests and not getting screwed with any change on Factory * Sat Feb 09 2019 ms@suse.de - Bump version: 9.17.16 → 9.17.17 * Fri Feb 08 2019 ms@suse.de - Added new preferences subsection In the preferences section the following optional subsection can be configured: <rpm-locale-filtering>true|false</rpm-locale-filtering> If set to true the default locales POSIX, C, and C.UTF-8 are applied as rpm install_lang macro. If the locale section is configured in addition the list is extended by that information too * Fri Feb 08 2019 ms@suse.de - Extend the .packages file by the license field For rpm based builds the License field from the rpm metadata is extracted into the .packages file. For Debian based build the license information is in an extra file and not taken into account for the moment. * Fri Feb 08 2019 ms@suse.de - Bump version: 9.17.15 → 9.17.16 * Thu Feb 07 2019 ms@suse.de - Added support for %_install_langs rpm macro During the image build the custom rpm macro %_install_langs is configured with the <locale> setup from the KIWI XML description. This allows to filter language specific packages on the rpm level and Fixes #771 * Wed Feb 06 2019 ms@suse.de - Add API for package manager returncode validation Allow to validate the return code from a package manager operation. In case of zypper the standard UNIX return code validation does not apply. Return codes from zypper which are >= 100 are not treated as an error anymore * Wed Feb 06 2019 ms@suse.de - Fix Failed to cache rpm database on zypper addrepo Occasionally zypper fails when adding the repo with the rpm error message 'Failed to cache rpm database'. I was not able to find out why this happens and I also could not find a way to reproduce it safely. However this commit adds a workaround that seems to fix the issue when it happens. If the first call of zypper addrepo fails kiwi now issues the exact same call again and only if that fails too an exception is thrown In addition the patch changes the zypper call and avoids the option --type. That option is marked legacy and ignored by zypper but causes a misleading warning message * Mon Feb 04 2019 ms@suse.de - Handle location of the rpm DB on the macro level The location of the rpm database is no longer a standard path one can trust. Some distributions put it to /var/lib others to /usr/lib. This introduces the problem of dealing with different locations between the bootstrapping (host rpm) phase and the image installation (image rpm) phase. This commit implements a solution based on an intermediate rpm database configuration. KIWI creates the macros.kiwi file inside of the image root which is read by any call of rpm in the inner and outer system. During bootstrap phase the rpm dbpath from the host system is used and later in the install phase the dbpath from the rpm package as it was installed by the target image distribution is used. In case of a dbpath difference the database is automatically moved to the new location by setting the _dbpath_rebuild macro to the correct location. At the end the custom KIWI macro is deleted. As this process allows custom macro defintions during the KIWI run it also serves as the base for a solution to Issue #771 which will be done in a follow up request to this commit. Also the workaround for bsc#1112357 which uses a static dbpath to store an optionally given signing key will be addressed with this commit. The macro setup happens before the import_trusted_keys method which makes any specification for a strict dbpath obsolete. Last the implementation deletes the obsolete dump_reload_package_database code. rpm is able to automatically do the conversion of different db versions such that the code in kiwi is obsolete. In addition that code only worked for rather old db versions. The public API has not changed though, but the method is marked obsolete and does nothing anymore. In addition to the deletion of obsolete code a new API method post_process_install_requests_bootstrap has been introduced to handle actions required after bootstrap and before installing of packages from inside the new image * Mon Feb 04 2019 dcassany@suse.de - Add custom partitioning docs This commit adds two new documentation chapters. One covering custom partitioning scheme in KIWI. And another covering setting custom volumes in KIWI * Thu Jan 31 2019 ms@suse.de - Bump version: 9.17.14 → 9.17.15 * Thu Jan 31 2019 ms@suse.de - Fixup code issues reported by new flake8 version Travis has updated the flake8 version which caused more strict issue reports on the code. This commit fixes the new issues reported by flake8 * Thu Jan 31 2019 ms@suse.de - Bump version: 9.17.13 → 9.17.14 * Thu Jan 31 2019 ms@suse.de - Changed default value for bundler compression If no compression is configured in the kiwi config file the default was set to: False. However this lead to big trouble on the obs side for images which has fixed storage disk sizes configured, e.g Azure images which requests 30G disk size per instance. Thus the default for the bundler compression has changed to be: True * Tue Jan 29 2019 ms@suse.de - Bump version: 9.17.12 → 9.17.13 * Tue Jan 29 2019 ms@suse.de - Fixed grub theme lookup If the theme was not found at the expected place an exception was thrown. However the alternative lookup code in /boot was not reached with that exception. This commit fixes this * Mon Jan 28 2019 ms@suse.de - Bump version: 9.17.11 → 9.17.12 * Mon Jan 28 2019 dcassany@suse.de - Add a runtime check for preferences metadata This commit adds a runtime check for preferences metadata. More specfic verifies there is a packagemanager defined and an image version defined. Fixes #925 * Fri Jan 25 2019 ms@suse.de - Support alternative EFI and grub modules paths In SUSE products EFI binaries are historically located in /usr/lib*/efi. In a recent move to package grub2 as noarch fate#326960, a collision between x86_64 and aarch64 has been identified, as both place platform-specific files in the same spot. To rectify this, a new location was devised: /usr/share/efi/$(uname -m). At the same time /usr/lib/grub2 will move to /usr/share/grub2. This Fixes #924 * Fri Jan 25 2019 ms@suse.de - Fixed Xen guest detection We only support Xen setup e.g in the Amazon Cloud for the x86_64 architecture. This Fixes bsc#1123186 and bsc#1123185 * Thu Jan 24 2019 ms@suse.de - Fixed location of grub unicode font file grub2 is expecting the unicode font below the fonts directory in the /boot/grub*/ depending on how the distribution installs grub2. This Fixes bsc#1119416 * Thu Jan 24 2019 ms@suse.de - Fix documentation howto delete a package The documentation described an invalid XML grammar * Thu Jan 24 2019 ms@suse.de - Bump version: 9.17.10 → 9.17.11 * Thu Jan 24 2019 ms@suse.de - Fix package conflict for completion file The completion can only be provided by one package if not python version specific completion files are provided. Due to the fix in #920 the completion file must be provided by another sub-package. This commit moves it to the kiwi-man-pages package. Actually kiwi man pages provides more than just the man pages, but also the PDF documentation and I think the completion information serves the purpose of documentation to some degree too. * Thu Jan 24 2019 ms@suse.de - Bump version: 9.17.9 → 9.17.10 * Thu Jan 24 2019 ms@suse.de - Fixed file name of completion file The bash completion file must match one of the alternatives links. Otherwise the bash completion mechanism will not match. kiwi-ng is the unique alternative link name compared to the still present legacy kiwi version and should be used preferably * Wed Jan 23 2019 dcassany@suse.de - Add container history metadata on umoci repack call This commit makes sure that `umoci repack` call includes history metadata and skips that in `umoci config` call. Fixes #918 * Thu Jan 17 2019 ms@suse.de - Bump version: 9.17.8 → 9.17.9 * Thu Jan 17 2019 ms@suse.de - Update schematron rule install_continue_on_timeout is only for oem types * Thu Jan 17 2019 dcassany@suse.de - Do not assume package manager is always there This commit modifies the dump_reload_package_database method for zypper to not assume rpm binary is always part of the image. An image could be bootstrapped only without zypper or rpm, in that case it does not make sense and it is not possible to dump and reload rpmdb. Fixes #915 and related to #550 * Thu Jan 17 2019 ms@suse.de - Allow to switch off install image boot timeout This commit adds a new attribute called: <type ... install_continue_on_timeout="true|false"/> It allows to setup the boot timeout for install images build with KIWI. If not set or set to 'true' the configured boottimeout or its default applies to the install image as it was before. If set to 'false' there will be no timeout in the install image bootloader setup and the boot only continues on manual intervention. * Fri Jan 11 2019 ms@suse.de - Bump version: 9.17.7 → 9.17.8 * Thu Jan 10 2019 ms@suse.de - Make result compression in the bundler optional Calling kiwi result bundle will take the image build results and bundle the relevant image files according to their image type. Depending on the result configuration this could instruct the bundler to compress one or more files from the result. By default this compression is switched off in the bundler but can be activated to save storage space and speedup download of the image with the following runtime configuration: bundle: - compress: true|false If compression is activated the result image has to be uncompressed before it can be used. This Fixes #901 * Mon Jan 07 2019 ms@suse.de - Bump version: 9.17.6 → 9.17.7 * Mon Jan 07 2019 ms@suse.de - Fix use of SysConfig objects objects of that class did not provide a get method but overload the bracket [] operator. Using the get() method failed. This Fixes #910 * Sat Jan 05 2019 ms@suse.de - Use chkstat to verify and fix file permissions Call chkstat in system mode which reads /etc/sysconfig/security to determine the configured security level and applies the appropriate permission definitions from the /etc/permissions* files. It's possible to provide those files as overlay files in the image description to apply a certain permission setup when needed. Otherwise the default setup as provided on the package level applies. It's required that the image root system has chkstat installed. If not present KIWI skips this step and continuous with a warning. This Fixes #895 * Fri Dec 21 2018 dcassany@suse.de - Allow setting the protocol for exposed ports With this commit it is possible to set tcp or upd (e.g. "80/tcp") for exposed container ports. If no protocol is provided OCI defaults are applied. Fixes #906 * Wed Dec 19 2018 toms@suse.de - Use cls in @classmethods instead of self For consistency reasons. * Wed Dec 19 2018 ms@suse.de - Bump version: 9.17.5 → 9.17.6 * Tue Dec 18 2018 ms@suse.de - Allow setctsid to be part of custom boot images * Tue Dec 18 2018 dcassany@suse.de - Fix disk size calculation for VMX Disk size calculation must take into account the empty volumes that are to be mounted in a directory that does not exist in the root tree otherwise there is KeyError. The result of storate/setup._calculate_volume_mbytes must be a dict including all defined volumes. Fixes #904 * Wed Dec 12 2018 ms@suse.de - Bump version: 9.17.4 → 9.17.5 * Wed Dec 12 2018 ms@suse.de - Make sure manual pages are part of pypi archive As consequence of the change in the travis setup to make use of the native 'pages' and 'pypi' providers from travis the environment for the sdist target has changed. Within the doc_travis tox env no manual pages was build. In combination with the 'pypi' provider setup in .travis.yml which uses skip_cleanup: true, this caused the pypi archive to miss any manual pages which lead to a runtime error on install via pip. * Tue Dec 11 2018 ms@suse.de - Bump version: 9.17.3 → 9.17.4 * Mon Dec 10 2018 ms@suse.de - Don't trust the vmlinux symlink to be present * Mon Dec 10 2018 ms@suse.de - Refactor kernel version lookup Check the presence of the gzip compressed kernel binary and use it. If not present use the arbitrary kernel image format with the known limitations. * Mon Dec 10 2018 ms@suse.de - More clarity on kernel version lookup Lookup of the kernel version is done by directly reading the kernel image via a small tool named kversion. The scope of the tool is limited and does not work for e.g kernel images which contains its own decompressor code. For the special cases we defined exceptions, one was zImage. The recently added exception for vmlinuz seemed too intrusive to me and was also not well documented. This patch tries to clarify and get us back to explicit and easy to read coding. Fixes #899 * Tue Dec 04 2018 ro@suse.de - testing: fix issues marked by shellcheck * Thu Nov 29 2018 ro@suse.de - kernel.py: also try vmlinux-version.gz in case of image-version to get the version number * Tue Nov 27 2018 dcassany@suse.de - Add Ubuntu bionic build tests * Tue Nov 27 2018 dcassany@suse.de - Another round of OCI tools refactoring In order to provide buildah support some of the logic about temporary directories for OCI images creation needs to be moved to the dedicated OCI tool class. While umoci can operate in any directory and this is passed as an argument, this is not the case for buildah. In buildah workflow the storage path of work-in-progress images/containers is not customizable neither the mountpoint of the container rootfs. * Mon Nov 26 2018 ms@suse.de - Bump version: 9.17.2 → 9.17.3 * Mon Nov 26 2018 ms@suse.de - Update documentation for rd.live.cowfile.mbsize * Mon Nov 26 2018 ms@suse.de - Use cow file on persistent grub live loop boot When using tools like live-grub-stick the live iso as generated by kiwi will be copied as file on the target device and a grub loopback setup is created there to boot the live system from file. In such a case the persistent write setup which tries to create an extra write partition on the target fails in almost all cases because the target has no free and unpartitioned space available. Therefore in case of such a loopback mounted system we create a cow file(live_system.cow) instead of a partition to setup persistent writing. The cow file will be created in the same directory the live iso image file was read from grub This Fixes #860 * Fri Nov 23 2018 ms@suse.de - Bump version: 9.17.1 → 9.17.2 * Fri Nov 23 2018 dcassany@suse.de - Create a custom `setup.py clean` command The default `setup.py clean` command does not clean `dist` and `*.egg-info` folders. This commit makes sure those are cleaned and also ands a `setup.py clean` command in the `clean` Makefile target * Fri Nov 23 2018 ms@suse.de - Better exception handling in oem installer If an error condition applies in the kiwi dump dracut code the reaction was to stop the process with a dracut die() call. If the option 'rd.debug' was set on boot, this lead to a debugging shell which is good, but in a standard process this lead to a lock of the machine which is an unfortunate situation. This patch changes the behavior to always print the error message as a dialog message box on the primary console and reboot the system after keypress or timeout. In case of the debug switch configured the system die()'s as before. This Fixes #884 * Mon Nov 19 2018 dcassany@suse.de - Add parted dependency for dracut-kiwi-live package dracut-kiwi-live requires `partprobe` tool and this is provided by parted package. Persistent overlay setup fails if parted is not installed in the image. * Thu Nov 15 2018 ms@suse.de - Added unit test for syslinux lookup paths * Thu Nov 15 2018 dcassany@suse.de - Include the isolinux ubuntu paths This commit adds the ubuntu installation paths the places to look for isolinux binaries. * Tue Nov 13 2018 dcassany@suse.de - Fix spec to better support Debian and Ubuntu builds This commit fixes the spec to properly build for Debian and Ubuntu. More specific: * update-alternatives path has been adapted * python3-kiwi are now enabled for Debian 9 and Ubuntu 18.04 * Mon Nov 12 2018 ms@suse.de - Make gfxboot a recommended package gfxboot is needed on the host for certain boot graphics operations. It's used if the boot theme provides a gfxboot.cfg In this case the tool is also required. The setup of the boot themes is differently implemented in each of the distributions we support. In addition on suse distributions gfxboot is no longer in the core system. Given that we are not able to find a common base on requirement of the package we changed gfxboot from a required to a recommended package and deleted the requirement on debian based distros * Fri Nov 09 2018 dcassany@suse.de - Adding OEM and ISO image types for Fedora tests * Fri Nov 09 2018 seife+dev@b1-systems.com - kiwi-dump-image: improve dialog usage Dialog's "--radiolist" feature requires to navigate to the item, press "space" to select the item and then "enter" to execute. With "--menu", it is enough to just navigate to the item and press "enter" to execute, which is much more intuitive for most users. * Fri Nov 09 2018 dcassany@suse.de - Add support for --no-history umoci's flag Using this flag kiwi appends only a single history entry for OCI containers. * Fri Nov 09 2018 ms@suse.de - Bump version: 9.17.0 → 9.17.1 * Fri Nov 09 2018 dcassany@suse.de - Little code styling fix * Fri Nov 09 2018 ms@suse.de - Fixed oem installer In the implementation of the ramdisk installer from SUSE/ramdisk_deployment(4fdeee3faa3) an error for the standard case was introduced such that the lsblk call was invalid. This lead to no devices being present for the installation. This patch Fixes #877 * Thu Nov 08 2018 dcassany@suse.de - Fix rsync call for filesystem images For filesystem images the rsync call was missing a finale slash for the source path causing the sync also the containing directory. With this change the filesystem image does not include the rootfs in any subdirectory. Fixes #875 * Tue Nov 06 2018 dcassany@suse.de - Add history metadata for container builds This commit adds the history section in contianerconfig. With it 'author', 'created_by' and 'comment' can be customized. In addition 'created' is always included with the image creation date time. 'created_by' entry is set to 'KIWI __version__' by default if nothing is provided. Fixes #852 * Tue Nov 06 2018 ms@suse.de - Bump version: 9.16.36 → 9.17.0 * Tue Nov 06 2018 ms@suse.de - Change bundling of image formats By default none of the image formats were stored as compressed file. The reason behind this was the assumption that some formats automatically makes use of compression, which is true but only in their processing and not in their data blocks at creation time. Storage and handling of the image file itself becomes cumbersome and therefore we change the default bundle setup for image formats to be compressed. This means the image as it gets packed by KIWI needs to be uncompressed before use. The following image formats are affected by the change in a call of the result bundler: kiwi result bundle ... * qcow2 (.qcow2.xz) * vdi (.vdi.xz) * vhd (.vhd.xz) * vhdx (.vhdx.xz) * vmdk (.vmdk.xz) All other image formats already defined a custom bundling setup including compression and are not affected by this change. This Fixes #650 * Tue Nov 06 2018 ms@suse.de - Fixed firmware strip and lookup for kiwi initrd In a kiwi initrd the function baseStripFirmware can be used to strip down the firmware to the actually used kernel drivers in that initrd. The code to do this was broken due to the changes in #64cb5b003140a. This patch done by Ruediger Oertel <ro@suse.de> fixes the method to work correctly again. * Tue Nov 06 2018 seife+dev@b1-systems.com - kiwi-partitions-lib: wait for udev before lsblk A LVM-enabled oem image spuriously did not resize its PV / LVs. Tracking this down, I discovered that lsblk was sometimes racing with udev and the disk was just not available during get_partition_node_name(). Call udev_pending() before all lsblk calls to avoid that. (lsblk man page also advocates this to synchronize with udev) * Tue Nov 06 2018 ms@suse.de - Bump version: 9.16.35 → 9.16.36 * Tue Nov 06 2018 ms@suse.de - Bypass Jekyll processing for github pages sphinx uses directories that start with underscores which Jekyll considers these to be special resources and does not copy them to the final site. * Mon Nov 05 2018 ms@suse.de - Bump version: 9.16.34 → 9.16.35 * Mon Nov 05 2018 ms@suse.de - Revert last travis.yml change This reverts commit 7fb7e8c39fa861b6226d54e04483be8e96a5f8be. * Mon Nov 05 2018 ms@suse.de - Bump version: 9.16.33 → 9.16.34 * Mon Nov 05 2018 ms@suse.de - Next try to fixup pypi deployment Reset to encrypted password hash which worked before * Mon Nov 05 2018 ms@suse.de - Bump version: 9.16.32 → 9.16.33 * Mon Nov 05 2018 ms@suse.de - Move pypi secret to secure variable on travis * Mon Nov 05 2018 ms@suse.de - Bump version: 9.16.31 → 9.16.32 * Mon Nov 05 2018 ms@suse.de - Use travis-sphinx to generate github pages doc The output from the sphinx build does not render css and java script correctly on github pages, thus switch back to travis-sphinx to generate that data * Mon Nov 05 2018 ms@suse.de - Bump version: 9.16.30 → 9.16.31 * Mon Nov 05 2018 ms@suse.de - Move github token to secure variable on travis * Mon Nov 05 2018 ms@suse.de - Bump version: 9.16.29 → 9.16.30 * Mon Nov 05 2018 ms@suse.de - Run pages deployment before pypi In addition update the pypi secret * Mon Nov 05 2018 ms@suse.de - Move travis references to .com domain * Mon Nov 05 2018 ms@suse.de - Bump version: 9.16.28 → 9.16.29 * Mon Nov 05 2018 dcassany@suse.de - Arrange command test arguments to match py2 and py3 order Apparently dictionary keys are not sorted equaly in py2 and py3. While the code does not relay on command flags order the test command validation does. This commit ensures the umoci command is the same for both, py2 and py3, with all the flags in the same order. * Mon Nov 05 2018 dcassany@suse.de - Make process config arguments method static * Mon Nov 05 2018 ms@suse.de - Added oci_tools to package MANIFEST * Mon Nov 05 2018 ms@suse.de - Use the travis pages provider for doc deployment In the past we used the travis-sphinx script to deploy the documentation to gh-pages via the travis CI. However with the change to the travis github App we need to change this deployment into a real deployment stage of the travis setup * Mon Nov 05 2018 ms@suse.de - Fixed azurectl redirect in documentation * Mon Nov 05 2018 ms@suse.de - Bump version: 9.16.27 → 9.16.28 * Sun Nov 04 2018 ms@suse.de - Added Deploy and Run System in a RamDisk docu * Wed Oct 31 2018 dcassany@suse.de - Refactor containerconfig xml evaluation This commit refactors the extracted data from containerconfig section to be tool agnostic. Related to #863 * Tue Oct 30 2018 ms@suse.de - Support ramdisk deployment in OEM images Using the rd.kiwi.ramdisk boot option enables the deployment into a ramdisk. If this option is enabled only ramdisk devices as provided by the brd kernel driver will be available for deployment * Mon Oct 29 2018 ms@suse.de - Apply OCI interface for container and root_import Instead of directly calling the container archiving tool, in this case umoci, the code has been changed to use the new OCI interface class. This Fixes #859 * Mon Oct 29 2018 dcassany@suse.de - Distinguish install and image dracut config This commit distinguishes the files that should be installed inside the image dracut only than the ones installed in both, in install initrd and image initrd. Fixes #858 * Mon Oct 29 2018 ms@suse.de - Added OCI tooling interface class An initiative to formulate industry standards around container formats and runtime is available at https://www.opencontainers.org Different tools to implement the specifications had been created. The purpose of this class and its sub-classes is to provide a common interface in kiwi to allow using all tools such that the container support in kiwi covers every linux distribution no matter what tooling was preferred. Related to Issue #859 * Fri Oct 26 2018 ms@suse.de - Warn on Modifications to intermediate config files Some files are taken from the host and managed as intermediate config files during the build of the image. Changes to those files during the build run by e.g a script will not become effective because the file gets restored. With this patch we detect the modification condition and throw a warning message such that the author of the image can adapt the description as suggested in the message. This Fixes #817 * Thu Oct 25 2018 ms@suse.de - Cleanup code to make flake8 happy The new version of flake8 is more strict on code checking and complained at several places. This commit fixes the code smells such that flake8 is happy again * Fri Oct 19 2018 ms@suse.de - Bump version: 9.16.26 → 9.16.27 * Fri Oct 19 2018 ms@suse.de - Use %{ix86} rather than %ix86 in spec template Clear macro annotation prevents clarity issues * Thu Oct 18 2018 ms@suse.de - Fixed spec file for gfxboot requires Require gfxboot but only for the x86 architecture * Thu Oct 18 2018 ms@suse.de - Bump version: 9.16.25 → 9.16.26 * Thu Oct 18 2018 dcassany@suse.de - Move the default rpm database path into Defaults class * Thu Oct 18 2018 ms@suse.de - Handle default uri mime type in Defaults class * Thu Oct 18 2018 dcassany@suse.de - Add a hardcoded rpm database path to import trusted keys This commits adds a hardcoded rpm database location to make sure the imported keys are in the expected location for zypper. Fixes #855 * Thu Oct 18 2018 ms@suse.de - Allow simple path source in Uri class This patch is needed as follow up fix for the setup of the package cache in local repositories. The is_remote method from the Uri class is used to identify if a repostory source is remote or local. At that point the initial repository source was already translated into its components. In case of a local repository the Uri instance now receives a simple path and the is_remote method raised with a style error. This patch allows the Uri class to be more friendly and initializes a local path as file:/ typed source. Related to Issue #847 * Thu Oct 18 2018 ms@suse.de - Bump version: 9.16.24 → 9.16.25 * Thu Oct 18 2018 ms@suse.de - Add timestamp to logfile entries On the console output we use a log format with timestamps This is useful for the logfile contents too * Wed Oct 17 2018 seife@tuxbox-git.slipkontur.de - sort package list which accompanies the image This makes it much easier to diff the lists of two images to find out the differences in package versions. * Wed Oct 17 2018 ms@suse.de - Don't cache packages from local repos for zypper Access to packages from local repositories is as fast as reading them from a cache location. The additional package copy and cache update is superfluous and should be avoided. This Fixes #847 * Tue Oct 16 2018 ms@suse.de - Bump version: 9.16.23 → 9.16.24 * Tue Oct 16 2018 dcassany@suse.de - Update /etc/machine-id management docs Updates the information about how /etc/machine-id is treated in KIWI and provides some hints for old systems where /var/lib/dbus/machine-id is not a symlink to /etc/machine-id Related to #843 * Tue Oct 16 2018 ms@suse.de - Unpack root.tar.gz file for LVM integration test * Tue Oct 16 2018 ms@suse.de - Added LVM integration test build * Mon Oct 15 2018 ms@suse.de - Bump version: 9.16.22 → 9.16.23 * Mon Oct 15 2018 ms@suse.de - Added machine id setup in dracut preparation In case of a dracut booted image we empty out the systemd machine-id configuration file to trigger the rebuild of that information by the dracut boot code at boot time. This allows for unique systemd identifiers if the same image gets deployed on different machines. This also makes the script implementations people put in in config.sh or images.sh to solve this problem obsolete. This Fixes #843 * Fri Oct 12 2018 ms@suse.de - Fix use of uri type in debootstrap call Referencing a file in a debootstrap call is done using the file:/ source type. However when using file:// debootstrap does something different and failed to find the file. The additional / had a bad impact to the call. * Thu Oct 11 2018 ms@suse.de - Bump version: 9.16.21 → 9.16.22 * Thu Oct 11 2018 ms@suse.de - Delete obsolete rhel/fedora doc move With the fix to use the rpm macro consistently it is no longer required to move around the docs * Thu Oct 11 2018 ms@suse.de - Bump version: 9.16.20 → 9.16.21 * Thu Oct 11 2018 ms@suse.de - Fixed package specs for dracut modules on fedora dracut-network is a separate package on Fedora/RHEL too * Thu Oct 11 2018 ms@suse.de - Add alternative search path for syslinux binaries On debian/ubuntu systems /usr/lib/ISOLINUX is a valid search path for syslinux binaries like isolinux.bin. This Fixes #839 * Thu Oct 11 2018 ms@suse.de - Fixed package doc install target The spec file uses the %{_defaultdocdir} macro but the corresponding Makefile target used a hardcoded path which lead to inconsistencies on debian/ubuntu based systems. This Fixes #838 * Thu Oct 11 2018 ms@suse.de - Fixed package specs for dracut modules on debian btrfs tools are provided by btrfs-tools package and not by btrfs-progs. In addition dracut-network is a separate package on debian/ubuntu based distributions. This Fixes #837 * Tue Oct 09 2018 ms@suse.de - Don't require gfxboot on rhel/fedora * Tue Oct 09 2018 ms@suse.de - Fixup zypper calls in documentation The way the documentation describes the zypper call to add a repository was wrong in several places. * Tue Oct 09 2018 ms@suse.de - Added gfxboot to required packages in spec kiwi calls gfxboot as tool when building live iso images. Thus this tool provided by the gfxboot package should be a requirement for kiwi * Tue Oct 09 2018 ms@suse.de - Bump version: 9.16.19 → 9.16.20 * Mon Oct 08 2018 ms@suse.de - rebuild auto generated code with stable generateDS For some reason the xml_parse code generated by generateDS v2.29.24 caused warnings on simple type XSD patterns. Therefore I rebuild the code with the stable build version v2.29.14 which fixed that issue * Mon Oct 08 2018 ms@suse.de - Fixup README travis and codacy status badges * Mon Oct 08 2018 ms@suse.de - Adding bugfix trace for bsc#1110869 bsc#1108508 ticket was fixed with request #831 from SUSE/fix_uri_handler * Sun Oct 07 2018 ms@suse.de - Include livenet module with dmsquash-live support The upstream dracut dmsquash-live module supports network mode with the livenet module. But that module must be explicitly included and is not fetched automatically. This Fixes #827 * Fri Oct 05 2018 ms@suse.de - Bump version: 9.16.18 → 9.16.19 * Fri Oct 05 2018 ms@suse.de - Rename private method to be more expressive * Fri Oct 05 2018 dcassany@suse.de - Add Codec utils for bytes literals decoding In case of a literal decoding failure it tries to decode the result in utf-8. This is handy in python2 environments where python and the host might be using different charset configurations. In python3 this issue seams to be solved. Fixes #829 and bsc#1110871 * Fri Oct 05 2018 ms@suse.de - Fixed URI handling with token query option So far only the query format ?credentials=... was supported. In case of ?random_token_data the returned uri was truncated and also the format check on the query caused a python trace. This Fixes #830 and Fixes #828 * Fri Oct 05 2018 dcassany@suse.de - Make use of the quiet flag of mountpoint command This commit sets the use of -q flag of mountpoint. Kiwi only checks the return code, thus any stdout is useless in this case. Fixes #829 * Tue Oct 02 2018 fergal.mc.carthy@suse.com - Eliminate redundant code Create a helper method, _create_volume_no_zero, which calls the lvreate command with appropriate options and calls the vgscan command immeditately afterwards to create any missing /dev nodes. * Sat Sep 29 2018 ms@suse.de - Fixed broken link to ec2uploadimg tool * Sat Sep 29 2018 ms@suse.de - Update contact information We moved from IRC to Matrix as chat platform. Thus the documentation needs to be updated accordingly * Thu Sep 27 2018 fergal.mc.carthy@suse.com - Fixes LVM based image creation in OBS While attempting to create LVM based images under the Open Build Service I recently ran into some issues related to the fact that there is no udev running in the chroot environment used to build kiwi based images. Two workarounds have been implemented in this patch: (1) When calling lvcreate, include the `-Zn` option to disable the automatic zeroing of the header of the newly created LV device; doing so requires that the LV device's /dev entry exists immediately after it has been created, but in a chroot'd environment udev isn't going to be running to automatically populate /dev/<vg_name>/<lv_name> or /dev/mapper/<vg_name>-<lv_name>. This should be safe to do since the LV is being created within a loopback device based partition, which is backed by a zero filled file, created by qemu-img. (2) After creating an LV we need to run `vgscan --mknodes` to create the required device nodes under /dev, which won't be automatically created since udev isn't running in the chroot'd environment. Unit tests updated to account for additional `-Zn` arguments that are being passed to `lvcreate` and for additional call that is being made to `vgscan --mknodes`. This fixes #824. * Wed Sep 26 2018 ms@suse.de - Bump version: 9.16.17 → 9.16.18 * Wed Sep 26 2018 dcassany@suse.de - Create parent qgroup when snapper is present This commit creates a new parent quota group (1/0) of level 1 when btrfs_quota_groups is enabled and snapper present into the image root tree. Related to bsc#1093518 and #812 * Wed Sep 26 2018 ms@suse.de - Bump version: 9.16.16 → 9.16.17 * Wed Sep 26 2018 ms@suse.de - Fixup make build target Don't include auto generated schema docs into the source tarball. Also cleanup MANIFEST.in from files no longer present in the repository * Wed Sep 26 2018 ms@suse.de - Bump version: 9.16.15 → 9.16.16 * Wed Sep 26 2018 ms@suse.de - Disable warnings report from pytest By default pytest now generates warnings for all modules used in the tox environment. This information is nice but taints the test output of the code of this project and is therefore unwanted. * Wed Sep 26 2018 ms@suse.de - Bump version: 9.16.14 → 9.16.15 * Wed Sep 26 2018 ms@suse.de - Customize latex output for look and feel * Wed Sep 26 2018 ms@suse.de - Update development doc chapter per review by Tom * Tue Sep 25 2018 dcassany@suse.de - Make volume id customizable for installation ISOs This commit makes volid attribute also available for OEM images. The installation media makes use of the volid value. Only posix safe names are allowed, up to 32 characters. Fixes #811 * Mon Sep 24 2018 ms@suse.de - Include PDF build of documentation to the package Bundle a PDF version of the online documentation with the rpm package build. Due to the complexity of getting a latex build environment into the travis CI which does not take forever to install, the bundling of a built PDF into the pypi archive has been skipped. Users installing from pypi would need to install a latex env on their machine and run make latexpdf from the installed bundle. This Fixes #819 * Mon Sep 24 2018 ms@suse.de - Update docs for setting up development environment Reference py3.6 when showing example tox call. Also delete a py version reference where it was not needed * Fri Sep 21 2018 ms@suse.de - Update kiwi tools README Delete obsolete entries for tools no longer present * Thu Sep 20 2018 dcassany@suse.de - Adding bugfix trace for bsc#1108508 bsc#1108508 ticket was fixed with bf556a96 and 77517cff commits. Just adding the ticket reference here. * Wed Sep 19 2018 ms@suse.de - Fixed disk detection for live iso in loopback grub If the live iso is used as a disk on e.g USB sticks and is configured to setup a persistent write space via the initrd option rd.live.overlay.persistent, it's required to find the disk device to create a write partition on it. This detection worked if the live iso is binary dumped on the disk and bootet due to the hybrid support each iso built by kiwi provides. However if the live ISO deployment should not destroy existing data on the disk there is an alternative setup which uses grub's loopback support and puts the iso as a file on some partition of the disk. In this mode the kiwi-live dracut module failed to find the disk device and could not setup a persistent write partition. * Fri Sep 14 2018 ms@suse.de - Bump version: 9.16.13 → 9.16.14 * Fri Sep 14 2018 ms@suse.de - Fixed spec template Directory delimiter missing in call for install_dracut target * Fri Sep 14 2018 ms@suse.de - Bump version: 9.16.12 → 9.16.13 * Thu Sep 13 2018 dcassany@suse.de - Make use of kiwi/utils/sysconfig This commit makes use the sysconfig kiwi utility in order to read and eventually update the /etc/sysconfig/snapper file. * Thu Sep 13 2018 dcassany@suse.de - Snapper configuration for btrfs quota support refactored This commit refactors the snapper configuration for btrfs quota support when btrfs_root_is_snapshot is enabled. The sysconfig file /etc/sysconfig/snapper is now taken into consideration. Fixes bsc#1093518 * Wed Sep 12 2018 ms@suse.de - Fixed overlay of intermediate config files Some config files e.g etc/hosts needs to be temporary copied from the buildsystem host to the image root system. This is done by a custom copy with the .kiwi extension and a symlink to that file. During the installation process the package manager either overwrites the file or creates a .rpmnew variant. In case a .rpmnew variant exists there is code in kiwi which restores that .rpmnew variant to become the real file. However that _restore_intermediate_config_rpmnew_variants() method runs after overlay files has been applied to the system because it's part of the final cleanup step. In order to preserve an eventual overlay version of the file the .rpmnew variant gets only restored if the real file does not exist. This Fixes #807 * Wed Sep 12 2018 ms@suse.de - Fixed dice documentation The chapter: Building in a Self-Contained Environment holds a fixed ruby version in the package install which was outdated. It also still referenced the container as tar.xz but we have changed to uncompressed containers by default a while back * Tue Sep 11 2018 ms@suse.de - Fixed filesystem builder use of exclude list kiwi defines a global Defaults.get_exclude_list_for_root_data_sync method but it was not used in the scope of the filesystem builder. Thus this builder was missing the exclusion of the .buildenv file. This references Issue #422 and Fixes #814 * Wed Sep 05 2018 dcassany@suse.de - Enhance /etc/snapper/configs/root file parser * Tue Sep 04 2018 dcassany@suse.de - Fix quota groups management when snapper is present * Fixes the config file path if root is snapshot * Uses the correct QGROUP="<group>" syntax * Do not overwrite the config file if already present Fixes bsc#1093518 * Sat Aug 25 2018 ms@suse.de - Separate dracut module install by Makefile target The dracut modules like kiwi provides it should not be part of the default install target. If kiwi gets installed from source or via pip all dracut code gets installed on that system which is unwanted and in the worst case leads to boot trouble next time this system rebuilds its initrd via dracut. Therefore an extra Makefile target which is used in the spec of an rpm but not in the install target of setup.py is provided in this commit. As a consequence the installation from pip will not install any dracut modules on that system which is intentional. Installing from source requires to run make install_dracut which if called assumes the caller knows what he/she does :) * Mon Aug 20 2018 ms@suse.de - Bump version: 9.16.11 → 9.16.12 * Mon Aug 20 2018 ms@suse.de - Follow up fix for skip_cleanup use make sure doc_travis tox target has created the manual pages such that the environment contains this data * Mon Aug 20 2018 ms@suse.de - Bump version: 9.16.10 → 9.16.11 * Mon Aug 20 2018 ms@suse.de - Use skip_cleanup for deploy stage in travis We need the tox build environment to run the deployment * Mon Aug 20 2018 ms@suse.de - Bump version: 9.16.9 → 9.16.10 * Mon Aug 20 2018 ms@suse.de - Follow up fix for deploy target Integration of man pages must be done as part of the sdist setup because the travis pypi deployment only uses the sdist target to bundle the sources * Mon Aug 20 2018 ms@suse.de - Bump version: 9.16.8 → 9.16.9 * Mon Aug 20 2018 ms@suse.de - Fixed deploy target As part of the deploy process in travis a bundle to pypi is uploaded. The bundle is missing the compiled manual pages because the doc_travis stage did not create them. * Wed Aug 08 2018 ms@suse.de - Bump version: 9.16.7 → 9.16.8 * Wed Aug 08 2018 ms@suse.de - Update pxe server setup documentation Delete the suggested modifications to /etc/sysconfig/atftpd and trust the defaults provided by the package * Wed Aug 08 2018 ms@suse.de - Added support for system wide config file If there is no user specific config file we are also looking for a system wide /etc/kiwi.yml file * Wed Aug 08 2018 dcassany@suse.de - use more meaningful variable names * Tue Aug 07 2018 dcassany@suse.de - Fix baseStripUnusedLibs config method This commit arguments handling of the baseStripUnusedLibs that was not prepared to handle quoted variable containing a list. Fixes #798 * Tue Aug 07 2018 ms@suse.de - Added doc chapter for remote live boot * Mon Aug 06 2018 ms@suse.de - Added support for pxe live boot via AOE The live ISO should support a network reference. We are using the Ata Over Ethernet protocol to achieve this. In combination with pxe boot of the kernel/initrd a live iso can boot from the network using the following parameter example: root=live:AOEINTERFACE:e0.1 rd.kiwi.live.pxe Export of the live iso file via AOE can be achieved using the vblade toolkit which needs to be available on the exporting system and compatible with the live operating system. This Fixes #796 * Mon Aug 06 2018 ms@suse.de - Run schema validation/update per XSL stylesheets * Mon Aug 06 2018 ms@suse.de - Added XSL stylesheet to auto update schema Drop oem-ataraid-scan from oemconfig if specified * Mon Aug 06 2018 ms@suse.de - Update vagrant doc chapter redirect links * Mon Aug 06 2018 ms@suse.de - Drop oem-ataraid-scan from schema Along with the change we pin generateDS version to 2.29.14 because the newer version (2.29.19) creates broken python syntax for elements with a value list for their content like it's the case for the packagemanager element. The tool uses the name k.packagemanager.content as class name which is invalid for python. * Mon Aug 06 2018 ms@suse.de - Delete dmraid aka: softraid soft/fakeraid support In fate#323743 the decision was made to drop dmraid from the distribution. Along with the low business case for those controllers and the support for linux softraid via mdadm we also drop the support in kiwi for oem-ataraid-scan * Mon Aug 06 2018 ms@suse.de - Fixed unresolvables in EC2 integration build For some reason libyui-ncurses-pkg8 is gone now * Mon Aug 06 2018 ms@suse.de - Fixed unresolvables in integration builds For some reason libyui-ncurses-pkg8 is gone now * Wed Aug 01 2018 ms@suse.de - Bump version: 9.16.6 → 9.16.7 * Wed Aug 01 2018 ms@suse.de - update vagrant doc chapter per review by Tom * Wed Aug 01 2018 ms@suse.de - Added vagrant setup chapter in the docs Document steps to create a vagrant box for the libvirt provider. Also provide information on provider support This Fixes #792 * Tue Jul 31 2018 ms@suse.de - Use xattr 0.9.3 Latest xattr is broken on pip * Tue Jul 31 2018 ms@suse.de - Fixed make obs_test_status The helper script .obs_test_status looks up the build results from the integration tests. With the introduction of multibuild integration tests the script has to apply some modifications to get the correct results This is related to Issue #791 * Mon Jul 30 2018 ms@suse.de - Bump version: 9.16.5 → 9.16.6 * Mon Jul 30 2018 dcassany@suse.de - Fix result bundle command This commits fixes a regression introduced in 98c9c77a * Mon Jul 30 2018 ms@suse.de - Bump version: 9.16.4 → 9.16.5 * Mon Jul 30 2018 ms@suse.de - Fixup validation of boottimeout attribute If boottimeout is set to zero it is evaluated as "not set" and the default applies. However it's a fairly well approach to set a zero second boot timeout. This Fixes #789 * Fri Jul 27 2018 dcassany@suse.de - Add build tests for CentOS * Fri Jul 27 2018 dcassany@suse.de - Do not replace version from the image name This commit makes sure that replacing version to version plus the build id on resulting files happens only on version suffixes. Before that if image name was including the version string it, this part was also replaced. Fixes #787 (bsc#1102868) * Fri Jul 27 2018 dcassany@suse.de - Extending result bundle task tests to better cover corner cases This commit adds some tests to better cover a couple of cases: * image name contains the version of the image * the file in result does not include the version * Wed Jul 25 2018 ms@suse.de - Cleanup misleading error message In root_bind if the cleanup failed to remove a directory hierarchy the error message was just displaying the path as it would be on the host root and not based on the root of the image root tree. * Tue Jul 24 2018 dcassany@suse.de - Modify python-yaml dependency for CentOS and RHEL 7 This commit fixes #785 * Fri Jul 20 2018 dcassany@suse.de - Do not run Codacy analysis on tests * Thu Jul 19 2018 ms@suse.de - Fixup DiskFormatOva implementation The inheritance and super call concept used in this class destroys the OO design concept of loosely coupled code and also leads to a broken build because it bypasses the post_init constructor called by the base class * Mon Jul 16 2018 dcassany@suse.de - Exclude tests in codacy analysis * Mon Jul 16 2018 ms@suse.de - Bump version: 9.16.3 → 9.16.4 * Mon Jul 16 2018 ms@suse.de - Added grub2 module packages for GCE test build * Mon Jul 16 2018 ms@suse.de - Fixup timezone and keytable setup for GCE build * Mon Jul 16 2018 ms@suse.de - Second round of package fixes for GCE test build * Mon Jul 16 2018 ms@suse.de - Update schema for GCE build test to latest version * Mon Jul 16 2018 ms@suse.de - Fixup package list for GCE test build * Mon Jul 16 2018 ms@suse.de - Added Google Compute Engine build test * Mon Jul 16 2018 ms@suse.de - Deleted obsolete landscape setup Code quality is checked via codacy now * Mon Jul 16 2018 ms@suse.de - Rebuild schema documentation * Mon Jul 16 2018 ms@suse.de - Fixed building VMware images with pvscsi adapter Qemu does not natively support the pvscsi adapter type. However there is a VMware suggested procedure which allows to change the lsilogic setup to pvscsi inside of the DDB of a formerly created lsilogic configured image format. This patch implementes that procedure and Fixes bsc#1099569 * Mon Jul 16 2018 ms@suse.de - Rebuild schema documentation * Mon Jul 16 2018 ms@suse.de - Bump version: 9.16.2 → 9.16.3 * Fri Jul 13 2018 ms@suse.de - Fixed name of checksum file for pxe type The pxe image build generates among others a checksum file with the suffix '.md5' This file is read by the legacy netboot code and is expected to have the same basename as the image file itself. However if the compressed attribute is set the image file name is set to 'image.xz' and the checksum is named 'image.xz.md5' which is wrong because 'image.md5' is expected. This patch makes sure the checksum file is always set to 'image.md5' no matter if the compressed flag is configured or not * Fri Jul 13 2018 ms@suse.de - Fixed custom_args argument assignment in BootImage custom_args has been deleted from BootImageKiwi class but was still passed in the Factory * Fri Jul 13 2018 ms@suse.de - Added runtime check for label use Added check_volume_label_used_with_lvm to check if custom volume labels are used in the scope of LVM * Fri Jul 13 2018 ms@suse.de - Fixed GCE image file name In former times Google requires the image name to follow their naming conventions. However that seems to have changed and it is no longer required to match a certain pattern. Thus this patch changes the output name of the GCE tar file to use the same naming schema as KIWI applies to its output files * Thu Jul 12 2018 dcassany@suse.de - Add codacy.yml config file * Wed Jul 11 2018 dcassany@suse.de - Move from landscape.io to codacy.com * Wed Jul 11 2018 dcassany@suse.de - Updated Travis check icon to forked project * Wed Jul 11 2018 ms@suse.de - Support label attribute in volumes The optional label attribute in a volume section allows to specify a filesystem label for the selected volume. The label setup will have no effect on filesystems which implements their own volume management like it's the case for btrfs. This Fixes #738 * Wed Jul 11 2018 ms@suse.de - Update schema tron rules for btrfs type attributes The btrfs_* attributes only applies for vmx and oem types * Tue Jul 10 2018 ms@suse.de - Fixed some code smells * Use of unused variables, and dangerous defaults * Update of design patterns on pylint and landscape * Fri Jul 06 2018 ms@suse.de - Add support for activation of btrfs quota groups If the new type attribute btrfs_quota_groups is set to true this will enable the quota group system for btrfs based systems. This Fixes #772 and bsc#1093518 * Fri Jul 06 2018 dcassany@suse.de - Improve coding style, tests and label format validation * Fri Jul 06 2018 dcassany@suse.de - Add '--add-container-label' flag This commits adds a command line flag to add a label for container image types. The flag can be used multiple times. Fixes #770 * Wed Jul 04 2018 ms@suse.de - Added system cleanup methods Some files in the system gets created by services like systemd or zypper and are meant to be created once on the target system. However in the image they might be unwanted. Thus this commit adds convenience methods to delete files which gets automatically re-created by the services on startup. Whether or not the methods are used is in the responsibility of the author of the image descripion. This Fixes bsc#1098535 * Fri Jun 29 2018 adrian@suse.de - avoid double quoting of disturl in label (...="'obs://...'"). avoid always printed warning of missing disturl make use of disturl variable * Wed Jun 20 2018 ms@suse.de - Bump version: 9.16.1 → 9.16.2 * Wed Jun 20 2018 ms@suse.de - Simplify configfile loading prefix and root variables are correctly set, thus calling the "normal" command has the same effect than the explicit call for "configfile" * Tue Jun 19 2018 ms@suse.de - Prevent building custom efi image If the distribution provides a prebuilt efi image kiwi should use it instead of building its own image. * Wed Jun 13 2018 ms@suse.de - Bump version: 9.16.0 → 9.16.1 * Wed Jun 13 2018 ms@suse.de - Avoid module loading in grub config template This patch is two fold. First part replaces the import of dedicated video modules in the grub image by the all_video module. Second part avoids runtime module insertion which requires access to the boot filesystem which is not guaranteed on sophisticated rootfs structures like btrfs plus readonly snapshots and what not. Thus we make sure all boot code is embedded into the grub image(s) and no extra loading of modules at runtime will be needed. This Fixes bsc#1096937 * Tue Jun 12 2018 dcassany@suse.de - Fix for bsc#1094788 This is just an empty commit to include the bugfix reference in the repository history. The bugfix for bsc#1094788 was actually commited in: commit 835cebfe5c488515dfbcdf33dab6262613ca5508 Author: Marcus Schäfer <ms@suse.de> Date: Tue May 29 16:42:55 2018 +0200 * Tue Jun 12 2018 ms@suse.de - Complete GUID change from signed to unsigned Follow up fix to complete the binary packing of the GUID format to use unsigned types. Missed to move short source from signed to unsigned. This Fixes bsc#1095267 * Wed Jun 06 2018 ngompa13@gmail.com - Use the versioned Python interpreter path to run build helper scripts The kiwi build process mostly does the right thing in terms of executing with the correct Python interpreter throughout the build process, with the exception of the Makefile not correctly locating the versioned Python interpreter executable path, and the bash completion generator being executed using '/usr/bin/python' without regard for what the target environment was. This is a problem when a build environment complying with PEP 394 as it stands today does not have Python 2 installed, such as when kiwi is being built as a Python 3-only package in Fedora. Thus, the Makefile has been adjusted to not only correctly locate the versioned Python interpreter, but to also execute 'completion_helper' with the correct interpreter. Additionally, a trivial change to the shebang to 'completion_helper' was made to be consistent with other Python-based build helper scripts. This is part of the overall effort to eliminate the dependencies on Python 2 in Fedora. Reference: https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 * Wed Jun 06 2018 ms@suse.de - Bump version: 9.15.4 → 9.16.0 * Wed Jun 06 2018 ms@suse.de - Move fedora integration test build to fc28 distro * Tue Jun 05 2018 ms@suse.de - Bump version: 9.15.3 → 9.15.4 * Tue Jun 05 2018 ms@suse.de - Fixup move_to_root method move_to_root is called to check each element of a given list and changes any path specification to a valid path if the given root path would be it's root(/). This tranformation implied the creation of paths containing double slashes like //foo which was considered harmless. However it has turned out that the dnf package manager makes a difference here which requires to fix the resulting paths. This Fixes #761 * Mon Jun 04 2018 dcassany@suse.de - Adding license tag under description tag in schema This license tag does not effect the resulting image in any way. The tag is just included to state the license of the kiwi image sources in case they are distributed. Fixes #728 * Mon Jun 04 2018 ms@suse.de - Make sure profile env is included in live images For all images which boots via dracut the .profile file is included except for live iso's because no information is needed from that file to boot or customize the boot. However the .profile contains the kiwi_revision information which is useful for any image type. This Fixes #755 * Mon Jun 04 2018 ms@suse.de - Add config-cdroot to description import list During the prepare step the image description and mandatory files needed in the create step are copied into the image root system below the image/ directory. In case of the optional config-cdroot archive this copy action was missing which lead to the problem that the archive was not present if the kiwi system create command is sequence is used. This Fixes #756 * Mon Jun 04 2018 ms@suse.de - Added true module to grub image list When kiwi creates a grub image a list of modules are embedded. For the purpose of snapshot boot the true module seems to be used but was not included at build time when kiwi created the grub image. This Fixes bsc#1093917 * Mon Jun 04 2018 ms@suse.de - Changed GUID format from signed to unsigned With reference to Microsoft Guid constructors it seems unsigned values are allowed which could exceed the value range of the binary unpack used in kiwi. This Fixes bsc#1095267 * Fri Jun 01 2018 dcassany@suse.de - Fix SC2164 complain of shellcheck * Thu May 31 2018 dcassany@suse.de - Updating shellcheck call from tox Recent shellcheck versions are more strict and complain about backslashes "\" used in literals claiming it is preferred to use double backslashes "\\". As is just a styling advise and we use backslashes in multiple commands (echo, sed, etc) I believe this can be ignored. * Wed May 30 2018 dcassany@suse.de - Relax runtime check for ISO images using dmsquash This commit relaxes the dracut-kiwi-live module requirement if dmsquash dracut module is selected in flags attribute. * Tue May 29 2018 ms@suse.de - omit multipath module in live iso initrd The multipath module creates device maps which puts the device in a busy state and prevents the creation of a persistent write partition. As multipath seems never useful for the root of a live iso image we generally omit this module from being included * Tue May 29 2018 ms@suse.de - Fixup LOADER_LOCATION in sysconfig/bootloader By default we always set LOADER_LOCATION=mbr which is wrong if EFI is in use. This patch updates the value to be correct. It also seems that this variable is only consumed by the yast2 bootloader module from past days. Thus we consider it obsolete and on the to be droped list in future releases. This Fixes #746 * Tue May 29 2018 ms@suse.de - Bump version: 9.15.2 → 9.15.3 * Mon May 28 2018 ms@suse.de - Fix setup of LOADER_TYPE in sysconfig/bootloader LOADER_TYPE value for the grub2 bootloader depends on the use of EFI. This Fixes bsc#1094883 * Mon May 28 2018 ms@suse.de - Added documentation for config-cdroot archive * Mon May 28 2018 ms@suse.de - Added support for config-cdroot archive The image description now allows an optional file named: config-cdroot.tar[.compression_postfix]. The file gets unpacked as user data for live and install ISO images. This allows users to add e.g license files or reference documentation to the ISO image. This Fixes #737 * Mon May 28 2018 dcassany@suse.com - Verify file does not exist before creating symlink * Mon May 28 2018 dcassany@suse.com - Add service dependencies in generators Correctly adding the initrd-root-fs.target service dependency to auto generated sysroot.mount for kiwi-live and kiwi-overlay dracut modules. Fixes #741 * Mon May 28 2018 ms@suse.de - Do not create static dev nodes in root init For compatibility reasons kiwi created a set of static device nodes when initializing a new image root system. With the presence of devtmpfs this should no longer be needed. In addition the static dev node setup now also causes problems on filesystems like btrfs which was the reason to delete this code now. This Fixes bsc#1087104 * Thu May 24 2018 dcassany@suse.com - Do not delete uncompressed base docker images Fixes #739 * Wed May 16 2018 ms@suse.de - Bump version: 9.15.1 → 9.15.2 * Wed May 16 2018 dcassany@suse.com - Fix zypper add lock operations This commit fixes the arguments passed to zypper in add lock operations. * Tue May 15 2018 dcassany@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 2018 ms@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 2018 ms@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 2018 ms@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 * Mon May 14 2018 dcassany@suse.com - Add additionaltags containerconfig attribute This commit adds `additionaltags` attribute, so multiple tags to a container image can be defined in a comma separated value. Fixes #713 * Wed May 09 2018 ms@suse.de - Bump version: 9.15.0 → 9.15.1 * Wed May 09 2018 davidcassany@gmail.com - Add a chapter for uninstall package requests in docs (#726) Add a chapter for uninstall package requests in docs * Tue May 08 2018 ms@suse.de - Update arm integration test Existing panda build was outdated and non functional. Move the test to a more popular target and write the image description to use technology matching the suse arm development effort. Target is now Rpi(64bit) * Tue May 08 2018 ms@suse.de - Use latest version of sphinx Formerly sphinx==1.6.7 was used because travis-sphinx failed with latest sphinx. Now travis-sphinx fails with 1.6.7 and I hope using latest sphinx will fix that * Tue May 08 2018 ms@suse.de - Bump version: 9.14.7 → 9.15.0 * Mon May 07 2018 dcassany@suse.com - Add comment in pinch_system calls * Mon May 07 2018 dcassany@suse.com - Refining the uninstall type implementation * Fri May 04 2018 dcassany@suse.com - Add uninstall pacakges type This commit adds a new `uninstall` type for packages. Packages listed with this type will be removed by the package manager cleaning also any unneeded dependency. The removal is executed after running `config.sh`. Also in this commit `delete` type for packages is now executed after `uninstall` packages, meaing it also happens after `config.sh`. Fixes #625 * Fri May 04 2018 ms@suse.de - Bump version: 9.14.6 → 9.14.7 * Fri May 04 2018 dcassany@suse.com - Some simple code cleaning * Fri May 04 2018 ms@suse.de - Fixed check for volume group in use The former implementation evaluates the output of the vgs command and set the volume group as in use if one of the listed volume groups on the host contains the group name set by the image description. This would also match if the group name set in the image description is e.g 'System' and the a volume group on the host with name 'SystemVG' exists. However a conflict only exists on exact match of the name. The proposed fix is to use the --select feature from vgs and let it show information on exact match of the vg_name field. The code in kiwi then just evaluates if the selection by vgs has a value or not. This Fixes #721 * Fri May 04 2018 ms@suse.de - Fix setup of kiwi_lvm profile variable kiwi_lvm was always set to true if a volume management system is in use. However it should only be set to true if the selected volume management system is lvm. The same applies to the kiwi_lvmgroup variable which also only makes sense if the lvm volume management system is used. This Fixes bsc#1090427 * Mon Apr 30 2018 ms@suse.de - Bump version: 9.14.5 → 9.14.6 * Thu Apr 26 2018 ms@suse.de - Extend test-image-azure integration test Use xfs as filesystem and set a tag to also test image tags * Thu Apr 26 2018 ms@suse.de - Use /dev/zero to really write a zero byte The cleanup of the 512 byte block for the vhdfixed tag was based on reading from /dev/null which does effectively nothing. As the block should be filled with zero bytes this patch changes the source from /dev/null to /dev/zero This was found by tests to reproduce the issue reported in bsc#1090953 but is not causing it * Tue Apr 24 2018 dcassany@suse.com - Add test for the utils class StringToSize This commit adds a couple of unit tests for the StringToSize class. * Tue Apr 24 2018 ms@suse.de - Bump version: 9.14.4 → 9.14.5 * Tue Apr 24 2018 ms@suse.de - Run doc target in travis test stage * Tue Apr 24 2018 ms@suse.de - Fixup doc conf.py Do not load kiwi logging which is unneeded and causes many superfluous messages on the console when sphinx build runs * Tue Apr 24 2018 ms@suse.de - Fixup docstring warning from sphinx build * Tue Apr 24 2018 ms@suse.de - Fixup travis unit test stages Build docs in deployment stage only * Tue Apr 24 2018 ms@suse.de - Include doc_travis_deploy in travis deploy stage * Tue Apr 24 2018 ms@suse.de - Fixed syntax errors shown by travis lint * Tue Apr 24 2018 ms@suse.de - Revert "Fixup travis.yml" This reverts commit 79ccbdff394e2aba4f1e8fb6390a9a8e0d1925e2. * Tue Apr 24 2018 ms@suse.de - Revert "Yet another try to get travis stages correct" This reverts commit aca057c3554795b79c651f63a58967138d00f3c8. * Tue Apr 24 2018 ms@suse.de - Yet another try to get travis stages correct * Tue Apr 24 2018 ms@suse.de - Fixup travis.yml Looks like empty lines are not allowed * Tue Apr 24 2018 ms@suse.de - Revert "Clearly separate unittest stage from deployment" This reverts commit 5fd27924c931b6b60903b0015d0a8cf31cf499f7. * Tue Apr 24 2018 ms@suse.de - Bump version: 9.14.3 → 9.14.4 * Mon Apr 23 2018 dcassany@suse.com - Some improvements on size calculation This commit simplifies the unpartitioned area size calculation. Fixes #709 and it is related to fate#323874 * Mon Apr 23 2018 ms@suse.de - Clearly separate unittest stage from deployment * Fri Apr 20 2018 ms@suse.de - Use travis stages feature for pypi deployment Problem ist that the deploy section is called for every item in the former matrix: setup. This means the pypi upload was triggered twice for the same archive which means one target always fails. In order to deploy only once travis provides a stages feature which is used in this commit * Fri Apr 20 2018 ms@suse.de - Bump version: 9.14.2 → 9.14.3 * Fri Apr 20 2018 dcassany@suse.com - Adding unpartitioned size attribute This commit adds the possibility of setting some unpartitioned area after the systemdisl partition into the image. Fixes #709 * Fri Apr 20 2018 ms@suse.de - Fixed creation of machine settings file If no vmnic setup is present a request to iterator over a NoneType object is attempted and failed. This Fixes #710 * Thu Apr 19 2018 dcassany@suse.com - volume_manager API docs cleanup * Thu Apr 19 2018 dcassany@suse.com - repository API docs cleanup * Thu Apr 19 2018 dcassany@suse.com - system API docs cleanup * Wed Apr 18 2018 dcassany@suse.com - package_manager API docs cleanup * Wed Apr 18 2018 dcassany@suse.com - build API docs cleanup * Wed Apr 18 2018 ms@suse.de - Fixed docstring :rtype: values In Python the string type name is str not string * Tue Apr 17 2018 dcassany@suse.com - Cleanup of the iso_tools API docs * Tue Apr 17 2018 dcassany@suse.com - Cleanup of the utils API docs * Tue Apr 17 2018 ms@suse.de - Cleanup api doc strings This cleans up and fixes the api documentation for the public interface of the projects boot source code files and Fixes #700 * Tue Apr 17 2018 dcassany@suse.com - Cleanup of the solver API docs * Tue Apr 17 2018 ms@suse.de - Fixup docstring typos per review * Tue Apr 17 2018 ms@suse.de - Cleanup api doc strings This cleans up and fixes the api documentation for the public interface of the projects storage source code files and Fixes #698 * Mon Apr 16 2018 ms@suse.de - Fixup download url in setup.py Better point to installable packages. This Fixes #702 * Wed Apr 11 2018 ms@suse.de - Cleanup api doc strings This cleans up and fixes the api documentation for the public interface of the projects toplevel source code files and Fixes #697 * Tue Apr 10 2018 ms@suse.de - Fixup creation of vmware settings file The kiwi schema allows for multiple vmnic sections but kiwi only took the primary one into account. This patch uses all configured vmnic sections. This Fixes #688 * Tue Apr 10 2018 ms@suse.de - Support lookup for fstab.append on fstab creation At the time kiwi creates the fstab with all required fields to boot the system it now also looks for an optional fstab.append file and appends its contents to the fstab file. This allows to setup custom fstab entries for filesystem mounts which are established outside of the kiwi image building process by e.g a service at first boot * Tue Apr 10 2018 ms@suse.de - Add auto release to pypi on release tags This will automatically release kiwi on pypi if a new tag in master is set. This happens when bumpversion is called followed by a push and push --tags. Only if the tag is pushed the travis deployment gets triggered. This Fixes #678 * Mon Apr 09 2018 ms@suse.de - Change variable quoting for Rm/Rpm shell helpers The two methods exists to overlay their call with a logging facility. Thus it is ok and expected that the caller can pass arguments for the program e.g (Rm -rf foo) which resulted in (rm '-rf foo') leading to a runtime error. * Mon Apr 09 2018 ms@suse.de - Bump version: 9.14.1 → 9.14.2 * Fri Apr 06 2018 dcassany@suse.com - Fix default initrd_system values This commit fixes the default initrd_system value for some image types. Since this value is included in profile and potentially taken into account for some of the config script functions, it is important to have consistent values even when the image type has no initrd choice or it doesn't have initrd at all. Related to #689 * Fri Apr 06 2018 ms@suse.de - Check partition table after cow part creation Proceed with the persistent write partition setup only if the cow partition could have been created successfully * Thu Apr 05 2018 ms@suse.de - Fixed detection of disk node in live iso images If the live iso is booted as disk the initrd code needs to find the correct disk node pointing to the iso image. This was formerly done by checking if the populated disk devices contains an iso header with an application id. The information was obtained using the isoinfo tool. isoinfo is a tool provided by the obsolete and xorriso replaced cdrtools kit. In addition the lookup was unsafe because any iso with an application id would have been valid. Thus this patch changes the detection mechanism to use the volume id as it is used in the root assignment on the cmdline. The volume id is populated as device label for the assigned block device and can therefore be used as a unique id. The volume id itself is a configuration option in the image XML description. If not set the default is 'CDROM'. The information can be obtained via blkid and therefore also eliminates the isoinfo requirement * Wed Apr 04 2018 ms@suse.de - Fixup test-image-docker unresolvable state genisoimage seems no longer present in the distro * Wed Apr 04 2018 ms@suse.de - Update etc/default/grub setup kiwi writes optional grub boot parameters to the GRUB_CMDLINE_LINUX variable in default/grub. This information is then picked up by grub2-mkconfig and written to grub.cfg However there is also another variable named GRUB_CMDLINE_LINUX_DEFAULT which according to the documentation should be used preferably. While it does not seem to matter for grub it matters for yast. Thus this patch changes the configuration variable and fixes bsc#1084117 * Tue Apr 03 2018 ms@suse.de - Bump version: 9.14.0 → 9.14.1 * Tue Apr 03 2018 ms@suse.de - Fixed truncation of image when writing vhd tag When writing the vhd tag into a vhdfixed formatted image the image was opened with the wrong open bits 'wb' and thus was truncated at the 64k offset. This patch fixes the open bits to allow in-place tag writing. This Fixes bsc#1077096 * Tue Apr 03 2018 dcassany@suse.com - Make use of autoremove in Yum and Dnf to clean dependencies * Wed Mar 28 2018 dcassany@suse.com - Enable no forced deletion for dnf, yum and apt package managers This commit makes apt, yum and dnf support equivalent to zypper in terms of being capable to delete packages using the package manger tools (implies dependencies deletion is handled by the package manager) or deleting explicitly only listed packages using packager tools even if this implies breaking dependencies. * Tue Mar 27 2018 gmoro@suse.de - fix vmx fileName parameter, bsc#1084157 * Fri Mar 23 2018 ms@suse.de - Update schema version in free schema doc generator * Fri Mar 23 2018 ms@suse.de - Update schema version in headline of doc chapter * Fri Mar 23 2018 ms@suse.de - Bump version: 9.13.9 → 9.14.0 * Fri Mar 23 2018 ms@suse.de - Rebuild online schema documentation * Fri Mar 23 2018 ms@suse.de - XSL Auto update descriptions due to schema change * Fri Mar 23 2018 ms@suse.de - Delete obsolete hybrid attribute from type Any iso image we create will be a hybrid image. That was already the default for any install iso image and was a configuration option for live images. The optional selection only existed for systems which do not provide tools to make an iso hybrid. All distributions kiwi supports provides this capabilities and there is no good reason why a live or install iso should not be hybrid and bootable as iso and as disk. Also the boot in disk mode became the preferred boot method for the majority of our users which requires to provide a hybrid iso * Thu Mar 22 2018 dcassany@suse.com - Add efiparttable type attribute This commit allows to choose the partition table type for efi firmwares using the efiparttable type attribute. Fixes #638 * Thu Mar 22 2018 ms@suse.de - Update spec file to require xorriso * Thu Mar 22 2018 ms@suse.de - Cleanup hybrid call and use of iso tool options The extra isohybrid call is only needed if the mkisofs tool category is used. Thus it should be only visible at the place where the isofs is created and not as an extra step in the builder tasks. Additionally the handling of extra options was mkisofs specific and should be better done as a common meta_data record. The tool specific options should only appear in the tool specific class implementations * Thu Mar 22 2018 ms@suse.de - Allow to configure iso tool category Switch to xorriso by default but allow to setup cdrtools in the runtime configuration file * Wed Mar 21 2018 dcassany@suse.com - Remove xml_parse.py shebang in spec It removes the shebang from the autogenerated file and also removes the exception in rpmlint to ignore non-executable-script warning. Fixes #666 * Mon Mar 19 2018 dcassany@suse.com - Remove unneeded shebangs from dracut modules Fixes #668 * Mon Mar 19 2018 ms@suse.de - Added IsoToolsXorrIso class As an alternative to mkisofs/genisoimage there is now the IsoToolsXorrIso class which implements the IsoTools interface by using xorriso. This Fixes #635 * Mon Mar 19 2018 ms@suse.de - Update package MANIFEST.in Include new iso_tools directory * Fri Mar 16 2018 ms@suse.de - Added iso_tools api documentation * Fri Mar 16 2018 ms@suse.de - Add list_iso method to iso_tools api * Fri Mar 16 2018 dcassany@suse.com - Update FSF address The address has been taken from the header example published here https://www.gnu.org/licenses/old-licenses/gpl-2.0.html Fixes #667 * Fri Mar 16 2018 ms@suse.de - Add create_iso method to iso_tools api * Thu Mar 15 2018 ms@suse.de - Seperate iso tool handling into its own namespace The Iso class only provides generic helper methods around the creation of ISO filesystems. For the creation of the filesystem itself we encapsulate the tool parameter handling into its own class. For the option compatible mkisofs/genisoimage tools the IsoToolsCdrTools class exists. This allows to create e.g IsoToolsXorrIso class as a future implementation * Thu Mar 15 2018 ms@suse.de - Refactor iso helper tools There are several tools available to build iso images. genisoimage, mkisofs and also xorriso. The history of the tools shows them to be used in the range of available Linux distributions. Thus kiwi contains an abstraction layer to support them but assumed they are option compatible. With the xorriso implementation this is no longer correct and therefore a refactoring of the iso tools api is required before support for xorriso can be added. This references Issue #635 * Wed Mar 14 2018 dcassany@suse.com - Make build type mandatory in XMLState * Wed Mar 14 2018 dcassany@suse.com - kiwi_inode_size value is no longer hardcoded in more than one place * Wed Mar 14 2018 dcassany@suse.com - Add warning message for dasd * Wed Mar 14 2018 dcassany@suse.com - Rearrange defaults and some comments * Wed Mar 14 2018 dcassany@suse.com - Rearrange variable start_sector attribute to be a Partitioner attribute * Tue Mar 13 2018 dcassany@suse.com - Add disk_start_sector type attribute This commit adds the disk start sector attribute to configure the first disk sector for the first partition of the disk. Fixes #575 * Tue Mar 13 2018 ms@suse.de - Rebuild online schema documentation * Tue Mar 13 2018 ms@suse.de - Bump version: 9.13.8 → 9.13.9 * Tue Mar 13 2018 ms@suse.de - Bump version: 9.13.7 → 9.13.8 * Tue Mar 13 2018 ms@suse.de - Fixed base package requires kpartx is used by kiwi but was not required in spec * Tue Mar 13 2018 ms@suse.de - Update gitignore Do not manage changes in .pytest_cache * Tue Mar 13 2018 ms@suse.de - Tell plymouth to quit only if a dialog is called In case of a dialog kiwi uses the dialog program which conflicts with the plymouth splash system. Thus we tell plymouth to stop This patch changes the request to be send to plymouth prior to a dialog call and not in general * Mon Mar 12 2018 ms@suse.de - Bump version: 9.13.6 → 9.13.7 * Mon Mar 12 2018 ms@suse.de - Update bootloader console for oem test image Set bootloader_console="serial" for the oem test image to allow testing in the Kanku CI * Mon Mar 12 2018 dcassany@suse.com - Add profile dependencies With this commit the profile can include other profiles as a dependency. This way it is possible build an image defined by multiple profiles by just calling a single composed profile from the command line. Fixes #658 * Mon Mar 12 2018 ms@suse.de - Bump version: 9.13.5 → 9.13.6 * Fri Mar 09 2018 ms@suse.de - Disable multipath from oem build test * Fri Mar 09 2018 ms@suse.de - Fixup setup of root_filesystem_is_multipath The variable is set to a boolean value or None. If set to False due to a configuration of oem-multipath-scan this will cause the dracut multipath module to be omitted. In any other case the presence of the multipath module decides whether it will be included into the dracut generated initrd or not. * Fri Mar 09 2018 ms@suse.de - Fixup python-kiwi base package requires There is no need for the base package to require multipath. Those tools are only needed for dracut modules * Thu Mar 08 2018 ms@suse.de - Use dracut modules based on feature use As the kiwi build dracut initrd is a generic one which includes all installed dracut modules we missed a way to exclude modules from beeing incorporated even if we know it would not be needed. One example is the multipath module which would only be useful if the oem multipath scan is configured in the image description * Wed Mar 07 2018 ms@suse.de - Update test-image-oem build Create hostonly dracut initrd on first boot and replace kiwi's grub config by the result of grub2-mkconfig * Wed Mar 07 2018 ms@suse.de - Delete invalid motd file from build tests * Wed Mar 07 2018 ms@suse.de - Prepare test-image-oem build test for Kanku Activate unattended mode and preselect the installation target Also specify a fixed swapsize value to be independent of the host main memory which is used to calculate swap if no size is specified * Tue Mar 06 2018 ms@suse.de - Bump version: 9.13.4 → 9.13.5 * Tue Mar 06 2018 ms@suse.de - Fixed btrfs search path in earlyboot script If kiwi generates its own efi image for the boot process it does not setup the btrfs relative path setup in the earlyboot script embedded into the generated efi image. This has a bad impact on the file search because the btrfs setup done in kiwi puts root below the @ volume which we then need to specify of the relative lookup is not activated. Fixes bsc#1082155 * Tue Mar 06 2018 ms@suse.de - Bump version: 9.13.3 → 9.13.4 * Mon Mar 05 2018 dcassany@suse.com - Use LABEL for the swap partition If multipath and device maps are active the fstab entry should use the LABEL reference. Systemd calls swapon and it only works properly with multipath devices when LABEL reference is used or calling directly on the /dev/dm-* device file. * Sat Mar 03 2018 ms@suse.de - Bump version: 9.13.2 → 9.13.3 * Fri Mar 02 2018 ms@suse.de - The order of the options for mkisofs matters Setting -eltorito-platform after -b causes mkisofs to fail * Fri Mar 02 2018 ms@suse.de - Resize partition table after image resize The command 'kiwi image resize' allows to resize the size of a disk image. Depending on the partition table type it is also required to resize the partition table inside of the image to let the file size change become effective This Fixes #534 * Fri Mar 02 2018 MichalMarek1@eaton.com - APT: Support patternType in the bootstrap phase With patternType="onlyRequired" (the default), run debootstrap with - -variant=minbase to install only essential packages. With patternType="plusRecommended", let debootstrap also install important packages. This is not exactly what the patternType keyword means with other targets, but it allows to choose between an absolutely minimal image and a small but usable system. * Fri Mar 02 2018 ms@suse.de - Bump version: 9.13.1 → 9.13.2 * Fri Mar 02 2018 dcassany@suse.com - Reactivate device mappings after repart. Fixes #645 This commit recreates removed device maps and triggers again systemd generators in order to adapt again device units to the new context. Fixes #645 * Fri Mar 02 2018 ms@suse.de - Refactor ovftool check The way this was done mask errors from the call with the check if the tool exists on the host. This patch refactors this and makes clear where we check for the tool to be installed and where we actually call it * Fri Mar 02 2018 ms@suse.de - Extend has_option_in_help to also check error data * Thu Mar 01 2018 ms@suse.de - Check if isotool supports eltorito-platform option Along with the change there is a small refactoring to populate the iso tool search to the public api of the Iso class * Thu Mar 01 2018 ms@suse.de - Set eltorito-platform for efi The default eltorito platform is set to "x86_64 PC", however in an alternative bootloader spec for efi this would be the wrong platform spec. This patch adds the correct platform to the alt-boot setup for efi. References #643 * Wed Feb 28 2018 ms@suse.de - Fixup obs test status helper Use osc results output to get better status information * Wed Feb 28 2018 ms@suse.de - Fixed get_free_disk_bytes in dracut kiwi-lib The method used any device from the lsblk output, but it can happen that some device nodes with different name point to the same physical device. The method would then calculate the free space wrong. This patch takes the PARTUUID value into account to make sure any partition device size is used only once. This Fixes #648 * Tue Feb 27 2018 tom_schr@web.de - Use pytest instead of py.test From pytest 3.0, it is recommended to use "pytest" as the main command. The use of "py.test" is deprecated and is potentially removed in the future. * Tue Feb 27 2018 ms@suse.de - Update tox setup Add python 3.6 target and activate it for the travis and the local make targets Use major python version for the check(flake) and doc targets where the interpreter minor version is not primarily important This references #641 * Tue Feb 27 2018 ms@suse.de - Update yast setup documentation Incorporate changes per review by Tom * Mon Feb 26 2018 ms@suse.de - Fixed oem build test bind-utils explicitly required for obs to be able to resolve the package dependencies * Mon Feb 26 2018 ms@suse.de - Bump version: 9.13.0 → 9.13.1 * Mon Feb 26 2018 ms@suse.de - Only delete sub path if not empty * Mon Feb 26 2018 ms@suse.de - Fixed package lists for azure and ec2 build tests * Mon Feb 26 2018 ms@suse.de - Reference commit for bugzilla With regards to the changes done in Issue #637 this commit just creates a reference to a related bug bsc#1082163 * Fri Feb 23 2018 ms@suse.de - Cleanup config functions shell coding * Fri Feb 23 2018 amajer@suse.de - Use mkisofs instead of wodim * Fri Feb 23 2018 ms@suse.de - Delete obsolete/unused methods * Fri Feb 23 2018 ms@suse.de - Add functions.sh to shellcheck * Fri Feb 23 2018 ms@suse.de - Added doc page how to setup yast on firstboot * Thu Feb 22 2018 ms@suse.de - Allow arch attribute for profiles specification A profile could be relevant for only a specific architecture. There was no way to express that in the XML description. With the change in this commit a specification like the following is possible: <profiles> <profile name="A" description="..." arch="aarch64"/> <profile name="B" description="..." </profiles> Profile A is only usable on the aarch64 architecture, whereas profile B would be usable on all architectures. * Selecting an arch specific profile from the commandline via the --profile option on a system which is not of that architecture will result in an error message. * Using the import="true" attribute in the <profile> definition for an arch specific profile will cause the import of that profile only on that architecture and silently ignore the import on any other architecture This Fixes #637 * Thu Feb 22 2018 ms@suse.de - Update build-test descriptions for Kanku As part of the buildservice there is now also a CI system called Kanku which allows for image boot/run tests. The only requirement on the image level which is missing in our build test descriptions is the setup of the serial console. This patch updates those image descriptions which could be tested by kanku to provide a serial console at boot time. The plan is that our build-test images automatically gets boot tested by the Kanku CI. This should include boot, console-login, reboot, console login, shutdown. The required job description to do this needs to be worked out together with the Kanku team * Tue Feb 20 2018 dcassany@suse.com - Adding publisher attribute for ISOs This commit adds the 'publisher' attribute in type only for ISO image type. It sets the publisher name of the resulting ISO. Fixes #630 * Tue Feb 20 2018 ms@suse.de - Fixed yum vs. yum-deprecated binary lookup When using the yum package manager it could be either provided as yum or yum-deprecated binary. Because of this the search method to find the binary needs to know the context from which the call is performed. This could be either the host system or the created image root. This Fixes #624 * Tue Feb 20 2018 MichalMarek1@eaton.com - APT: Run debootstrap with --variant=minbase This selects only packages with Priority: required, which is more in line with what the other package managers are doing. A patch for kiwi-descriptions has been submitted to adapt to this new behavior. * Fri Feb 16 2018 ms@suse.de - Bump version: 9.12.9 → 9.13.0 * Fri Feb 16 2018 agraf@suse.de - Do not emit linuxefi/initrdefi on non-x86 platforms Grub wants to have linuxefi/initrdefi commands to execute Linux via the UEFI calling convention on x86. However, all other platforms simply use the normal linux/initrd commands, because there grub assumes that an EFI grub wants to run an EFI payload. Reflect this architecture difference in the generated grub configuration. Signed-off-by: Alexander Graf <agraf@suse.de> * Thu Feb 15 2018 ms@suse.de - Fixup grub2 theme setup The presence of a background file was mandatory for kiwi to use the theme. But the background information is optional * Wed Feb 14 2018 ms@suse.de - Deleted obsolete boot descriptions The custom kiwi boot descriptions has been moved into the kiwi-descriptions github repo and builds the compat package kiwi-boot-descriptions from there. The build of the boot image(initrd) is done by dracut and the dracut module packages provided by kiwi. The classic custom boot descriptions can still be used as alternative method if the above package is installed. Related to Issue #576 * Tue Feb 13 2018 ms@suse.de - Create compatible boot options The boot option root=install:CDLABEL= is mandatory for install images which uses the dracut initrd system. But for the custom kiwi oemboot descriptions this is causing a problem when detecting the install device. Thus the above boot option is only applied for the initrd system which actually makes use of it * Tue Feb 13 2018 ms@suse.de - Update boot description search path With the move of the boot descriptions in its own package the kiwi search path needs to be adapted to look for boot descriptions in /usr/share/kiwi/custom_boot. In addition a runtime check to exit early if the boot description could not be found or is not specified will be provided. Related to Issue #576 * Tue Feb 13 2018 dcassany@suse.com - Update the docs to the current example present in kiwi-descriptions * Mon Feb 12 2018 ms@suse.de - Bump version: 9.12.8 → 9.12.9 * Mon Feb 12 2018 ms@suse.de - Update .virtualenv.dev-requirements.txt sphinx 1.7.0 is not compatible with travis-sphinx thus we stick with 1.6.7 until travis-sphinx followed the sphinx changes * Mon Feb 12 2018 ms@suse.de - Add restrictions to Path.remove_hierarchy When an iso file is used as repo, this iso will be loop mounted on the host and bind mounted into the image root as long as the image builds. When the mount is released a recursive cleanup of the complete path happens. This is done by calling Path.remove_hierarchy. However if a sub path of the mount path contains a system root directory which is mandatory for the Linux root system it is not allowed to be deleted even if it is empty at the time of the mount cleanup. Thus this patch adds a lookup for protected directory names and only runs the recursive deletion as long as no protected member is part of the path. This fixes bsc#1080301 * Sun Feb 11 2018 ngompa@datto.com - Initial support for building Debian/Ubuntu packages in spec This adds support for producing the main kiwi package as well as the packages for the dracut modules to be used when building Debian-based distribution images with KIWI. The Debian/Ubuntu package is built using debbuild: https://github.com/ascherer/debbuild * Fri Feb 09 2018 ms@suse.de - Fixed build_pxe_root_filesystem documentation The article still used filename references from v7 code stream This patch updates the docs to match the sources it refers to * Wed Feb 07 2018 ms@suse.de - Update dropped features documentation The information on the partition based install method was unclear and misleading. This patch clarifies the documentation in this regard * Wed Feb 07 2018 ms@suse.de - Delete obsolete ovf format value Support for ova has been added which makes the ovf format value obsolete and redundant * Tue Feb 06 2018 MichalMarek1@eaton.com - OVA: Print a user-friendly message if ovftool is not available * Tue Feb 06 2018 MichalMarek1@eaton.com - OVA: Require ovftype="vmware" * Tue Feb 06 2018 rjschwei@suse.com - - Expand consistency check for grub efi package to cover debian based and RH distros * Mon Feb 05 2018 ms@suse.de - Bump version: 9.12.7 → 9.12.8 * Mon Feb 05 2018 rjschwei@suse.com - - Fix style error * Mon Feb 05 2018 ms@suse.de - Exclude install source device from target list * Mon Feb 05 2018 ms@suse.de - Fixed kiwi-dump timing issue The install code needs to wait in the pre-udev phase for the device containing the installation data to become ready before proceeding with the actual installation code. * Mon Feb 05 2018 rjschwei@suse.com - - Early exit if firmware is efi or uefi but the expected grub module is not part of the package list * Mon Feb 05 2018 ms@suse.de - Fixed dialog size of install confirmation dialog The size was too small to show device names which causes a line break to be displayed in the next line * Sun Feb 04 2018 ms@suse.de - Cleanup misleading method name * Sun Feb 04 2018 ms@suse.de - Fixed coverage report setup Latest version of the coverage module requires a report setup * Sun Feb 04 2018 ms@suse.de - Fixed target path name for gce format get_target_name_for_format in case of the gce format does not return a path spec which leads to an incomplete result information for a later bundle command. This patch fixes this. In a follow up pull request we will also update the method name from the misleading get_target_name_for_format function name to get_target_path_name_for_format * Sat Feb 03 2018 cyberorg@cyberorg.info - Use live-grub-stick * Fri Feb 02 2018 dcassany@suse.com - Fix packages file generation This commit checks the %_dbpath value of the image rpm tool. This is needed since recent rpm versions switched the default database path, thus running rpm queries to different roots might lead to errors. Fixes #605 * Thu Feb 01 2018 ms@suse.de - Bump version: 9.12.6 → 9.12.7 * Thu Feb 01 2018 ms@suse.de - Update per review by Tom * Thu Feb 01 2018 ms@suse.de - Update per review by David * Wed Jan 31 2018 ms@suse.de - Update per review by Tom * Tue Jan 30 2018 ms@suse.de - Added chapter for live-fat-stick deployment With the support for the iso-scan feature in KIWI live ISO image, also the ability to deploy file based on FAT32 usb sticks via the live-fat-stick tool exists. This chapter describes how to do it and Fixes #521 * Tue Jan 30 2018 ms@suse.de - Update pre review by Tom * Tue Jan 30 2018 ms@suse.de - Update per review by Tom * Tue Jan 30 2018 ms@suse.de - Update per review by Tom * Tue Jan 30 2018 dcassany@suse.com - Remove vmdk metadata update procedure This commit removes the method _update_vmdk_descriptor from DiskFormatVmdk class. The code part causes vmdk format issues in current up to date hipervisors such as VMWarePlayer 14 or Virtualbox 5.2. Removing this code does not produce any failure, at most can only imply loosing some features provided by open-vm-tools package. Fixes #591 * Tue Jan 30 2018 ms@suse.de - Fixed use of profile variables in kiwi-dump module The profile environment was not imported in the dracut kiwi-dump module. Thus custom settings like oem-unattended did not had an effect * Tue Jan 30 2018 ms@suse.de - Fixup docstrings in xml_state * Tue Jan 30 2018 ms@suse.de - Allow only one dracut variable for kiwi debugging * Mon Jan 29 2018 ms@suse.de - Bump version: 9.12.5 → 9.12.6 * Sat Jan 27 2018 ms@suse.de - Fixed kiwi dracut config for the final system Once the image has been deployed on the target and the system is up and running some of the kiwi dracut modules used for deployment are no longer needed and should not be taken into account when another dracut call happens on the system. * Fri Jan 26 2018 MichalMarek1@eaton.com - Add support for building OVA images Implement support for format="ova" using VMware's ovftool. We use the vmdk format as a basis and then just call ovftool to convert *.vmdk + * .vmx to an OVA. * Fri Jan 26 2018 ms@suse.de - Update documentation Update the documentation with regards to the move from the plain kiwi initrd to the dracut initrd system. This is related to Issue #576 * Fri Jan 26 2018 MichalMarek1@eaton.com - flake8: Use a more conservative max-complexity setting Set the default threshold to 12 and annotate the outliers with "noqa: C901". Most of the cases are due to lack of switch statement in python, but there are some worth titying up. Now we can grep for them :). * Fri Jan 26 2018 ms@suse.de - Bump version: 9.12.4 → 9.12.5 * Fri Jan 26 2018 ms@suse.de - Make sure there are no busy devices on reboot If the dracut kiwi-repart module skips the repartition step because the disk was already repartitioned it leaves devices in busy state which leads to a rescue shell at the system mount stage * Thu Jan 25 2018 dcassany@suse.com - uboot-setup-panda.tgz was readded by mistake as boot hooks are no longer needed * Thu Jan 25 2018 dcassany@suse.com - Adding opensuse ports repository * Thu Jan 25 2018 ms@suse.de - Bump version: 9.12.3 → 9.12.4 * Thu Jan 25 2018 ms@suse.de - Don't lookup zImage symlink Due to the workaround to lookup the gzip compressed variant of a zImage to find its version, it's required to find the full name of the zImage in order to rematch the gzip variant. Looking at the zImage link will make this to fail because there is no vmlinux link * Thu Jan 25 2018 ms@suse.de - Bump version: 9.12.2 → 9.12.3 * Thu Jan 25 2018 ms@suse.de - Fixed kernel version check for zImage kernels build as zImage contains the decompressor code as part of the kernel image and could be therefore compressed by any possible compression algorithm. In this case we assume/hope that there is also a standard gz compressed vmlinux version of the kernel available and check this one instead of the zImage variant. Fixes #587 * Thu Jan 25 2018 ms@suse.de - Bump version: 9.12.1 → 9.12.2 * Wed Jan 24 2018 rjschwei@suse.com - - Image name generation for GCE images + Fix the name generation for GCE images. The implementation assumed that GCE images are of a type that use a kiwi generated initrd, looking for image name components based on the boot attribute in the type element. This assumption is not correct, use the name provided in the XML to compose the image name. * Wed Jan 24 2018 dcassany@suse.com - Update the man pages * Wed Jan 24 2018 ms@suse.de - Fixed installation image builder Use get_boot_names from BootImage instance to ask for the name of the initrd instead of constructing this information from static values. The name of the initrd is different per distro and toolkit * Wed Jan 24 2018 ms@suse.de - Provide a get_boot_names method in boot classes The naming schema for an initrd file name depends on the boot image type as well as on the underlaying initrd creation toolkit. In order to encapsulate that in a clear interface the code to know about the correct names has been moved into the classes which are responsible for it and out of the builder/disk class * Wed Jan 24 2018 ms@suse.de - Bump version: 9.12.0 → 9.12.1 * Wed Jan 24 2018 ms@suse.de - Fixed dracut-kiwi-oem-dump requires setup on rhel/fedora multipath is provided by device-mapper-multipath * Tue Jan 23 2018 dcassany@suse.com - Adding package_gpgcheck flag as an option for set-repo and add-repo Fixes #565 * Tue Jan 23 2018 dcassany@suse.com - Adding uboot-setup kiwi hooks For some reason the uboot-setup-panda.tgz file did not get into master branch, probably was not properly pushed in the former include_build_tests_arm branch. * Tue Jan 23 2018 davidcassany@gmail.com - Fix build tests to match new locale setting strategy (#586) * Mon Jan 22 2018 ms@suse.de - Added timezone package to build tests With the latest update on how kiwi handles the locales with systemd-firstboot, only locales defined in timezone package can be set, thus Europe/Berlin is not possible if timezone is not installed * Mon Jan 22 2018 ms@suse.de - Fixed build tests for azure and ec2 Packages yast2-storage and recode no longer provided * Mon Jan 22 2018 ms@suse.de - Bump version: 9.11.30 → 9.12.0 * Mon Jan 22 2018 ms@suse.de - Update build test image descriptions Update to latest schema by auto conversion and delete use of oemboot kiwi code by switching to dracut * Mon Jan 22 2018 ms@suse.de - Fixed reading device node path lsblk should be called with -p because it's a mistake to assume any device lives below /dev. There could also be subtree devices in /dev/mapper or /dev/disk/.. We leave it up to lsblk to provide us the correct information * Mon Jan 22 2018 ms@suse.de - No need to actively stop the dialog service * Mon Jan 22 2018 ms@suse.de - Added required packages for dmraid and multipath * Sat Jan 20 2018 ms@suse.de - Added handling for dmraid and multipath devices * Fri Jan 19 2018 dcassany@suse.com - Adding iso-scan feature to kiwi-live dracut module This commit adds the iso-scan scripts to kiwi-live module_setup if the former files are found in the system inside the dmsquash-live dracut module directory. Fixes #574 and is related to #521 * Fri Jan 19 2018 ms@suse.de - Fixed Arrays implicitly concatenate by shellcheck * Thu Jan 18 2018 ms@suse.de - Add support for net install in dracut kiwi-dump This implementes one of the tasks from Issue #576 * Wed Jan 17 2018 ms@suse.de - Added runtime check for dracut-kiwi-oem-dump The installation of the above mentioned dracut module package is required for oem images which uses dracut as initrd system and have the creation of an installation image requested. This is related to Issue #576 * Wed Jan 17 2018 ms@suse.de - Update schema version in documentation * Wed Jan 17 2018 ms@suse.de - Auto update all schema descriptions to v6.8 * Wed Jan 17 2018 ms@suse.de - Delete hwclock from profile and system setup * Wed Jan 17 2018 ms@suse.de - Delete hwclock section from schema Deletes hwclock section from schema and provides xslt style sheet for schema auto conversion from schema version 6.7 to 6.8 * Tue Jan 16 2018 dcassany@suse.com - Deprecate suseConfig method and remove hardware config method This in this commit: - the contents of the suseConfig method from kiwi/config/functions.sh are replaced by a deprecated message. - the setup_hardware_clock method from SystemSetup is removed as it is not used anywere in the code. * Tue Jan 16 2018 dcassany@suse.com - Extend CommandCapabilities to also check version * Tue Jan 16 2018 ms@suse.de - Added dracut-kiwi-oem-dump subpackage to spec * Tue Jan 16 2018 davidcassany@gmail.com - Update locale settings (#579) * Use systemd-firstboot in order config basic settings This commit updates locale and keyboard settings in order to make use of the systemd tools, as this will be the only valid method starting from SLE15. Fixes #577 * Added CommandCapabilities utils class * Mon Jan 08 2018 ms@suse.de - Bump version: 9.11.29 → 9.11.30 * Mon Jan 08 2018 ms@suse.de - Deleted syslinux from ppc/oemboot/suse-SLES15 syslinux is not provided for ppc. This Fixes bsc#1073310 * Fri Dec 29 2017 martin.mohring@5eecosystems.com - [boot] fix double quote in grub menu which makes kernel updates for CentOS / RHEL / Fedora break grub.cfg * Tue Dec 19 2017 dcassany@suse.com - Omit kiwi-repart dracut module in oemboot initrd KIWI's oemboot initrd with initrd_system="dracut" together with installiso="true" requires to have dracut-kiwi-oem-repart package installed in the system, thus it ends up also being included in the recreated dracut initrd after booting the oemboot initrd from the installation iso. This kiwi-repart module causes a boot failure in that case since no .profile file is present, moreover, it has no sense to run it at that stage, since the disk is already reparted by the oemboot code. This commit allows installiso="true" and initrd_system="dracut" to play well together. * Fri Dec 15 2017 dcassany@suse.com - Improve locale pattern in schema Now the locale pattern in the schema also supports POSIX. Note that POSIX will be only accepted if listed in the first place of the comma separated list. This commit fixes #570 * Thu Dec 14 2017 ms@suse.de - Bump version: 9.11.28 → 9.11.29 * Wed Dec 13 2017 ms@suse.de - Allow to choose dracut live module There is the standard dracut dmsquash-live module based on the device mapper technology and the kiwi-live module based on the overlayfs technology. The setup of the live iso structure in kiwi is compatible to both modules. Thus it makes sense to allow to choose the technology via the flags attribute <type image="iso" ... flags="overlay|dmsquash"/> Please note both modules supports a different set of live features. This Fixes #568 * Tue Dec 12 2017 ms@suse.de - Bump version: 9.11.27 → 9.11.28 * Thu Dec 07 2017 ms@suse.de - Fixed ec2 and azure test builds cryptconfig is no longer provided * Wed Dec 06 2017 ms@suse.de - Bump version: 9.11.26 → 9.11.27 * Wed Dec 06 2017 ms@suse.de - Apply target permissions only if target dir exists * Wed Dec 06 2017 ms@suse.de - Bump version: 9.11.25 → 9.11.26 * Wed Dec 06 2017 ms@suse.de - Fixed use of stat result in os.chmod oct method returns a string representation which was mistakenly used in a subsequent os.chmod call. This Fixes #564 * Wed Dec 06 2017 ms@suse.de - Fixed tox doc target Correctly include schema pictures after travis-sphinx build * Wed Dec 06 2017 ms@suse.de - Bump version: 9.11.24 → 9.11.25 * Tue Dec 05 2017 ms@suse.de - Update failsafe kernel option list Delete obsolete parameters and make sure a failsafe boot does boot into runlevel 3. This Fixes #554 * Tue Dec 05 2017 ms@suse.de - Apply xslt validation on boot images * Tue Dec 05 2017 MichalMarek1@eaton.com - Do not match comments and PIs in XSLT templates I wanted to add a simple vim modeline to my XML description: <!-- vim: et:sts=2:sw=2 - -> This made kiwi consume insane amounts of memory during the XSLT transform step. While this may be a bug in my version of lxml, we do not transform comments on processing instructions in the conversion templates, so the easiest solution is not to match them. Signed-off-by: Michal Marek <MichalMarek1@eaton.com> * Mon Dec 04 2017 ms@suse.de - Make sure toplevel target dir keeps permissions When syncing data via rsync we make sure the toplevel target directory the data gets synced to does not change it's origin permissions. This Fixes #557 * Mon Dec 04 2017 ms@suse.de - Rebuild schema documentation * Mon Dec 04 2017 ms@suse.de - Fixed dependencies for dracut-kiwi-lib Adapt package names for gdisk/gptfdisk and btrfs-progs/btrfsprogs Install and require fdasd only on s390 architecture Delete fbiterm requirement since the project seems unmaintained and the use of the framebuffer terminal is an option in the code but not mandatory. This Fixes #559 * Fri Dec 01 2017 adrian@suse.de - add missing deps for docker builds. Moving kiwi-image:* provides to -requires package * Wed Nov 29 2017 ms@suse.de - Update text per review * Wed Nov 29 2017 ms@suse.de - Fix and cleanup tox setup Along with the cleanup of the tox setup also the workaround using an older version of the py module has been fixed * Wed Nov 29 2017 ms@suse.de - Fixed travis-sphinx call syntax * Wed Nov 29 2017 ms@suse.de - Update dropped feature list Legacy kiwi's oem recovery feature will not be ported due to technologes like ReaR, snapper, btrfs and due to the container, cloud and public cloud orientation of OS images * Thu Nov 23 2017 ms@suse.de - Implementation of dracut kiwi-dump module Provide the capabilities of the oem install code as dracut module. The implementation covers the result of the installiso="true" configuration. Installation from remote sources still needs to be done and will follow in an extra pull request. This addresses Issue #576 * Thu Nov 23 2017 ms@suse.de - Bump version: 9.11.23 → 9.11.24 * Thu Nov 23 2017 ms@suse.de - Fixed URL to semver.org in development guide * Thu Nov 23 2017 ms@suse.de - Bump version: 9.11.22 → 9.11.23 * Thu Nov 23 2017 ms@suse.de - Fixed module setup for dracut-kiwi-lib lsblk tool used in code but missing in dependencies * Thu Nov 23 2017 ms@suse.de - Fixed test-image-azure build test azurectl does not resolve because of missing AppScheduler but for the integration test image we also don't need azurectl Thus it was just deleted from the list * Thu Nov 23 2017 ms@suse.de - Fixed test-image-azure build test pam-modules package doesn't exist anymore * Wed Nov 22 2017 ms@suse.de - Bump version: 9.11.21 → 9.11.22 * Wed Nov 22 2017 ms@suse.de - Fixed typo in spec file The use of the suse_version macro from the last change introduced a syntax error which caused the package build to fail in obs * Wed Nov 22 2017 ms@suse.de - Bump version: 9.11.20 → 9.11.21 * Tue Nov 21 2017 dimstar@opensuse.org - package: Prepare for Tumbleweed moving to suse_version 1550 * Tue Nov 21 2017 ms@suse.de - Bump version: 9.11.19 → 9.11.20 * Tue Nov 21 2017 ms@suse.de - Only add package manager on image package requests (#550) If an image description only contains package requests from a bootstrap section but no image packages, it's not required to install a package manager package into the system * Tue Nov 21 2017 ms@suse.de - Add device-mapper requirement for dracut-kiwi-live * Mon Nov 20 2017 dcassany@suse.com - Post build constraint validation refactored * Mon Nov 20 2017 ms@suse.de - Bump version: 9.11.18 → 9.11.19 * Mon Nov 20 2017 ms@suse.de - Update gfxboot.cfg for iso images Don't move down one menu entry the first time a F-key is used This Fixes bsc#1068790 * Fri Nov 17 2017 dcassany@suse.com - Adding quotes to ensure '%_dbpath' is treated as string * Fri Nov 17 2017 dcassany@suse.com - Add max size post build command This commit includes a post build constraint validation into the Result class. With this commit any file included to the result tuple is verified not to exceed the maximum size configured into the runtime configuration file config.yml. Fixes #468 * Fri Nov 17 2017 ms@suse.de - Fixed ec2 integration test requirements for unneeded crash package broken * Fri Nov 17 2017 ms@suse.de - Fixed ec2 integration test nothing provides pam-modules * Thu Nov 16 2017 dcassany@suse.com - Removes the hardcoded path of the rpm database With this commit the rpmdb path is evaluated from the %_dbpath macro instead of being hardcoded. Fixes #537 * Thu Nov 16 2017 ms@suse.de - Bump version: 9.11.17 → 9.11.18 * Wed Nov 15 2017 ms@suse.de - Added runtime check for dracut-kiwi-oem-repart OEM images if configured to use dracut as initrd system requires the KIWI provided dracut-kiwi-oem-repart module * Wed Nov 15 2017 ms@suse.de - Fixup py vs. pytest-cov version incompatibility * Wed Nov 08 2017 ms@suse.de - Bump version: 9.11.16 → 9.11.17 * Wed Nov 08 2017 ms@suse.de - Delete atftp from SLE15 boot descriptions atftp will not be part of SLE15 per fate#323633. This Fixes #543 * Tue Nov 07 2017 ms@suse.de - Fixed blocksize setup in losetup The -L option was used to set the blocksize value for losetup However there is an option name clash between suse util-linux and upstream which now leads to the problem that option -L has changed its meaning and actually means --nooverlap which completely breaks the call in kiwi. This patch changes the call to use the long form --logical-blocksize. This Fixes bsc#1066873 * Tue Nov 07 2017 dcassany@suse.com - Code cleaning and enhancing variables names * Tue Nov 07 2017 dcassany@suse.com - Use usr/lib/rpm if present instead of var/lib/rpm With this commit OEM recovery tries to backup usr/lib/rpm if present, if the directory is not present it tries to backup the old default configuration, var/lib/rpm. * Mon Nov 06 2017 ms@suse.de - Extend checkmedia runtime check In addition to the correct architecture the check also includes the lookup of the required tagmedia tool to be present on the building host. This Fixes #538 * Mon Nov 06 2017 dcassany@suse.com - Remove hardcoded any /var/lib/rpm path This commit changes any /var/lib/rpm reference to the call 'rpm -E %_dbpath' which returns the path of the rpmdb which has been recently updated to a different location in recent rpm versions. Now the rpmdb path is determined dynamically. Fixes #537 * Fri Nov 03 2017 dcassany@suse.com - Adding a s390 oem test image * Fri Nov 03 2017 dcassany@suse.com - kiwi-hooks should be packed in tar Remote OBS source service is no capable of packaing a folder into a tar. * Fri Nov 03 2017 dcassany@suse.com - Include arm build test * Fri Nov 03 2017 davidcassany@gmail.com - Adding test image descriptions This commit adds the image descriptions used to test KIWI within the Open Build Service. * Thu Nov 02 2017 ms@suse.de - Add support for apt repository priorities Apt handles repository priorities in a preferences file per repository and calls that pin-priorities. The implementation here sets the configured priority for all packages of the given repository * Tue Oct 31 2017 Jellyfrog@users.noreply.github.com - Add missing hooks to the other architectures * Tue Oct 31 2017 Jellyfrog@users.noreply.github.com - Add pre/post mount hook for oem * Tue Oct 31 2017 Jellyfrog@users.noreply.github.com - Clarify how strip works * Mon Oct 30 2017 Jellyfrog@users.noreply.github.com - Add more OEM hooks * Thu Oct 26 2017 ryan@desfo.org - updated contributing link * Thu Oct 26 2017 ryan@desfo.org - s/42.1/42.3/ * Wed Oct 25 2017 ms@suse.de - Bump version: 9.11.15 → 9.11.16 * Wed Oct 25 2017 ms@suse.de - Fixed validation of isohybrid warnings The list of warning messages is evaluated line by line and those not matching the ignore warnings list are treated as errors. However if an empty line exists it did not match the ignore warnings list but is also not an error. This patch makes sure only non empty warning information has an effect * Wed Oct 25 2017 ms@suse.de - Bump version: 9.11.14 → 9.11.15 * Wed Oct 25 2017 ms@suse.de - Do not require cracklib-dict-full in boot images * Tue Oct 24 2017 ms@suse.de - Bump version: 9.11.13 → 9.11.14 * Tue Oct 24 2017 ms@suse.de - Cleanup SLE12 boot image descriptions * Tue Oct 24 2017 ms@suse.de - Bump version: 9.11.12 → 9.11.13 * Tue Oct 24 2017 ms@suse.de - Cleanup SLE boot image descriptions Don't use packages which does not exist on SLE, Fixes #523 * Mon Oct 23 2017 dcassany@suse.com - Improve coding style to make flake8 happy This commit includes the exact Exception class that the 'except' statement catches. According to the new flake8 3.5.0 version it should be explicit rather than implicit. * Mon Oct 23 2017 dcassany@suse.com - Add OCI reference in skopeo copy call and umoci config call Skopeo, since v1.24, does no longer assume 'latest' as the default tag/reference and requires explicit tag or reference in skopeo call. In KIWI the default was only used to import the base rootfs, with this commit the imported container is tagged as 'base_layer'. The current patch works for all skopeo versions. * Thu Oct 19 2017 Jellyfrog@users.noreply.github.com - Update hooks documentation * Thu Oct 19 2017 ms@suse.de - Bump version: 9.11.11 → 9.11.12 * Thu Oct 19 2017 Jellyfrog@users.noreply.github.com - Add more hooks for oemboot This follows netboot behavior * Wed Oct 18 2017 dcassany@suse.com - Fix vmdk descriptor file This commit fixes the descriptor file of the vmdk images. Before this commit the descriptior file was appended at the end of the image instead of overwritting the current one at the very beginning. Fixes bsc#1050665 * Wed Oct 18 2017 ms@suse.de - Bump version: 9.11.10 → 9.11.11 * Wed Oct 18 2017 ms@suse.de - Follow up fix for isohybrid error handling Allow to handle multiple messages from isohybrid as warnings. Only if the list of messages still contains information after all non error conditions had been checked out, an exception is thrown * Mon Oct 16 2017 ms@suse.de - Bump version: 9.11.9 → 9.11.10 * Mon Oct 16 2017 ms@suse.de - Cleanup boot descriptions The still existing kiwi boot descriptions contained wrong information about no longer existing packages and many other obsolete information. * Fri Oct 13 2017 ms@suse.de - Bump version: 9.11.8 → 9.11.9 * Fri Oct 13 2017 ms@suse.de - Prefer image packages section for bootincludes If a package is marked bootinclude prefer <packages type="image"> section in the target XML as primary target and only if no such section exists put the package in the <packages type="bootstrap"> section * Fri Oct 13 2017 ms@suse.de - Keep NVMe drivers in the initrd Support systems with the root filesystem on a NVMe device * Fri Sep 29 2017 ms@suse.de - Bump version: 9.11.7 → 9.11.8 * Fri Sep 29 2017 dimstar@opensuse.org - Changed permissions of /srv/tftpboot to be readable (bsc#940608) * Thu Sep 28 2017 ms@suse.de - Bump version: 9.11.6 → 9.11.7 * Thu Sep 28 2017 ms@suse.de - Also handle multiple error conditions * Thu Sep 28 2017 ms@suse.de - Allow to ignore certain isohybrid warnings kiwi treates warning from isohybrid as fatal errors becuase in most cases they are fatal. However some of them are kind of historical and should be ignored like the one described here: http://www.syslinux.org/archives/2015-March/023306.html * Wed Sep 27 2017 ms@suse.de - Bump version: 9.11.5 → 9.11.6 * Wed Sep 27 2017 ms@suse.de - Make sure xz options are used with pxe tarball The tar command used in the pxe builder did not utilize threading and/or the xz options provided by an optional kiwi config file. This Fixes #507 * Wed Sep 27 2017 ms@suse.de - Move depmod into baseUpdateModuleDependencies Kernel module dependencies should be resolved after kiwi has called all the stripping functions and not as part of the baseCreateCommonKernelFile which runs before. This Fixes #508 * Tue Sep 26 2017 ms@suse.de - Fixed order of volume mount list re-order mount_list by mountpoint hierarchy. This is needed because the handling of the fullsize volume and all other volumes is outside of the canonical order. If the fullsize volume forms a nested structure together with another volume the volume mount list must be re-ordered to avoid mounting the volumes in the wrong order * Mon Sep 25 2017 Jellyfrog@users.noreply.github.com - Update issue template * Fri Sep 22 2017 ms@suse.de - Bump version: 9.11.4 → 9.11.5 * Fri Sep 22 2017 ms@suse.de - Rebuild schema documentation * Thu Sep 21 2017 ms@suse.de - Show results in a dialog * Wed Sep 20 2017 ms@suse.de - Improve display of runMediaCheck results The splash screen should be switched off in order to let the user see the mediacheck results as well as a delay timeout before the boot continues or stops is useful * Wed Sep 20 2017 ms@suse.de - Call plymouth default theme setup in build command Make sure plymouth-set-default-theme is called as part of the system build command and not only as part of the system prepare command * Tue Sep 19 2017 ms@suse.de - Fixed package requires for dracut-kiwi-live On Fedora/RHEL cdrkit is only a source package building other packages. The package dracut-kiwi-live really needs is genisoimage * Tue Sep 19 2017 ms@suse.de - Added dracut kiwi oem module and library A new dracut module kiwi-repart used to be the successor of the custom kiwi oemboot code to repartition the disk has been added. Along with the module a dracut library kiwi-lib will also be delivered. * Mon Sep 18 2017 ms@suse.de - Fix trailing pipe character in .packages file In addition make sure the field layout is consistent across the .packages files no matter which package manager was used to create the information. This Fixes #501 * Fri Sep 15 2017 ms@suse.de - Bump version: 9.11.3 → 9.11.4 * Fri Sep 15 2017 ms@suse.de - Update documentation Link to the obs overview page to show build test results * Fri Sep 15 2017 ms@suse.de - Added Fedora integration test build to obs status * Fri Sep 15 2017 dcassany@suse.com - Limit the characters set for volid attribute This commit fixes #493 * Thu Sep 14 2017 ms@suse.de - Revert "Fixed package requires" This reverts commit a8d50a593911725965e09b0e8c2f3b9bc742202b. * Thu Sep 14 2017 ms@suse.de - Fixed package requires On Fedora xattr is provided by python[3]-pyxattr * Thu Sep 14 2017 ms@suse.de - kiwi-boot-requires only required for suse(obs) * Thu Sep 14 2017 ms@suse.de - Update project intro page * Thu Sep 14 2017 ms@suse.de - Update project intro layout * Thu Sep 14 2017 ms@suse.de - Update project intro page * Wed Sep 13 2017 ms@suse.de - Bump version: 9.11.2 → 9.11.3 * Tue Sep 12 2017 ms@suse.de - Added disk format="vhdx" support Support dynamic VHDX (gen2) image format for Hyper-V. This Fixes #490 * Tue Sep 12 2017 ms@suse.de - Added additional required attr schematron rule The new rule allows to check for required attributes for a specific image type and is used for the filesystem attribute which is required for the image type oem, vmx and pxe. This Fixes #476 * Mon Sep 11 2017 ms@suse.de - Bump version: 9.11.1 → 9.11.2 * Mon Sep 11 2017 ms@suse.de - Rebuild online schema documentation * Mon Sep 11 2017 ms@suse.de - Bump version: 9.11.0 → 9.11.1 * Mon Sep 11 2017 ms@suse.de - Fixed kernelList function The kernelList function searches for the installed kernels and applies the corresponding initrd name. The information the method provides is used in case of a custom initrd which should be used instead of the result of dracut. When requesting the use of the kiwi firsboot initrd also in the system via the <oem-kiwi-initrd> element, the information from the list is used to correctly link the kiwi initrd named initrd.vmx to the expected name of the system as dracut would create it. The creation of the list was broken which lead to an empty list and the after effect that the system was not able to reboot. This Fixes #483 * Mon Sep 11 2017 ms@suse.de - Update oemboot/rhel-07.0 due to isolinux changes With the move of the isolinux setup operation into the python code and the deletion of the old code from the images.sh scripts it's required to keep syslinux in the boot image otherwise the builder can't find it when explicitly deleted before the isolinux setup * Mon Sep 11 2017 ms@suse.de - Update device node names for devmapper nodes Partition devices created by the device mapper could use the _part or the -part naming schema. This patch allows for both variants and Fixes #480 * Mon Sep 11 2017 ms@suse.de - Added e2fsprogs to s390/netboot During bootup of a diskful netclient when it comes to e2 filesystem operations the tools were missing. Fixes #479 * Fri Sep 08 2017 dcassany@suse.com - Rename source label This commit renames the source label to a more explicit name. This commit also relates to bsc#1055542 and fixes #473 * Fri Sep 08 2017 ms@suse.de - Add mediacheck handler for live iso This fixes bsc#1049304 * Thu Sep 07 2017 ms@suse.de - Added live iso integration test build to obs status * Thu Sep 07 2017 ms@suse.de - Bump version: 9.10.6 → 9.11.0 * Thu Sep 07 2017 ms@suse.de - Delete atftp from boot descriptions In SLE15 / Leap15 atftp has been dropped. This Fixes bsc#1056951 * Thu Sep 07 2017 ms@suse.de - Deleted Leap 42.1 JeOS Leap 42.3 has been released * Thu Sep 07 2017 ms@suse.de - Fixed list of gfxboot modules Bad bug, missing comma caused the list to be interpreted differently by python which screwed up some list items * Thu Sep 07 2017 ms@suse.de - Delete obsolete suseGFXBoot kiwi boot code The code has been moved into the python source at bootloader/config/isolinux.py * Wed Sep 06 2017 ms@suse.de - Delete vmxboot descriptions vmx boot is now fully integrated with dracut * Wed Sep 06 2017 ms@suse.de - Make get_initrd_system a state method Make sure the default initrd_system is set to dracut for the vmx image type and to kiwi if no initrd_system is specified. This allows to simplify other code parts as we can trust there is a value set * Wed Sep 06 2017 ms@suse.de - Update schematron rules for boot and initrd_system The boot and initrd_system attributes are no longer used by the vmx image type and are therefore not allowed anymore. * Wed Sep 06 2017 ms@suse.de - Added runtime checks for overlay disk images Checking if the dracut-kiwi-overlay package will be installed as part of the build and also for the supported EFI setup since the EFI secure boot setup would try to perform changes on the filesystem which is a readonly squashfs, this is not supported * Tue Sep 05 2017 ms@suse.de - Fix isohybrid call isohybrid errors printed on stderr were not treated as fatal but should be treated as such. In addition isohybrid should distinguish for efi setup according to the efi setup of the image itself * Tue Sep 05 2017 dcassany@suse.com - Refactor _get_source and _get_source_label methods * Tue Sep 05 2017 ms@suse.de - Support overlay disk images via dracut Using the kiwi-overlay module to boot up systems configured with the overlayroot="true" attribute in the system image XML configuration. Fixes #65 * Tue Sep 05 2017 ms@suse.de - Added kiwi-overlay dracut module and package Package dracut-kiwi-overlay providing kiwi-overlay dracut module * Mon Sep 04 2017 ms@suse.de - update README Use normal style dash character * Mon Sep 04 2017 ms@suse.de - update README * Sun Sep 03 2017 ms@suse.de - Delete isoboot descriptions Live ISO boot is now fully integrated with dracut * Sun Sep 03 2017 ms@suse.de - Added runtime check for dracut module on live iso Live ISO images uses a dracut initrd to boot and requires the KIWI provided kiwi-live dracut module to be installed at the time dracut is called. Thus this runtime check examines if the required package is part of the package list in the image description * Fri Sep 01 2017 dcassany@suse.com - Include the source label in container images This commit fixes bsc#1055542, it includes the DISTURL parameter as a label into the container metadata when the build happens inside the buildservice. The new label included is named: * org.opencontainers.image.source in line with the current OCI annotations schema. * Fri Aug 25 2017 ms@suse.de - Added kiwi-live dracut module and package Package dracut-kiwi-live providing kiwi-live dracut module * Wed Aug 23 2017 ms@suse.de - Update schematron rule for boot attribute The boot attribute is no longer used by the iso image type and is therefore not allowed anymore * Wed Aug 23 2017 ms@suse.de - Update allowed values for iso image attribute With the move to dracut only the options implemented for the kiwi-live dracut module are available * Tue Aug 22 2017 ms@suse.de - Move to dracut for live ISO images Instead of the kiwi isoboot layout the live layout has been changed to follow the rules of the live system support offered by dracut. The initrd used to boot up the system is now a dracut generated initrd and can be customized via the 'flags' attribute in the kiwi XML description. In order to meet the kiwi live requirements a custom dracut module called kiwi-live is provided along with the changes in kiwi. This Fixes #470 * Tue Aug 22 2017 ms@suse.de - Bump version: 9.10.5 → 9.10.6 * Mon Aug 21 2017 ms@suse.de - Added boot descriptions for SLE15 on ppc * Mon Aug 21 2017 ms@suse.de - Added boot descriptions for SLE15 on s390 * Mon Aug 21 2017 ms@suse.de - Bump version: 9.10.4 → 9.10.5 * Fri Aug 11 2017 ms@suse.de - Added handling of formatoptions attribute Custom disk format options passed in the formatoptions attribute were not handled. In addition options with a value passed to qemu were handled in the wrong way. This commit addresses both problems and Fixes #463 * Fri Aug 11 2017 ludwig.nussel@suse.de - s/sles/openSUSE/ * Fri Aug 11 2017 ludwig.nussel@suse.de - copy SLE15 files for Leap 15 * Fri Aug 11 2017 ludwig.nussel@suse.de - add Leap 15 macros * Fri Aug 11 2017 ludwig.nussel@suse.de - leap_version is deprecated. use sle_version+is_openuse instead * Thu Aug 10 2017 ms@suse.de - Added azure integration test build to obs status * Wed Aug 09 2017 ms@suse.de - Bump version: 9.10.3 → 9.10.4 * Wed Aug 09 2017 ms@suse.de - Fixed resize if all free volume in oemboot/repart * Wed Aug 09 2017 ms@suse.de - Fix space calculation for lvm volumes It is required to take the other configured volumes into account in order to solve the problem of nested volumes. The size of e.g the root volume must be reduced by the size other volumes inside of the root volume needs. This is especially required if the root volume is not the fullsize volume * Tue Aug 08 2017 ms@suse.de - Fixed setup.py requirements record PyYAML is required by KIWI * Fri Aug 04 2017 ms@suse.de - Add description of Overlay Files to Terminology * Thu Aug 03 2017 ms@suse.de - Bump version: 9.10.2 → 9.10.3 * Wed Aug 02 2017 dcassany@suse.com - Export *.verified also for images based on apt-get This commit includes support in system/setup.py to run a package verification also for images based in apt-get package-manger Related to #457 * Wed Aug 02 2017 dcassany@suse.com - Include .packages file for apt-get based images This commit renames export_rpm_packages_list method to export_packages_list and it includes support for listing debian packages if apt-get package manager is used. Fixes #457 * Wed Aug 02 2017 ms@suse.de - Fix calculation of needed disk space for oem types The calculation did not include the minimum volume requirements if a volume setup exists * Tue Aug 01 2017 ms@suse.de - Update expected compatible major version every version of umoci/skopeo <= major v1.x.x is expected to work with the implementation used in kiwi * Tue Aug 01 2017 ms@suse.de - Extend scope of check_docker_tool_chain_installed The runtime check only checks for the presence of the docker tools umoci and skopeo but as we are expecting incompatible api changes in the next major version release the check has been extended to look at the major versions of the installed tools as well. Fixes #454 * Fri Jul 28 2017 ms@suse.de - Fixup schema version in chapter topic * Fri Jul 28 2017 ms@suse.de - Bump version: 9.10.1 → 9.10.2 * Thu Jul 27 2017 ms@suse.de - Fixup XSL stylesheet v6.7 Apply templates matching all processing instructions in order to match <section>text</section> * Thu Jul 27 2017 ms@suse.de - Rebuild schema documentation * Thu Jul 27 2017 dcassany@suse.com - Remove xml_state.get_build_type_mediacheck method The method was not needed since a direct call to xml_state.build_type.get_mediacheck was already producing an equivalent output (True, False or None), where 'None' can be easily treated in the same way as False. * Thu Jul 27 2017 dcassany@suse.com - Add runtimecheck for mediacheck attribute on non x86 hosts This commit rearranges some method and variable names and includes a new runtimecheck to ensure the mediacheck attribute is not set when building non x86 images. Patch related to bsc#1049304 * Thu Jul 27 2017 ms@suse.de - Auto update image descriptions to schema v6.7 * Thu Jul 27 2017 ms@suse.de - Update schema to version v6.7 Cleanup of the schema, delete obsolete and unused attributes and sections. Details of the change can be found in the conversion stylesheet convert66to67.xsl * Thu Jul 27 2017 ms@suse.de - Add XSL stylesheet to convert from v6.6 to v6.7 Delete the following obsolete and unhandled attributes and sections * <image ... kiwirevision="..."/> * <type ... checkprebuilt="..."/> * <type ... fsnocheck="..."/> * <repository ... status="..."/> * <repository ... prefer-license="..."/> * <package replaces="..."/> * <defaultprebuilt> * <defaultdestination> * <defaultroot> * <partitioner> * <rpm-force> * Wed Jul 26 2017 dcassany@suse.com - Adding mediacheck menu entry for liveCDs This commit adds the checkiso attribute in type tag, only available for iso image types. Checkiso is boolean that determines the presence of0 a Mediacheck menu entry or not in the bootloader. This patch is related to bsc#1049304 * Tue Jul 25 2017 ms@suse.de - Fixup encoding handling for profile file If an element like displayname or oem-boot-title contains characters outside of the ascii table this causes trouble when kiwi writes out the profile file and the code is called through python2. The reason here is that the default encoding on write() (and other methods) is set to ascii in python2 and when it receives unicode characters outside of the ascii spec a UnicodeEncodeError is thrown. Now all of kiwi is using Unicode which means this does not produce a problem when calling the code through python3 because the default encoding is utf-8 there. This patch introduces a method which allows to change python's default encoding and calls it at the code point where we write the profile because we got unicode and we want to write unicode in any case. This fixes at least one situation for python2-kiwi to allow the use of non ascii characters in the XML setup. If other places will be found the same approach should allow to fix it for python2 * Tue Jul 25 2017 Jellyfrog@users.noreply.github.com - Fix RHEL spec check * Tue Jul 25 2017 ms@suse.de - Bump version: 9.10.0 → 9.10.1 * Tue Jul 25 2017 ms@suse.de - Add LVM overhead for lvm based images LVM itself requires metadata stored in the metadata block kiwi did not take a size value for this data into account * Tue Jul 25 2017 ms@suse.de - Use dmsetup to cleanup device maps Instead of the broken kpartx -d we use dmsetup remove directly on the maps kiwi has created * Mon Jul 24 2017 ms@suse.de - Evaluate file strip before kernel strip Information from the optional <strip type="delete"> section was handled as part of the suseStripInitrd method which is called after suseStripKernel. However if a request to delete a driver file is part of the above mentioned strip section the checks for the driver dependency and also for potential superfluous firmware is not applied. Thus the evaluation of the <strip type="delete"> section happens earlier in the suseStripKernel method. Fixes #442 * Mon Jul 24 2017 ms@suse.de - Added ec2 integration test build to obs status * Mon Jul 24 2017 ms@suse.de - Added Xen setup runtime validation Added check_xen_uniquely_setup_as_server_or_guest runtime check to check for a unique dom0 or domU guest setup Fixes #429 * Mon Jul 24 2017 ms@suse.de - Rebuild schema documentation * Mon Jul 24 2017 ms@suse.de - Make vmdisk optional for the machine setup The guest machine information might not require information about the disk. Issue #429 * Fri Jul 21 2017 Jellyfrog@users.noreply.github.com - Fix some spelling * Fri Jul 21 2017 Jellyfrog@users.noreply.github.com - Fix some spelling * Fri Jul 21 2017 ms@suse.de - Use the same option type (long form) for clarity * Thu Jul 20 2017 ms@suse.de - Use kernel compatible XZ options for kiwi initrd The kernel requires specific XZ options for the initrd in order to read the compressed data. This values should not be configurable by the user and are set to the same options as used by dracut now. Fixes #435 * Thu Jul 20 2017 ms@suse.de - Change default XZ compression options Use all cpu cores by default. Fixes #433 * Thu Jul 20 2017 ms@suse.de - Update spec file provides for schema version * Thu Jul 20 2017 ms@suse.de - Bump version: 9.9.5 → 9.10.0 * Thu Jul 20 2017 martin.mohring@5eecosystems.com - fixed: fdupes is also available on Fedora * Thu Jul 20 2017 martin.mohring@5eecosystems.com - changed: simplify diff to orig spec file template * Thu Jul 20 2017 martin.mohring@5eecosystems.com - added: support for Fedora 25 / 26, fixed support for CentOS 7 in the spec file * Thu Jul 20 2017 dcassany@suse.com - Include default container name This commit includes a default container name for KIWI container images. This makes possible to create OCI and Docker containers without forcing the user to include a <contaierconfig> section in the description file. * Thu Jul 20 2017 ms@suse.de - Refactor code which deals with Xen Provide two methods is_xen_guest and is_xen_server which are used instead of the former machine domain and firmware processing. Issue #429 * Thu Jul 20 2017 ms@suse.de - Apply schema v6.6 stylesheet to XML descriptions Updates all XML descriptions to latest schema version and also includes adaptions to the test XML descriptions for testing the new Xen guest and server setup * Wed Jul 19 2017 ms@suse.de - Fixup shell test condition Variables used in shell conditions should be quoted * Wed Jul 19 2017 ms@suse.de - Update schema to version 6.6 * Deleted domain attribute from machine section * Added xen_server attribute to specify a type to be a Xen dom0 * Added xen_loader attribute in machine section to specify the target guest loader this image is expected to become loaded with * Wed Jul 19 2017 ms@suse.de - Added schema 6.5 to 6.6 conversion Delete the Xen domain attribute from the machine section and introduce a new xen_server attribute which is set to true for any machine section with a Xen dom0 configuration * Tue Jul 18 2017 ms@suse.de - Added Makefile target obs_test_status Call make obs_test_status and get an overview about the current integration test builds and their status * Tue Jul 18 2017 ms@suse.de - Bump version: 9.9.4 → 9.9.5 * Tue Jul 18 2017 ms@suse.de - Added s390 tumbleweed boot descriptions * Mon Jul 17 2017 ms@suse.de - Bump version: 9.9.3 → 9.9.4 * Mon Jul 17 2017 dcassany@suse.com - This commit fixed root_init when running inside the buildservice This commit fixes regression bug introduced in #422 * Mon Jul 17 2017 dcassany@suse.com - Exclude kiwi files from images This commit from one hand includes a get_exclude_list_for_root_data_sync method in Defaults which returns a list of the files used by KIWI that should not be part of the resulting image. From the other hand makes use of the exclusion default list in live, archive and container images, it fixes #423. * Mon Jul 17 2017 ms@suse.de - Bump version: 9.9.2 → 9.9.3 * Mon Jul 17 2017 dcassany@suse.com - Revert "Include .buildenv file inside the buildroot" This reverts commit d30bf4a19ff11f7132c9a31528ddfa103e01b299. This also includes the get_buildservice_env_name method in Defaults to centralize '.buildenv' occurrences. * Mon Jul 17 2017 ms@suse.de - Fixup helper/kiwi-boot-packages Make sure the code also works in python2 * Mon Jul 17 2017 ms@suse.de - Search for python interpreter in path Allow more flexible path spec to find python interpreter * Fri Jul 14 2017 ms@suse.de - More comfort in calling with compat arguments In addition to the 'kiwi --compat -- ...' style we also support calling the kiwi compat mode as a service via 'kiwi compat ...' The preferred way of calling kiwi with legacy options is via the new compat service. Thus the documentation also changed to no longer mention the --compat option but it still exists for compatibility reasons. Fixes #407 * Fri Jul 14 2017 ms@suse.de - Allow use of more fine grain ignore repos options The meaning of the --ignore-repos option has changed back to ignore all configured repositories. A new option named --ignore-repos-used-for-build has been added which allows to ignore all except imageonly repositories. The command manual pages has been changed to document the options. This Fixes #410 * Fri Jul 14 2017 ms@suse.de - Cleanup use of python interpreter invocation Prevent strict call of a specific version of the python interpreter. All code has been written to work with py2 and py3 thus the venv environment setup should decide what version a call of python is. Fixes #424 * Thu Jul 13 2017 dcassany@suse.com - Make sure the KIWI buildroot has the /.buildenv file This commit makes sure the that the KIWI build root will always contain the /.buildenv file. Fixes #421 * Thu Jul 13 2017 dcassany@suse.com - Include .buildenv file inside the buildroot With this patch if KIWI is running inside the buildservice the /.buildenv file is copied from the build environment to the build root of KIWI. At installation time some packages test the existance of this file in order to know if they are being installed inside the buildservice or not. Fixes #421 * Tue Jul 11 2017 davidcassany@gmail.com - Fix url validation in buildservice (#420) This patch changes the remote URL validation strategy when running inside the build service. By design, inside the build service build environment connections to the outside world are not allowed, thus any validation attempting to do that will fail. With this patch, when running inside the build service, KIWI will not try to test if any download URL is reachable. Fixes #418 * Mon Jul 10 2017 ms@suse.de - Bump version: 9.9.1 → 9.9.2 * Mon Jul 10 2017 ms@suse.de - Refactor Uri is_public method Don't call a nested is_remote from is_public, instead the method was rewritten to explicitly cover the responsibility to check under which conditions we treat an uri as publicly available or not * Sun Jul 09 2017 ms@suse.de - Fixed Uri is_remote method If called inside of the buildservice the obs uri type is not a remote uri because the translation ends in a local path * Fri Jul 07 2017 ms@suse.de - Bump version: 9.9.0 → 9.9.1 * Fri Jul 07 2017 ms@suse.de - Fixup setup and package requirements python requests is needed due to latest changes * Fri Jul 07 2017 ms@suse.de - Bump version: 9.8.1 → 9.9.0 * Fri Jul 07 2017 ms@suse.de - Update doc string for Uri::translate method The method was missing doc info about the check_build_environment parameter and the return type of the method * Fri Jul 07 2017 ms@suse.de - Delete obsolete --obs-repo-internal switch * Fri Jul 07 2017 ms@suse.de - Create obs project download link like obs does it In reference to _download_repository_link.html.erb from https://github.com/openSUSE/open-build-service, we use the same mechanism to create the download link from an obs:// project definition * Thu Jul 06 2017 ms@suse.de - Fixup unit test for help command * Thu Jul 06 2017 ms@suse.de - Follow up fix for man page move make sure kiwi calls the man page from the now changed section level 8 * Wed Jul 05 2017 ngompa@datto.com - Move man pages to correct section The man pages were incorrectly written to section 2, which is for syscalls. Since KIWI is an administrator's tool, it has been moved to section 8. * Wed Jul 05 2017 dcassany@suse.com - Make sure system image strip sections are applied in boot image This commit calls copy_strip_sections from the system image xml to the boot image xml. This is needed to make sure strip sections are applied into the boot image. Fixes #414 * Tue Jul 04 2017 ms@suse.de - Refactor handling of obs repositories * Delete kiwi internal ibs: and suse: types * Delete handling for --obs-repo-internal and provide a compatibility message to the user * Buildservice download server url and scope can be configured via ~/.config/kiwi/config.yml * Translate obs urls to http in import_repositories_marked_as_imageinclude * Use new Uri.is_public method in renamed runtime check check_image_include_repos_publicly_resolvable * Tue Jul 04 2017 dcassany@suse.com - Fix a code block in workflow.rst Fixes #412 * Tue Jul 04 2017 dcassany@suse.com - Fix xml_state test * Mon Jul 03 2017 dcassany@suse.com - Accept an empty string as a repo priority xml_parse code is autogenerated, thus no changes there should be considered. When adding a repository from the command line it can happen that the repository priority is mapped to an empty instead to a None valuei, when the priority is not specifically set. xml_parse will only support a parseable string to int or a None value as the default option, so, if an empty string is used, it throws an exception. With the current patch anything that cannot be casted to an int, will be considered as None. Fixes #408 * Mon Jul 03 2017 ms@suse.de - Move check_image_include_repos_http_resolvable Call the check_image_include_repos_http_resolvable runtime check after the check and setup for the obs runtime environment. In case of obs uri types and a kiwi build outside of the buildservice those source locations could be translated into a public url and thus allow for use with the imageinclude attribute. However building inside of the buildservice maps those to a local path which is private to the used worked instance. In such a case the obs uri type is translated into a suse uri type and running the check_image_include_repos_http_resolvable after that translation will run from the translated and thus correct source uri information * Mon Jul 03 2017 ms@suse.de - Bump version: 9.8.0 → 9.8.1 * Fri Jun 30 2017 ms@suse.de - Add unit tests for compat mode * Fri Jun 30 2017 dcassany@suse.com - Do not translate obs scheme to suse scheme for imageonly repos Fixes #404 * Fri Jun 30 2017 ms@suse.de - Fixed compat setup for upgrade command Value for --root option was added after other options * Fri Jun 30 2017 dcassany@suse.com - Translate obs to suse derived from image uris This commit performs a translation from obs scheme to suse scheme for derived from image uris when kiwi is running in a buildservice worker. Fixes #399 * Fri Jun 30 2017 ms@suse.de - Bump version: 9.7.4 → 9.8.0 * Fri Jun 30 2017 ms@suse.de - Fix content layout of zypper credentials file Missing line break for entries in zypper credentials file * Thu Jun 29 2017 dcassany@suse.com - Allow imageinclude repositories inside the build service Fixes #397 * Thu Jun 29 2017 ms@suse.de - Fixed doc_travis tox target using shell syntax requires calling a shell process * Thu Jun 29 2017 ms@suse.de - Allow imageinclude in add|set-repo commandline The --set-repo and --add-repo commandline options now allows additionally to specify a true|false value to indicate if the repository should be part of the system image repository setup or not. This Fixes #398 * Thu Jun 29 2017 ms@suse.de - Fixed travis whitelist_externals test command is used in target * Thu Jun 29 2017 ms@suse.de - Fixed travis whitelist_externals commands cp and/or true are used in target * Thu Jun 29 2017 ms@suse.de - Fixup travis doc deployment Custom diagram images needs to be deployed manually * Thu Jun 29 2017 ms@suse.de - Update schema documentation * Thu Jun 29 2017 ms@suse.de - Delete unused data from schema docs processing * Tue Jun 27 2017 dcassany@suse.com - Flag --ignore-repos do not ignore imageonly repos This commit fixes #395, with it, using --ignore-repos, does not delete imageonly repositories from the description file. This way imageonly is prepared to be used in the buildservice even when using the 'obsrepositories:/' reference style. * Fri Jun 23 2017 ms@suse.de - Build schema documentation with Oxygen Given there is a valid Oxygen license owned by the company as described in https://www.oxygenxml.com/oxygen_scripting.html the schema documentation can be created using Oxygen. This commit allows building the schema docs with alternative doc builders and in case of Oxygen would change the way the schema docs are generated in the following way: 1. Install Oxygen and setup the license to activate the tool 2. Setup the KIWI development shell environment to export the schema_tool variable to point to the schemaDocumentation.sh script provided by the Oxygen installation export oxygen_tool=/path/to/Oxygen/schemaDocumentation.sh 3. In any case of a schema change manually call: tox -e schema This step was done before as part of the tox doc target but can't be done automatically because it would require a correctly licensed Oxygen installation in the travis environment. Thus the result data has to be part of the pull request 4. Build the documentation and review the result tox -e doc 5. Create the pull request * Wed Jun 21 2017 ms@suse.de - Update schema docstring for oem-systemsize * Tue Jun 20 2017 ms@suse.de - Bump version: 9.7.3 → 9.7.4 * Tue Jun 20 2017 ms@suse.de - Fixed setup_plymouth_splash The schema generated get_bootsplash_theme() method returns a list because it's section content. The return value of the method was used as a string which caused a runtime error * Tue Jun 20 2017 ms@suse.de - Added creation of zsync control file in bundler If a --zsync_source url is provided to the bundler call a zsync control file is created for the compressed parts of the bundle. This Fixes #364 * Tue Jun 20 2017 dcassany@suse.com - Add package manager in image info task solving process This commit includes the package manager package in the packages list to be solved in image info task. * Tue Jun 20 2017 ms@suse.de - Bump version: 9.7.2 → 9.7.3 * Tue Jun 20 2017 ms@suse.de - Fixed gce disk format The order of the files in the tarball is important. The first entry must be the manifest.json followed by disk.raw * Mon Jun 19 2017 ms@suse.de - Make sure CliTask instance reads the config file Any instance of a CliTask has to read the runtime config file if present * Mon Jun 19 2017 ms@suse.de - Add generic access for attributes The layout of the yaml runtime config is based on an element topic containing a list of attributes. For now only the xz topic with its options attribute is in use but for the future more elements might be supported which can use the same access method * Mon Jun 19 2017 ms@suse.de - Setup plymouth splash in the image prepare process In case the plymouth-set-default-theme tool can be found in the image root system and a bootsplash theme is configured in the XML description, the tool is used to setup the theme configuration This Fixes #366 * Mon Jun 19 2017 dcassany@suse.com - Include patternType information to resolv packages in image info task This commit includes ingore_recommended flag in the Sat.solve method. This way if the description file states to include only required packages (without recommendations) it is respected and taken into account to resolv the packages list. Fixes #381 * Mon Jun 19 2017 ms@suse.de - Added custom xz option handling for ArchiveTar Allow to pass custom xz options for create_xz_compressed method. Issue #373 * Mon Jun 19 2017 ms@suse.de - Make sure options are returned as list * Mon Jun 19 2017 ms@suse.de - Added custom xz option handling for Compress Allow to pass custom options for xz method. Issue #373 * Mon Jun 19 2017 ms@suse.de - Activate reading of runtime config in tasks Implement reading of runtime configuration file in base commandline class. Issue #373 * Mon Jun 19 2017 ms@suse.de - Cleanup doc string of base task class * Sun Jun 18 2017 ms@suse.de - Add runtime config man page section Describe the contents of the KIWI runtime config file * Wed Jun 14 2017 ms@suse.de - Added RuntimeConfig class An instance of RuntimeConfig reads in ~/.config/kiwi/config.yml if present and provides access methods to the expected information of the config file * Wed Jun 14 2017 ms@suse.de - Added PyYAML requirement to package and venv The KIWI config file is yaml based and thus we need support for reading the file in KIWI * Wed Jun 14 2017 ms@suse.de - Implement custom argument handling for xz_options Evaluate and hand over custom_args processing for the xz_options argument to all classes which performs xz compression tasks. This Fixes #373 * Wed Jun 14 2017 ms@suse.de - Read xz options from runtime config Read xz options from the kiwi runtime configuration file and pass along the information to the commands which performs compression tasks * Wed Jun 14 2017 ms@suse.de - Fixed alpha order of options in build command * Wed Jun 14 2017 ms@suse.de - Update custom_args doc for DiskBuilder class * Wed Jun 14 2017 ms@suse.de - Fixup class docstrings The attribute list should provide information about the construction of an object of this class. Some fields were missing or superfluous * Wed Jun 14 2017 dcassany@suse.com - Consider only repositories used for build in image info This commit makes sure that the repositories marked with imageonly flag are not included in the packages solve procedure. This is related to #362 * Wed Jun 14 2017 dcassany@suse.com - Removing has_repositories_marked_as_imageinclude method With the current repository management this method is not required anymore, since the setup repositories method does not modify the image if no repositories are present. It is related to #305 and #191 * Tue Jun 13 2017 ms@suse.de - Fixed typo in isoboot/fedora-25.0 It does not really matter because the package manager setup is inherited from the system image XML configuration to the boot image, but for consistency it should be correct in the isoboot description too * Tue Jun 13 2017 ms@suse.de - Added isoboot/fedora-25.0 boot description * Tue Jun 13 2017 dcassany@suse.com - Change to more explicit method names * Mon Jun 12 2017 ms@suse.de - Cleanup use of suseGFXBoot regarding grub The shell method suseGFXBoot from the config/functions contains code which should be better moved to the python code base dealing with the bootloader configuration. In this commit all grub parts of it has been moved to the BootLoaderConfigGrub2 class * Mon Jun 12 2017 ms@suse.de - Cleanup isoboot descriptions There is no need to install bootloader packages to the initrd, all information regarding the bootloader setup is taken from the system root directory * Mon Jun 12 2017 ms@suse.de - Fixup iso image builder(s) lookup path Don't lookup bootloader required files in the boot image root directory. Those needs to be looked up in the system image root directory * Mon Jun 12 2017 ms@suse.de - Refactor boot image factory Make sure the root directory of the base image is always accessible by any boot image type for consistency. In addition introduce a post_init method which explicitly setup the boot image root directory as needed for the selected boot image type and document it as such * Mon Jun 12 2017 dcassany@suse.com - Include imageonly attribute for repositories This commit adds imageonly attribute support for the repository element. imageonly is a boolean attribute that if true indicates that the repository is no used for the build but needs to be configured for the resulting image. Fixes #362 * Fri Jun 09 2017 ms@suse.de - Fixup use of syslinux v6 modules There is support for library loading in syslinux modules which requires to provide the lib modules when available. This Fixes #351 * Fri Jun 09 2017 ms@suse.de - Bump version: 9.7.1 → 9.7.2 * Fri Jun 09 2017 dcassany@suse.com - Update rpm-check-signatures documentation * Fri Jun 09 2017 dcassany@suse.com - Fix default location repository config file for apt This commit fixes the apt config file management for default locations. The template subsitution always needs to be executed providing all the substitution parameters, as it does not make any kind of default assumption when parameters are missing. Fixes #370 * Fri Jun 09 2017 ms@suse.de - Revert "Refactor detection code for grub directory name" The former detection of the grub directory name in boot was correct whereas the new code introduced a problem. This reverts commit b3e4b871d52da2b5ab579d592ccc7ae39de75339. This Fixes #371 * Thu Jun 08 2017 dcassany@suse.com - Include repository_gpgcheck and package_gpgcheck documentation * Thu Jun 08 2017 dcassany@suse.com - Improve package/repository signature checking setup This commit adds repository_gpgcheck and package_gpgcheck attributes to the repository tag in schema. With this change each repository can be configured individualy to enable repository signatures check and/or enable signature package check. The configuration is done at repository level, thus it is not conflicting with the wide package manager configuration flag <rpm-signatures-check>. Fixes #358 * Thu Jun 08 2017 ms@suse.de - Update PXE building chapter Redesign PXE building chapter to follow style guide. Thanks to Thomas Schraitle for review and additional contributions to this topic. This Fixes #323 * Thu Jun 08 2017 ms@suse.de - Update chapter due to review * Thu Jun 08 2017 ms@suse.de - Update OEM building chapter Redesign building chapter to follow style guide. Issue #323 * Thu Jun 08 2017 ms@suse.de - Bump version: 9.7.0 → 9.7.1 * Thu Jun 08 2017 ms@suse.de - Refactor detection code for grub directory name The method get_grub_boot_directory_name was based on checking for the name of the grub2 install tool, but this is not always reliable because the name of the grub2 install tool has no direct connection to the grub2 path. The method changes in a way that it checks for the presence of the grub2 installation directory which is /usr/lib/grub or /usr/lib/grub2. Depending on the result the location in boot is /boot/grub or /boot/grub2 which seems to be a more reliable check * Wed Jun 07 2017 ms@suse.de - Fixup detection of grub directory name In order to put grub data to boot/grub2 or boot/grub a check for the grub2-tool vs. grub-tool name is performed. This requires access to the image root directory on a file basis which is not always applicable. When setting up the grub bootloader for e.g EFI boot on an iso image the rootfs can't be directly accessed because the iso image contains the rootfs in a compressed format. This commit refactors the check to be generic for all image types * Wed Jun 07 2017 ms@suse.de - Fixup EFI setup for iso images The embedded efi fat image on the iso filesystem must follow the same rules compared to the setup on a disk * Wed Jun 07 2017 toms@suse.de - Fix docstring and apply ReST markup Avoids the the following warning: Definition list ends without a blank line; unexpected unindent. Docstring contains ReST markup from http://www.sphinx-doc.org/en/stable/domains.html#cross-referencing-python-objects * Tue Jun 06 2017 dcassany@suse.com - Some corrections for Building Docker image docs * Tue Jun 06 2017 dcassany@suse.com - Rearrange Docker docs This commit rearranges the Docker image builds documentation in order to match the criteria exposed in #323 * Fri Jun 02 2017 ms@suse.de - Bump version: 9.6.2 → 9.7.0 * Thu Jun 01 2017 ms@suse.de - Make sure all required yum repo options are set enabled and gpgcheck parameters has to be set for any configured yum repository * Thu Jun 01 2017 ms@suse.de - Fixup repository setup for yum Yum cannot handle spaces between the key and the value. This patch provides a method to tell ConfigParser to use no spaces for the '=' delimiter and thus Fixes #357 * Thu Jun 01 2017 ms@suse.de - Reactivate warnings report in pytest * Thu Jun 01 2017 ms@suse.de - Fixup kernel name lookup If multiple abi compatible kernel module packages are installed the kernel version of the boot kernel could be different from the kernel module versions. In order to find the boot kernel all kernel versions found must be checked. Fixes #355 * Thu Jun 01 2017 ms@suse.de - Fix/workaround invalid xsd pattern translation The data structures are auto generated by the generateDS tool which works nicely except for the arch-name xsd pattern used in the RelaxNG schema. For some reason the used regular expression is translated by generateDS into a python expression not matching the original expression from the schema. The result is an invalid python warning message after the schema has successfully validated the arch string. The problem has been reported to the generateDS developer. As long as their is no fix available in generateDS the following workaround in kiwi applies: The original xs:token pattern validation will be disabled on the generateDS level and applies only to the schema. This Fixes #347 * Wed May 31 2017 ms@suse.de - Allow vendor specific grub config file location On e.g Fedora systems the EFI grub config file for secure boot systems is expected to be located in the vendor specific efi boot directory from where the shim loader gets loaded by the firmware * Wed May 31 2017 dcassany@suse.com - Some fine tune updates * Updated the docs for system_create command * Reverted dracut image initialization * Updated yum comment about repo_gpgcheck option * Updated variable name in disk builder * Typo correction * Wed May 31 2017 dcassany@suse.com - Include signing-key feature for boot images This commit extends the behavior of --signing-key options in order to import the provided key file into the boot image, in addition to the regular image root tree. Related to #342 * Tue May 30 2017 ms@suse.de - Fix use of pre requires in spec file * Tue May 30 2017 ms@suse.de - Fixup working dir for editboot scripts editbootconfig and editbootinstall scripts needs to be called from within the correct directory to allow access to the written bootloader config files. For live images the working directory was set to the wrong place. This Fixes #353 * Mon May 29 2017 ms@suse.de - remove duplicated code from dhclient setup IPADDR is assigned within dhclientImportInfo original patch by Dinar Valeev <k0da@opensuse.org> * Mon May 29 2017 dimstar@opensuse.org - Fix spelling of 'processor' https://bugzilla.opensuse.org/show_bug.cgi?id=957927 * Mon May 29 2017 ms@suse.de - Use glob pattern to match shim modules * Sun May 28 2017 ms@suse.de - Fixed pre-req for kiwi-pxeboot subpackage the binaries groupadd and useradd used in the preinstall scriptlet and provided by the shadow package needs a pre requirement on shadow to make sure they exist when the package gets installed. Fixes (bsc#1040256) * Fri May 26 2017 dcassany@suse.com - Fix existing root check, fixes #349 This commit fixes the validation of an existing root directory for the command 'system build'. System build used to create the root directory before performing the root existance check, thus the check was always failing in any case. The root directory is created inside the RootInit class within the 'create' method. Fixes #349 * Wed May 24 2017 ms@suse.de - Added fallback setup for grub secure boot The current implementation is based on the presence of the shim-install tool. This tool does not exist on all distributions. In case shim-install is not present a kiwi fallback solution applies. Fixes #337 * Wed May 24 2017 dcassany@suse.com - Extend --signing-key to Apt package manager This commit extends support for --siging-key to the Apt package manager. However it has only been included for the chrooted operations, as current implementation of the bootstrap procedure does not provide signature check capabilities. Related to #342 * Wed May 24 2017 dcassany@suse.com - Extend --signing-key option to Yum and Dnf This commit extends the --signing-key options support to Yum and Dnf package managers. In addition, signature check for repositories had to be disabled for Yum and Dnf, as kiwi unrelated issues were found while testing. Nevertheless, package signature checks are fully functional. Related to #342 * Wed May 24 2017 dcassany@suse.com - Add --signing-key option This commit adds --signing-key option which sets a key file to import into the package manager trusted keys database. This commit adds this flag support only for zypper. Fixes #342 * Tue May 23 2017 ms@suse.de - Don't print warning report The auto generated xml_parse.py uses the python warnings module The unit tests uses the coverage module in py.test to create a report. The latest py.test update now also creates a warnings report which is unwanted because some of the unit tests intentionally causes the creation of a warning as the expected result but we don't want to see that in a py.test warnings report. Therfore this patch switches off the creation of that warnings report * Tue May 23 2017 ms@suse.de - Update manual page of build command Add information for --allow-existing-root option * Tue May 23 2017 ms@suse.de - Fixup default behavior of build command The build command automatically used an existing root tree from a former build attempt. However this could cause an inconsistent image if the former build root was not based on the same image type setup. Thus it is better to allow this only if the --allow-existing-root option is specified along with the build command call * Tue May 23 2017 ms@suse.de - Fixed alpha sorting of options * Tue May 23 2017 ms@suse.de - Complete zypper cache cleanup also the raw and solv cache needs to be deleted * Mon May 22 2017 ms@suse.de - Update manual pages Add information and use case for --clear-cache option * Mon May 22 2017 ms@suse.de - Added --clear-cache option The system prepare and build commands now provides the option --clear-cache which deletes all cache data associated with the repositories to build the image. This Fixes #341 * Mon May 22 2017 ms@suse.de - Let dracut create a compressed initrd dracut was called in a way to create an uncompressed initrd archive and kiwi later runs the xz compression on it. That way the default compression parameters used by dracut get lost. Fixes #335 * Fri May 19 2017 dcassany@suse.com - Improve rpm-check-signatures support This commit ensures the signatures are checked for both: the repository and the rpm package. It applies for zypper, dnf and yum package managers. * Fri May 19 2017 ms@suse.de - Fixup boot-load-size for efi loader in iso Pass the real boot-load-size of the used loader as number of 512byte blocks to the iso creation call. Related to (bsc#939456) * Fri May 19 2017 ms@suse.de - Update documentation to meet review results * Thu May 18 2017 ms@suse.de - Added GCE image primary setup information * Thu May 18 2017 ms@suse.de - Added Azure image primary setup information * Thu May 18 2017 ms@suse.de - Added EC2 image primary setup information * Thu May 18 2017 ms@suse.de - Map partition ID's from sgdisk to lowercase * Thu May 18 2017 ms@suse.de - rework building virtual disk image chapter Adapt to style as used in the live iso chapter and add references to low level topics regarding the setup of the image to work in the public cloud. Related to #323 * Wed May 17 2017 dcassany@suse.com - Get the first two characters of the gdisk partition code output According to the gdisk documentation the gdisk maps the partitions IDs to the MBR codes, but they are multiplied by 0x0100 in hexa. Meaning 0x8300 code is equivalent to 0x83 in MBR. This commit only considers the first two characters of the sgdisk partition code output. With this change the partition types are comparable, regardless of using MBR or GPT. * Wed May 17 2017 dcassany@suse.com - Fixes OEM deployments on a free partition, bnc#1039469 This commit updates the boot code for oem images. In case oem-partition-install flag was set, the boot code was not capable to find an appropriate partition due to not attaching properly the raw image as a loopback device. KIWI was calling 'losetup' command with wrong arguments. Fixes bnc#1039469 * Wed May 17 2017 ms@suse.de - Bump version: 9.6.1 → 9.6.2 * Tue May 16 2017 ngompa@datto.com - Use 'yum-deprecated' if it exists when using Yum On Fedora and Mageia systems, the Yum package manager binary is named 'yum-deprecated', and 'yum' redirects to DNF. This is a problem for being able to build images of Linux systems that use Yum as its package manager, like RHEL/CentOS 7. So, in order to ensure we use the right package manager, we check for the 'yum-deprecated' binary and use it if it exists. * Tue May 16 2017 ms@suse.com - Restructure low level topic (iso_to_usb) The low level topic references information from the base topic. In this case the name of the previously built image. I think we should provide information on each low level topic which references information from a base topic. * Mon May 15 2017 dcassany@suse.com - Handle rpm-check-signatures flag for each package manager This commit adds support for the rpm-check-signatures flag, which sets the package manager to verify or not each package signature. By default KIWI assumes no gpg checks are done. * Mon May 15 2017 toms@suse.de - Separate low-level topics (dumping) * Separate the high-level (building) from the low-level part (dumping) * Introduce a subsection ("Working with Images"); not sure, if this is useful under "Building Images" * Enhance with some (general) advise about booting from USB * Mon May 15 2017 toms@suse.de - Provide missing _hybrid_iso label * Mon May 15 2017 ms@suse.com - Fixup check_target_directory_not_in_shared_cache The runtime check compared the given target path if it starts with the cache directory /var/cache/kiwi. This however also matches for e.g /var/cache/kiwi-foo which would be a valid target directory. This patch changes the matcher in a way to really check if the target directory points to the same cache directory structure. * Fri May 12 2017 ms@suse.com - Set default dracut output format to match upstream * Fri May 12 2017 ms@suse.com - Added dracut output file format detection Unfortunately the dracut initrd output file format varies between the different Linux distributions. Tools like lsinitrd, and also grub2 rely on the initrd output file to be in that format. Thus when kiwi uses dracut the same file format should be used all over the place in order to stay compatible with what the distribution does. Fixes #325 * Fri May 12 2017 toms@suse.de - Revised example for issue #323 * Add abstract (use `.. sidebar`, not sure if we should use it) * Collect all concept oriented text in the beginning * Introduce procedure and create steps * Remove lonely subsection and combine it with the procedure TODO: * Review * Decide, if `.. sidebar` is ok (or should we better use `.. topic`?) * Add additional, related information? * Thu May 11 2017 ms@suse.com - Bump version: 9.6.0 → 9.6.1 * Thu May 11 2017 dcassany@suse.com - Update build docker images documentation This commit includes steps to install umoci and skopeo, descriptions for the configurable metadata in KIWI and some simple style fixes. * Tue May 09 2017 ms@suse.com - Fixed tox.ini doc target location of schema docs has changed, and we better disable the spell check as long as not all unknown technical terms are added to the wordlist.txt * Mon May 08 2017 Jellyfrog@users.noreply.github.com - Use correct service name variable * Sun May 07 2017 ms@suse.com - Refactor documentation layout and structure The current design of the documentation does not allow for continous improvement and development. It's missing a basic structure and concept for documenting step-by-step workflows and generic explanations. * Sat May 06 2017 ngompa@datto.com - Remove erroneous statement in request_package_exclusion() for Yum+DNF * Fri May 05 2017 ms@suse.com - Fixed markup in contributing chapter The headline of a subsection wrongly indicates a toplevel entry * Fri Apr 28 2017 dcassany@suse.com - Evaluate UNIONFS_CONFIG filesystem This commit makes sure the filesystem is parsed from the UNIONFS_CONFIG configuration variable when the PXE image is loaded to a block device. This commit fixes #316 * Fri Apr 28 2017 ms@suse.com - Fixed GPL license text to match headers and spec source headers and spec file is pointing to GPL v3 but the license file was still at version 2 * Thu Apr 27 2017 ngompa@datto.com - Add support for excluding packages when using DNF * Thu Apr 27 2017 ngompa@datto.com - Add support for excluding packages when using Yum * Thu Apr 27 2017 ngompa@datto.com - Fix comment about Zypper locks to reflect reality * Wed Apr 26 2017 ms@suse.com - Bump version: 9.5.0 → 9.6.0 * Wed Apr 26 2017 ms@suse.com - Additional container commandline options Added --set-container-derived-from and --set-container-tag commandline options which allows to overwrite the data set in the XML configuration * Tue Apr 25 2017 ms@suse.com - Implement obsrepositories source on derived_from The following reference to a derived container: obsrepositories:/container#latest Will be translated into the following buildservice local path: /usr/src/packages/SOURCES/containers/_obsrepositories/container#latest * Tue Apr 25 2017 ms@suse.com - Implement obs source on derived_from The following reference to a derived container: obs:/project/repo/container#tag Will be translated into the following buildservice local path: /usr/src/packages/SOURCES/containers/project/repo/container#tag * Tue Apr 25 2017 ms@suse.com - Use urlparse to detect uri scheme The source location postfix can contain several different formats e.g :/, or :// or even just :, python's urlparse is able to cope with all that which allows to work with the url scheme base name and thus makes handling this code more robust * Mon Apr 24 2017 ms@suse.com - Bump version: 9.4.11 → 9.5.0 * Mon Apr 24 2017 dcassany@suse.com - Include '--delete' in OCI images DataSync This commit includes #310 patch for OCI images. It also corrects the end of line format for kiwi/container/docker.py and test/unit/container_image_docker_test.py, so flake tests are all green. * Thu Apr 20 2017 dcassany@suse.com - Include --delete flag in DataSync for docker images This commit includes the --delete flag in order to synchronize the docker images. This is relevant for derived images where the new layer might not only add files, but also remove something from the base image. Fixes #309 * Fri Apr 14 2017 ngompa@datto.com - Define correct default locations for sources-dir and preferences-dir In order to ensure that the defined repositories in the KIWI configuration are set to the correct places for installing into the image, the sources-dir and preferences-dir need to be redefined to point to the in-image location, as it is done for the other package managers. * Fri Apr 14 2017 ngompa@datto.com - Do not purge the repositories before inserting them There are no good reasons to be purging the repo directories, especially when it is common for some distributions (Red Hat/CentOS/Fedora, for example) to ship repository configuration as packages. Deleting them puts the package manager in the system into a weird state, so we want to avoid this. * Fri Apr 14 2017 ngompa@datto.com - Fix default reposdir path for Yum * Thu Apr 13 2017 dcassany@suse.com - Add support for OCI images This commit adds support for OCI images. Most of the docker related code is reused for OCI classes and Docker classes have been refactored so now they are a splecialization of the OCI classes. It is done this way since KIWI internally only uses OCI format to operate with containers, therefore docker images just differ from OCI images by the way they are packaged or unpackaged. * Wed Apr 12 2017 dcassany@suse.com - Add clear attribute for entrypoint and subcommand sections This commit adds the possibility of clearing asny subcommand or entrypoint. This is relevant for docker derived images, as they inherit the configuration and it might lead to some bad behavior. * Wed Apr 12 2017 ms@suse.com - Bump version: 9.4.10 → 9.4.11 * Wed Apr 12 2017 dcassany@suse.com - Add require/recommend installation support for yum This commit adds support to install required only or required plus recommended packages using yum as the package manager. * Wed Apr 12 2017 dcassany@suse.com - Add support for required/recommended packages This commit enables support to install only required packages or install required plus recommended packages. * Tue Apr 11 2017 dcassany@suse.com - Include 'plusRecommended' management for dnf Add support to enable/disable installation of recommended packages for dnf package manager. With this commit 'plusRecommended' patternType triggers on installation of recommended packages, which is turned off by default. * Tue Apr 11 2017 dcassany@suse.com - Make sure debian repositories database is populated before install This commit includes an 'apt-get update' call before any 'apt-get install' command. This way the packages database is always ready, even if no bootstrap procedure has been executed. * Mon Apr 10 2017 ms@suse.com - Bump version: 9.4.9 → 9.4.10 * Mon Apr 10 2017 dcassany@suse.com - Add warning logs for unkown base image URIs * Mon Apr 10 2017 dcassany@suse.com - Update spec template for SLE13->SLE15 * Mon Apr 10 2017 dcassany@suse.com - Rename SLE13 to SLE15 * Mon Apr 10 2017 ms@suse.com - Follow up fix for grub2 setup in live builder The live iso builder still used a fixed boot/grub2 path but due to the refactoring this path is now distro dependant and should be obtained dynamically * Mon Apr 10 2017 ms@suse.com - Cleanup use of bootloader path in boot code Instead of repeating the bootloader path only specify it once per setup path * Mon Apr 10 2017 dcassany@suse.com - Add method to setup installation of recommended packages With this commit package manager are always set to include only required packages or set to include required and recommended packages. This commit fixes #285 * Thu Apr 06 2017 ms@suse.com - Bump version: 9.4.8 → 9.4.9 * Thu Apr 06 2017 ms@suse.com - Update development and contribution chapter Fix some minor inconsistencies due to latest code changes with regards to py2 and py3 compatibility and also change the style of the chapter to be more straight forward for people who would like to contribute from scratch * Wed Apr 05 2017 dcassany@suse.com - Bypass bootstrap procedure if no bootstrap packages section This commit updates kiwi to bypass bootstrap procedure in case there is no bootstrap packages section. It also adds extra validation in root_bind. * Wed Apr 05 2017 ms@suse.com - Bump version: 9.4.7 → 9.4.8 * Wed Apr 05 2017 ms@suse.com - Fixup grub2 template parameters The boot_directory_name parameters was missing for live and install image builds * Wed Apr 05 2017 ms@suse.com - Bump version: 9.4.6 → 9.4.7 * Wed Apr 05 2017 ms@suse.com - Fixup grub2 bios module setup Only copy grub2 bios modules if the architecture supports it * Wed Apr 05 2017 ms@suse.com - Bump version: 9.4.5 → 9.4.6 * Tue Apr 04 2017 ms@suse.com - Avoid GRUB_DISTRIBUTOR setup in etc/default/grub The GRUB_DISTRIBUTOR information can't be provided in a generic way for all distributions. The information should be either placed by a package post script (as done by most of the distributions) or by a custom kiwi config.sh or images.sh script. Fixes #286 Fixes (bsc#1032119) * Tue Apr 04 2017 dcassany@suse.com - Added support for unknown uri types for base image references This commits bypasses any URI check if the uri schema is unknown in RootImport class. This way the URI is bypassed to skopeo if it couldn't be translated to any known type. That enables referencing images with any URI supported by skopeo, i.e. DockerHub images. * Tue Apr 04 2017 dcassany@suse.com - Keep imported image in OCI format instead of docker Kiwi always uses OCI format for container manipulations, so it is easier to assume the image kept between prepare and create step is also in OCI format, this way less format convertions are needed. * Tue Apr 04 2017 ms@suse.com - Fixup bootloader menu title setup If the menu title is setup via the displayname attribute in the XML configuration, kiwi should not change this text by a prefix or any other style adaptions. Fixes #287 Fixes (bsc#1032118) * Tue Apr 04 2017 ms@suse.com - Fixup copy of array in boot code The filtered nic interface names are stored in an array and copied back into the original array. The copy of the array was semantically wrong * Mon Apr 03 2017 ms@suse.com - Fixup grub2 setup and tool calls Depending on the distribution the grub tools are either named grub2-tool or grub-tool. Additionally the grub configuration data is expected to live in boot/grub2 or boot/grub. This commit handles the tool calls and also the grub boot directory setup in a generic way * Thu Mar 30 2017 dcassany@suse.com - Include SLE13 boot descriptions for x86_64 and arm This commit includes boot descriptions for SLE13, the descriptions are based on leap 42.3. * Thu Mar 30 2017 ms@suse.com - Delete obsolete ec2 disk format The ec2 value in the format attribute is deprecated and no longer supported It remained in the schema for a while and has now reached EOL * Thu Mar 30 2017 ms@suse.com - Bump version: 9.4.4 → 9.4.5 * Tue Mar 28 2017 ms@suse.com - Fixup theme setup in boot Make sure grub theme data is populated in the boot directory. Checking only for the presence of the theme directory is not enough. If the theme directory in boot does not contain the requested theme it must be provided including a warning if the theme data could not be found in the system * Tue Mar 28 2017 ms@suse.com - Do not change the API in an incompatible way * Tue Mar 28 2017 ms@suse.com - Use request_package_exclusion method in prepare * Mon Mar 27 2017 ms@suse.com - Refactor method name of package manager interface The request_package_lock was renamed into request_package_exclusion because that is the goal, to actually exclude(skip) a package. From an implementation point of view this is done to set a lock in the zypper case. However other package managers might do it differently. The interface should stay consistent with regards to the user goal and not with the package manager specific implementation. This Fixes #248 * Mon Mar 27 2017 ms@suse.com - Added <oem-nic-filter> element Allow network interface names to be filtered by the given regular expression. The expression is handled by the bash regexp operator. Interface names matching the rule will be filtered out, all others stay. It is also possible to pass the variable kiwi_oemnicfilter as kernel command line in a PXE deployment. Fixes #245 * Mon Mar 27 2017 ms@suse.com - Bump version: 9.4.3 → 9.4.4 * Mon Mar 27 2017 ms@suse.com - Delete no longer needed btrfs bootpath setup The adaption of the bootpath in the grub.cfg file with regards to the btrfs toplevel volume named '@' was the wrong solution. The fixes in the btrfs filesystem setup and the config files etc/default/grub and sysconfig/bootloader caused the grub toolchain to work properly. This Fixes (bsc#1030038) * Fri Mar 24 2017 dcassany@suse.com - Convert user input to absolute paths This commit converts the paths provided by the user with the command line to absolute paths. The effected arguments are: * --root * --target-dir * --bundle-dir This supersedes and fixes #271 * Fri Mar 24 2017 ms@suse.com - Support editbootconfig also for the iso type This Fixes #274 * Thu Mar 23 2017 ms@suse.com - ensure grub.cfg exists in EFI path for iso images For live and install iso image boot configurations the bootloader configuration must also exist in the EFI boot path * Wed Mar 22 2017 ms@suse.com - Throw a proper msg on missing filesystem reference Don't set a filesystem factor if no filesystem reference is set * Wed Mar 22 2017 ms@suse.com - Throw a proper exception on missing boot reference * Wed Mar 22 2017 ms@suse.com - Update schema documentation Add explanation for attributes with no documentation Fixup explanation for hybrid attribute * Wed Mar 22 2017 ms@suse.com - Recommend jing in case of XML validation errors, jing is used to provide good error messages. jing as a requirement will pull in all of java which is unwanted, but a Recommends seems appropriate * Wed Mar 22 2017 ms@suse.com - Update flags attribute and its documentation Delete the seed and compressed value as it is not implemented and won't be supported in the future. Properly document the existing overlay methods * Wed Mar 22 2017 ms@suse.com - Added doc info for kiwinoswapsearch boot parameter * Tue Mar 21 2017 ms@suse.com - Bump version: 9.4.2 → 9.4.3 * Tue Mar 21 2017 ms@suse.com - Fixed checksum file creation If the checksum should be created from a compressed file it is expected that the checksum of the uncompressed file is added to the checksum file. This is because in a pxe deployment the uncompressed version of the file is put on disk and compared with the reference information in the checksum file * Tue Mar 21 2017 ms@suse.com - Refactor ip link detection There is no reliable way to check if a link is unplugged, thus the code has changed into the following workflow 1. use interfaces which returns success on ip link set up 2. wait for the UP state on all of these interfaces and return if one of them enters the UP state 3. call a fixed wait state to allow to kernel network drivers to settle 4. run through all remaining interfaces, discover the link state and call a DHCP discovery * Mon Mar 20 2017 ms@suse.com - Bump version: 9.4.1 → 9.4.2 * Mon Mar 20 2017 ms@suse.com - Fixup pxe builder filesystem image rootfs was not in toplevel * Mon Mar 20 2017 ms@suse.com - Bump version: 9.4.0 → 9.4.1 * Mon Mar 20 2017 ms@suse.com - Fixup pxe builder Generate a tarball containing all relevant pxe boot result files instead of a bunch of extra files. This also turns the pxe builder to be compatible again with the legacy kiwi pxe bundler * Fri Mar 17 2017 ms@suse.com - Don't create shasum over an md5 file * Thu Mar 16 2017 ms@suse.com - Bump version: 9.3.3 → 9.4.0 * Wed Mar 15 2017 ms@suse.com - Allow https location as repository source * Wed Mar 15 2017 dcassany@suse.com - Refactor RootImport to keep images with a default name RootImport has been refactored so the image is kept with a known name that can be obtained with the Defaults class. * Tue Mar 14 2017 ms@suse.com - Added SLE13 distribution matcher * Tue Mar 14 2017 ms@suse.com - Update distribution matcher in spec file * Tue Mar 14 2017 ms@suse.com - Refactor ContainerBuilder Use Checksum instance to run a checksum match Check for existence of base image at earliest opportunity when constructing a ContainerBuilder * Tue Mar 14 2017 ms@suse.com - Added checksum matcher method to Checksum class * Tue Mar 14 2017 ms@suse.com - Delete unused code Also fixed corresponding unit test * Mon Mar 13 2017 ms@suse.com - Make sure LICENSE and README got installed * Mon Mar 13 2017 ms@suse.com - Handle derived image as Uri instance * Mon Mar 13 2017 ms@suse.com - Add completion for versioned binaries when installing kiwi via pip, no alternatives setup done when installing via rpm will be performed. In order to allow the bash completion to work also the versioned binaries needs to be added in the completion script * Mon Mar 13 2017 ms@suse.com - Bump version: 9.3.2 → 9.3.3 * Fri Mar 10 2017 ms@suse.com - Add documentation hint for multipython package * Thu Mar 09 2017 ms@suse.com - Setup package for multipython build Build package for both python2 and python3 * Thu Mar 09 2017 dcassany@suse.com - Refactored RootImport and included checksum validation First, commit refactors RootImport in order to also copy the imported image after sychronizing the import. Second, it includes a checksum of the copied image which is validated in later steps. * Wed Mar 08 2017 ms@suse.com - Added Leap42.3 boot descriptions * Wed Mar 08 2017 ms@suse.com - Deleted openSUSE 13.2 boot descriptions * Wed Mar 08 2017 ms@suse.com - Refactor Uri constructor Make repo_type an optional parameter, which is only required if the specified uri leaves a type choice * Wed Mar 08 2017 ms@suse.com - Fixup PyPI entry registry The wrong project url was referenced * Wed Mar 08 2017 dcassany@suse.com - Support for layered docker images This commit includes support for building layered docker. A new layer is added on top of the base image referenced by `derived_from` attribute. * Tue Mar 07 2017 ms@suse.com - Bump version: 9.3.1 → 9.3.2 * Tue Mar 07 2017 ms@suse.com - Fixed MANIFEST.in kiwi.solver code was not included into source archive * Tue Mar 07 2017 ms@suse.com - Bump version: 9.3.0 → 9.3.1 * Tue Mar 07 2017 ms@suse.com - Fixed doc api build for renamed source file * Tue Mar 07 2017 ms@suse.com - Bump version: 9.2.4 → 9.3.0 * Tue Mar 07 2017 ms@suse.com - Flake8 fixes for unit tests * Tue Mar 07 2017 ms@suse.com - Apply code quality checks for unit tests too * Tue Mar 07 2017 ms@suse.com - Fixed import of solv module * Tue Mar 07 2017 dcassany@suse.com - Import root system from a given image This commit includes the root import feature. A `derived_from` attribute has been included with the <type> section to make reference to the image file to import. The image format to import is assumed to be the same as the build type to import. The current format supported is docker * Tue Mar 07 2017 ms@suse.com - Flake cleanup for unit tests * Mon Mar 06 2017 ms@suse.com - Prevent use of project relative import statements For details on the motivation of this change please visit: https://wiki.python.org/moin/FutureProofPython * Mon Mar 06 2017 ms@suse.com - Allow activation/deactivation of sysV services systemd is still legacy sysV init compatible, thus the kiwi helper scripts to activate/deactivate services should not only be limited to systemd services. Fixes #256 * Mon Mar 06 2017 ms@suse.com - Support package capabilities in sat solver A solver operation can receive a package or pattern name but a capability name was considered a package name and failed to resolve. This commit fixes the solver operation with regards to package capabilities * Mon Mar 06 2017 ms@suse.com - Add runtime check for kernel match If a kiwi initrd is used, the kernel used to build the kiwi initrd and the kernel used in the system image must be the same in order to avoid an inconsistent boot setup. This is related to (bsc#1027610) * Fri Mar 03 2017 ms@suse.com - Added runtime check for boot image reference If an initrd_system different from kiwi is selected for a vmx (simple disk) image, it does not make sense to setup a reference to a kiwi boot image description, because no kiwi boot image will be built. Despite that it does not hurt it's still an inconsistent setup. This is related to (bsc#1027610) * Fri Mar 03 2017 ms@suse.com - Bump version: 9.2.3 → 9.2.4 * Fri Mar 03 2017 ms@suse.com - Update documentation the docker build container is now build with the correct namespace. Thus no image tagging is required anymore * Fri Mar 03 2017 ms@suse.com - Bump version: 9.2.2 → 9.2.3 * Thu Mar 02 2017 davidcassany@gmail.com - Support container names with slashes (#254) Umoci tool doesn't require any other parameter than a tag to identify the container. So container_name value is not used in umoci. This Fixes#253 * Wed Mar 01 2017 dcassany@suse.com - Use default command only if no entrypoit and subcommand aren't set Fixes #251 * Wed Mar 01 2017 dcassany@suse.com - Fix tagging for OCI images This commit fixes the tagging schema for umoci. An OCI image name is path[:tag], this commit rearranges some variable names to avoid confusions between names and tags. Fixes #249 * Tue Feb 28 2017 ms@suse.com - Add support for repository credentials The package and solver repository classes did not provide an interface to deal with repository credentials. This commit add support for the zypper package manager and the generic urlopen based download method of the solver class. This Fixes #246 * Tue Feb 28 2017 ngompa13@gmail.com - Fix default reposdir path for DNF * Tue Feb 28 2017 ms@suse.com - Bump version: 9.2.1 → 9.2.2 * Tue Feb 28 2017 ms@suse.com - Update documentation Add detailed information how to update the docker Build Container on the official dockerhub registry. This is needed to use custom or newer versions of the currently published Build Container * Tue Feb 28 2017 ms@suse.com - Bump version: 9.2.0 → 9.2.1 * Tue Feb 28 2017 ms@suse.com - Update documentation The changes in building docker images now allows for using the docker load command to import the dice container * Mon Feb 27 2017 ms@suse.com - Bump version: 9.1.0 → 9.2.0 * Mon Feb 27 2017 ms@suse.com - Added support for exclude docs for dnf * Mon Feb 27 2017 ms@suse.com - Fixup default cache and plugin dir for dnf * Fri Feb 24 2017 ms@suse.com - Update distribution support status Add information that Fedora systems are now supported as well * Fri Feb 24 2017 ms@suse.com - Make sure bootenv can be initialized An existing grub bootenv file should be deleted prior to calling grub2-install in order to allow grub2 to create a new correct bootenv file * Thu Feb 23 2017 ms@suse.com - Added DNF package management implementation DNF is the package manager used on Fedora systems and will also most likely replace yum for the next generation of RHEL. Along with the implementation here an example JeOS image description for Fedora can be found on: https://github.com/SUSE/kiwi-descriptions. This Fixes #36 * Tue Feb 21 2017 ms@suse.com - Follow up fix for network driver delay Each network interface will be switched off for a short moment when the kernel network driver is loaded. During that time the link status information would be misleading. Thus we wait a short time before the link status check is started * Mon Feb 20 2017 dcassany@suse.com - Include compression optimization flags for mksquashfs command This commit includes some flags for mksquashfs command in other to achieve higher compression rates. Also note that those flags were already present in KIWI former versions, thus they have been included again for compatibility reasons. This commit fixes #242 * Mon Feb 20 2017 ms@suse.com - Allow to convert GPT into MBR The type attribute force_mbr allows to convert a system selected for use with a GPT to use an MBR (msdos table). The attribute only takes effect on image configurations which would select the GPT partitioner. This Fixes #236 * Mon Feb 20 2017 ms@suse.com - Wait for network drivers to pass init Before we check for the link status a waid period of 3 seconds should guarantee that the network drivers have passed the init routines * Thu Feb 16 2017 ms@suse.com - Refactor waitForLinkUp Put code which does not belong into the loop outside of the loop. Also maintain sleep timeout and retry count in variables * Thu Feb 16 2017 ms@suse.com - Fixed waitForLinkUp and setIPLinkUp The setIPLinkUp method did not handle the return value of the waitForLinkUp call and always returned success even if waitForLinkUp ran into a timeout The waitForLinkUp method was improved in a way that it does not wait if the link detection discovered the interface is unplugged. The detection if a cable is connected or not only works if the ifplugstatus tool was found in the initrd * Fri Feb 10 2017 ms@suse.com - Bump version: 9.0.2 → 9.1.0 * Thu Feb 09 2017 ms@suse.com - Implement handling for efipartsize * Thu Feb 09 2017 ms@suse.com - Decrease default EFI partition size to 20MB The former default of 200MB was way too large and is a waste of space. Related to Issue #237 * Thu Feb 09 2017 ms@suse.com - Added efipartsize attribute in type setup The attribute allows to specify a custom size for the EFI partition. Fixes #237 * Thu Feb 09 2017 ms@suse.com - Allow bootloader="custom" for bootloader attribute If specified as such the bootloader configuration and installation will be skipped. However the editbootinstall and editbootconfig scripts will still be called. This Fixes #235 * Thu Feb 09 2017 ms@suse.com - Fixed create_repository_solvable If the solvable already exists, the method should return it * Wed Feb 08 2017 ms@suse.com - Added handling for spare_part attribute Add a spare partition right before the root partition of the configured size. Fixes #234 * Wed Feb 08 2017 ms@suse.com - Added new type attribute spare_part spare_part receives a size value with an optional unit (M|G) and is used for disk images to allow the creaton of a spare partition of the configured size. Issue #234 * Wed Feb 08 2017 ms@suse.com - Delete all traces of vboot firmware The vboot firmware setup was a workaround on arm for the chromebook platform several years ago. From a todays perspective the setup and the way to boot would be different and obsoletes the special case implementation. Thus this is gone now. Related to Issue #234 * Wed Feb 08 2017 ms@suse.com - Prevent quoted domain name in dhclientImportInfo We're getting domain name by parsion a lease file. Unfortunately in lease file domain name is quoted, which breaks linux resolver. This commit gets domainname unquoted * Tue Feb 07 2017 ms@suse.com - Add manual page for image info command * Mon Feb 06 2017 ms@suse.com - Added kiwi image info command Allow to list information about the image description. In a first implementation one can show the image name as well as run a dependency resolution for the packages listed in the XML description * Fri Feb 03 2017 ms@suse.com - Bump version: 9.0.1 → 9.0.2 * Fri Feb 03 2017 ms@suse.com - Added uri translation for SUSE factory The obs uri 'obs://openSUSE:Factory/standard' does not follow the standard http url translation schema and needed a special handling in order to resolve correctly * Thu Feb 02 2017 ms@suse.com - Eliminate instsource element and requirements The schema defintions for kiwi v8 still contained the product schema definitions aka instsource which is no longer supported by this version of kiwi. Building SUSE products is done with the kiwi v7 code base and will most probably be handled by an extra product builder tool in the future maintained and developed by the buildservice team. We would be proud if the api of the kiwi v8 code base can be helpful for the product builder in the future * Wed Feb 01 2017 ms@suse.com - Bump version: 9.0.0 → 9.0.1 * Wed Feb 01 2017 ms@suse.com - Added arch attribute for ignore section The packages subsection <ignore> only accepted a package name to become ignored. However a <package> subsection to install a package allows for an arch selection. The same should apply to ignore a package. In addition the allowed content for the arch attribute has been changed from simple text to a regular expression. Allowed is a comma seperated list of reserved architecture words like they are displayed by uname -m * Wed Feb 01 2017 ms@suse.com - User format method to form the message * Wed Feb 01 2017 ms@suse.com - Added support for package locking for zypper Zypper supports the al (add lock) command which allows to ignore a package in the dependecny resolution process. This is useful to prevent installation of a package which was pulled in by e.g a recommendation flag from the spec file. Packages marked to be ignored are not handled for apt and yum right now. Using this feature together with an unsupported package manager backend results in a warning to the user * Wed Feb 01 2017 dcassany@suse.com - Included some file naming convetions * Mon Jan 30 2017 dcassany@suse.com - Components of an Image Description section This commit extends the doc/sources/workflow.rst documentation by including details about config.sh and images.sh files. * Fri Jan 27 2017 ms@suse.com - Bump version: 8.29.6 → 9.0.0 * Thu Jan 26 2017 ms@suse.com - Update documentation Add information about new hook: handleMachineID * Thu Jan 26 2017 ms@suse.com - Bump version: 8.29.5 → 8.29.6 * Thu Jan 26 2017 ms@suse.com - Fixup isolinux timeout configuration isolinux counts the timeout in units of 1/10 seconds. Thus the value provided in the image description needs to be adapted correctly. This Fixes #228 * Thu Jan 26 2017 ms@suse.com - Bump version: 8.29.4 → 8.29.5 * Thu Jan 26 2017 ms@suse.com - Fixup setupMachineID Cleaning up existing machine id files by deleting them causes an interactive session to be started by systemd This is something we don't want. As the consequences of touching the machine id files seems to be too critical the method has been turned into a hook caller. This allows the user to make use of it on their own purpose and by default doesn't mess with the machine id files * Tue Jan 24 2017 ms@suse.com - Bump version: 8.29.3 → 8.29.4 * Tue Jan 24 2017 ms@suse.com - Change processing of setupMachineID Instead of creating new machine ids for systemd and dbus the method now cleans up all existing machine ids and leave it up to systemd to initialize and create new ids. This allows to make use of the native way how systemd retrieves and handles machine ids * Tue Jan 24 2017 ms@suse.com - Fixup typo in ReST style * Tue Jan 24 2017 ms@suse.com - Bump version: 8.29.2 → 8.29.3 * Mon Jan 23 2017 ms@suse.com - Add utils.sysconfig to api documentation * Mon Jan 23 2017 ms@suse.com - Completion for grub bootloader configuration The configuration files /etc/sysconfig/bootloader and /etc/default/grub needs to be created/updated with the relevant values regarding the bootloader setup done by kiwi. This Fixes #226 * Fri Jan 20 2017 ms@suse.com - Apply volume attributes for btrfs and lvm The chattr utility is used to apply file attributes So far only the no-copy-on-write attribute can be specified in a volume setup. If further attributes are needed they will be added on demand * Fri Jan 20 2017 ms@suse.com - Added attributes element in volume type * Thu Jan 19 2017 ms@suse.com - Added volume attribute copy_on_write The copy_on_write attribute allows to activate or deactivate the copy on write functionality for the desired volume. This Fixes #218 * Thu Jan 19 2017 ms@suse.com - Make sure there is a storage default setup on s390 Storage disks on s390 requires an information about the type and the blocksize. In case these information is not provided in the kiwi XML configuration, None was set as value in the zipl configuration which lead to an error. This commit provides default values for those parameters * Wed Jan 18 2017 ms@suse.com - Bump version: 8.29.1 → 8.29.2 * Tue Jan 17 2017 ms@suse.com - Allow unix device names in oem-unattended-id setup In order to allow a raw device name in oem-unattended-id the /dev tree has been added to search list. This is useful if e.g a ramdisk device which is not part of any /dev/disk/... or /dev/mapper device map should be used as target disk for the deployment. Thus a setup to stick the deployment to e.g /dev/ram1 would look like this <oem-unattended-id>ram1</oem-unattended-id> This Fixes #221 * Tue Jan 17 2017 ms@suse.com - Don't delete ip tools from oemboot network tools are needed for oem disk deployment via pxe * Tue Jan 17 2017 ms@suse.com - Added .coveragerc Clearly indicate which source files are excluded from the coverage report * Tue Jan 17 2017 ms@suse.com - Make sure setupMachineID also cares for dbus Systemd and dbus should use the same machine-id. Therefore a symlink /var/lib/dbus/machine-id pointing to /etc/machine-id is created right after systemd-machine-id-setup. Fixes #219 * Mon Jan 16 2017 dcassany@suse.com - Fixup duplication of btrfs toplevel volume If using root btrfs snapshot, the default toplevel subvolume is set to /@/.snapshots/1/snapshot, thus all defined subvolumes are mounted under that cusomized default subvolume. For the first time subvolumes are mounted it is fine to include /@/.snapshots/1/snapshot prefix as root is not yet set to that specific path, however in any future mount this path prefix is not needed any more, as the root get mounted in /@/.snapshots/1/snapshot by default. Fixes (bsc#1015549) * Fri Jan 13 2017 ms@suse.com - Add check_docker_tool_chain_installed Runtime check to check for required docker tools umoci and skopeo. As long as tools tools are not available in the core distro of all distributions we avoid spec file requirements and check at runtime if they can be found * Tue Jan 10 2017 ms@suse.com - Bump version: 8.29.0 → 8.29.1 * Tue Jan 10 2017 ms@suse.com - Rebuild schema documentation * Tue Jan 10 2017 ms@suse.com - Bump version: 8.28.3 → 8.29.0 * Mon Jan 09 2017 dcassany@suse.com - Running config.sh after including the image repositories This commit rearranges some code lines in order to run the config.sh script after the repositories of the image have been included, this way repositories can be trusted and refreshed in config.sh script. * Mon Jan 09 2017 ms@suse.com - Refactor docker container creation Instead of creating a simple tarball the tools umoci and skopeo from the docker tool chain are used to create official docker images. Along with those tools more information to describe a container has been added to the schema. A complete container setup now consists of the following elements <type image="docker"> <containerconfig name="..." maintainer="..." user="..." workingdir="..."> <entrypoint execute="command"> <argument name="option"/> ... </entrypoint> <subcommand execute="command"> <argument name="option"/> ... </subcommand> <expose> <port number="..."/> ... </expose> <volumes> <volume name="..."/> ... </volumes> <environment> <env name="variable" value="value"/> ... </environment> <labels> <label name="..." value="..."/> ... </labels> </containerconfig> </type> * Mon Jan 09 2017 ms@suse.com - Update container builder code to new schema layout * Mon Jan 09 2017 ms@suse.com - Auto update image descriptions to schema v6.5 * Mon Jan 09 2017 ms@suse.com - Update schema for container setup In preparation to support creation of native docker containers the way docker likes it, the kiwi schema has to be adapted. So far there was no way to specify additional metadata information for containers. With this commit a new section called <containerconfig> is provided. containerconfig is a subsection of the type and only allowed for the docker image type. This constraint is checked via a schematron rule. In addition an xslt stylesheet moves the currently existing container attribute, which was used to set a name for the container, into the new containerconfig section as name attribute * Tue Dec 20 2016 ms@suse.com - Bump version: 8.28.2 → 8.28.3 * Tue Dec 20 2016 ms@suse.com - Fixed quadruple_token tokenizer Information not provided should end up as a None type in the list in any case. If an empty string was provided via e.g - -add-repo source,type,, the tokenizer puts in an empty string. If the information was provided as --add-repo source,type a None type was used. The code handling the information expected a None type for not provided information, with an empty string we end up in validation code which e,g complains that an empty string can't be converted into an integer base repo priority * Sun Dec 18 2016 ms@suse.com - Bump version: 8.28.1 → 8.28.2 * Sun Dec 18 2016 ms@suse.com - Update documentation Default provider must be set in the caller environment if different from the default docker provider * Fri Dec 16 2016 ms@suse.com - Bump version: 8.28.0 → 8.28.1 * Fri Dec 16 2016 ms@suse.com - Update container builder documentation Add information about the now available kiwi build box and the use of it as part of libvirt provider setup for vagrant * Thu Dec 15 2016 ms@suse.com - Bump version: 8.27.5 → 8.28.0 * Tue Dec 13 2016 ms@suse.com - Bump version: 8.27.4 → 8.27.5 * Tue Dec 13 2016 ms@suse.com - Fixup spec file build requires shadow tools are needed for %pre tasks using groupadd/useradd tools * Tue Dec 13 2016 ms@suse.com - Bump version: 8.27.3 → 8.27.4 * Mon Dec 12 2016 ms@suse.com - Fixup spec file tftp group/user setup Let %pre fail if groupadd/useradd failed and show the error to the user * Thu Dec 08 2016 ms@suse.com - Added DiskFormatVagrantLibVirt class Allow to build vagrant boxes for the libvirt provider This Fixes #15 * Thu Dec 08 2016 ms@suse.com - Update vagrantconfig schema setup Delete the virtualbox provider, As long as there is no opensource variant for the ovf creation available we won't support that provider * Wed Dec 07 2016 ms@suse.com - Bump version: 8.27.2 → 8.27.3 * Tue Dec 06 2016 ms@suse.com - Adapt documentation to rtd schema replace topic node used for abstract by a hint. This results in a color box for the abstract which looks better than what rtd does with simple topics * Tue Dec 06 2016 ms@suse.com - Adapt schema generator to rtd doc schema * Tue Dec 06 2016 ms@suse.com - Move to rtd sphinx schema The read-the-docs schema fits better into the mainstream of online documentation * Mon Dec 05 2016 ms@suse.com - Bump version: 8.27.1 → 8.27.2 * Mon Dec 05 2016 ms@suse.com - Added check_volume_setup_has_no_root_definition The root volume in a systemdisk setup is handled in a special way. It is not allowed to setup a custom name or mountpoint for the root volume. Therefore the size of the root volume can be setup via the @root volume name. This check looks up the volume setup and searches if there is a configuration for the '/' mountpoint which would cause the image build to fail * Mon Dec 05 2016 ms@suse.com - Prevent warning about unknown opt in workflow doc * Mon Dec 05 2016 ms@suse.com - Bump version: 8.27.0 → 8.27.1 * Mon Dec 05 2016 ms@suse.com - Rebuild schema documentation * Mon Dec 05 2016 ms@suse.com - Add a docstring for the extension section Short description what the extension section is good for * Mon Dec 05 2016 ms@suse.com - Prevent any type from attribute recursion The schema parser to create the documentation run into an endless recursion for the new k.any type. As any could be anything there is not much do document for this type. Thus it is now skipped from the traversal * Mon Dec 05 2016 ms@suse.com - Bump version: 8.26.1 → 8.27.0 * Fri Dec 02 2016 ms@suse.com - Update documentation per review * Thu Dec 01 2016 dcassany@suse.com - Including minimum volume size offset in disk size calculation This commit adds Defaults:get_min_volume_mbytes() to the disk size calculation algorithm. This should be sufficient to hold fdisk default offset when creating the first partition and also to hold the LVM metadata. * Thu Dec 01 2016 ms@suse.com - Added extension documentation * Thu Dec 01 2016 ms@suse.com - Make sure to catch exceptions from xsltproc * Wed Nov 30 2016 ms@suse.com - Add extension validation and data access If an extension section exists the xml data in this section is validated against the RelaxNG schema which must be part of the xmlcatalog for the used extension namespace. If the data validates the method get_extension_xml_data can be used to access the etree parse result for each of the extension configurations * Wed Nov 30 2016 dcassany@suse.com - LVM volumes management during grub2 install During the grub2 install process volumes were not mounted properly, a proper mount order was not taken into consideration and LV device information was not given by the method get_volumes in VolumeManger. This commit forces the mount (and umount) operations to be done in coherent order and also modifies the get_volumes method in order to return the device associated to each volume. * Mon Nov 28 2016 ms@suse.com - Allow <extension> section for custom plugins For the use case to add additional image description information an extension section exists which allows to add custom section and attributes. Custom XML information must be connected to a namespace in order to avoid conflicts with the existing structure. The following example shows how to place additional XML information: <image> <extension xmlns:my_plugin="http://www.my_plugin.com"> <my_plugin:my_feature> <my_plugin:title name="cool stuff"/> </my_plugin:my_feature> </extension> </image> * Fri Nov 25 2016 ms@suse.com - Fixed expansion of msdos disks If the target disk size is beyond 2TB it can't be expanded to the full size if the msdos partition table layout is in use. Because of this the disk expansion will be limited to the allowed maximum for the msdos partition table type which is at 2TB. This fixes bnc#1010966 * Thu Nov 24 2016 ms@suse.com - Bump version: 8.26.0 → 8.26.1 * Thu Nov 24 2016 ms@suse.com - Fixup of string + operator vs. join use * Thu Nov 24 2016 ms@suse.com - Fixed setup_disk_image_config in bootloader setup The parameter for the uuid is not enough to handle all supported disk geometries. If the disk has an extra boot partition the bootloader setup must read the boot data from the boot partition but must set the root for the kernel cmdline to the root partition. Therefore the interface needs to change and must provide both the boot_uuid and the root_uuid in oder to allow the method to setup the correct values * Thu Nov 24 2016 dcassany@suse.com - Parse arch attribute as a comma separated list This commit ensure that the arch attribute of each package section is parsed as a comma separated list. This way, as in previous kiwi versions, each package might be suitable for one or more specified architectures. * Thu Nov 24 2016 ms@suse.com - Fixup kernel name setup in disk builder The Kernel instance is the only correct place to ask for the kernel name. This class has the responsibility to know information about the selected kernel. The additional arch based assumption on the kernel name in the disk builder were wrong. This fixes bnc#1011936 * Tue Nov 22 2016 ms@suse.com - Fixed typo in solver api documentation * Tue Nov 22 2016 ms@suse.com - Bump version: 8.25.5 → 8.26.0 * Mon Nov 21 2016 dcassany@suse.com - No more hard links in result bundle This commit changes the copy command of the result bundle task. Now instead of creating hardlinks a relugar copy is performed. This way we ensure that the bundled files will not be modified by overwritting a linked file. * Mon Nov 21 2016 dcassany@suse.com - Documentation workflow review * Mon Nov 21 2016 ms@suse.com - The Sat solver class - an example The Sat solver class can be used to run a solver operation over a list of packages and/or patterns in order to receive a dependency solved list of all required packages according to the request. In order to do that a set of repositories is required which provides the package metadata and their requirements. The following is an example how to use the Sat class in your application: ```python from kiwi.solver.sat import Sat from kiwi.system.uri import Uri from kiwi.solver.repository import SolverRepository solver = Sat() solver.add_repository( SolverRepository(Uri('obs://leap/42.2/repo/oss', 'yast2')) ) print(solver.solve(['vim'])) ``` * Mon Nov 21 2016 ms@suse.com - Fixup code smell for kernel name list Iterating over only one list item doesn't need a loop * Mon Nov 21 2016 ms@suse.com - Fixup style to be more pythonic * Fri Nov 18 2016 ms@suse.com - Fixed release network using ip tool Apply the cidr fix from setupNic and introduce a new method called deleteNic which replaces the wrong ip call from the releaseNetwork method. Fixes bnc#1003091 * Fri Nov 18 2016 dcassany@suse.com - KIWI workflow documentation This commit ports the workflow documentation from previous KIWI version and also adds a sections for listing the boot parameters configurable in the Kernel command line. * Fri Nov 18 2016 ms@suse.com - Fixed kernel name lookup Complete the list of kernel names for the lookup. Normally the kernel package provides a symlink to the actual kernel image file. However if the link does not exist we extend the search to a collection of names for possible kernel images. The new list now also covers kernel names as used for arm Along with the change this patch also provides an option to raise an exception if the kernel lookup did not find any kernel, which is used for the get_kernel() request in the dracut initrd system setup where it is mandatory to find a kernel image. This fixes bnc#1010874 * Thu Nov 17 2016 ms@suse.com - Added Sat solver class Added implementation for Solver class based on the SUSE libsolv C library and the solv python binding * Thu Nov 17 2016 ms@suse.com - Bump version: 8.25.4 → 8.25.5 * Thu Nov 17 2016 ms@suse.com - Fixup lease time in setupNetworkWicked The default lease time with 300s used by wicked is relatively short and different from the default lease time of the former dhcpcd. This change causes wicked to use a lease time of 3600s This is related to bnc#1003091 * Thu Nov 17 2016 ms@suse.com - Fixup default behavior of releaseNetwork If no tool was found to communicate with the dhcp server in order to free the lease the method did nothing. However it should at least bring down the network. This is related to bnc#1003091 * Wed Nov 16 2016 ms@suse.com - Bump version: 8.25.3 → 8.25.4 * Wed Nov 16 2016 ms@suse.com - Fixup get_volumes for lvm manager The method also returned the root volume in the list of volumes but it should only return a list of volumes excluding root volume * Wed Nov 16 2016 ms@suse.com - Fixup setupNic for address information in cidr Ignore netmask if address is already in cidr format * Wed Nov 16 2016 ms@suse.com - Bump version: 8.25.2 → 8.25.3 * Tue Nov 15 2016 ms@suse.com - Fixup btrfs property setup The readonly property is set on the filesystem toplevel. kiwi has set the toplevel before any property is set. * Tue Nov 15 2016 dcassany@suse.com - vhdfixed images result compression This commit adds compression to the Result instance of the vhdfixed disk. This concrete format is not compressed or dynamic, so that, it makes sense compress them. Also this was the behavior in previous kiwi versions. * Tue Nov 15 2016 kukuk@thkukuk.de - Replace tabs with spaces * Tue Nov 15 2016 ms@suse.com - Fixup handling for root_is_readonly_snapshot The information was not passed to the VolumeManager instance * Tue Nov 15 2016 ms@suse.com - Fixup mount_volumes in VolumeManagerBtrfs It is required to mount the toplevel btrfs filesystem if not already mounted, prior to mounting the subvolumes * Tue Nov 15 2016 ms@suse.com - Fixed busy mount state Make sure subvolumes are umounted first. This prevents a busy state in a partition setup with an extra boot partition * Mon Nov 14 2016 ms@suse.com - Bump version: 8.25.1 → 8.25.2 * Mon Nov 14 2016 ms@suse.com - Fixup creation of etc/default/grub config file Only create the file if the base directory structure in etc/default exists. * Sun Nov 13 2016 kukuk@thkukuk.de - Remove empty line too much * Sun Nov 13 2016 kukuk@thkukuk.de - Implement loading of snapshots and fix snapshot menu layout. If you want to boot an old snapshot, but not to do a rollback, we need to tell the kernel which snapshot to use. This patch also fixes the broken layout of the grub snapshot menu. * Sat Nov 12 2016 kukuk@thkukuk.de - Move source of grub-snapshot.cfg to the right position grub-snapshot.cfg should not be sourced at the begining, but at the end of grub.cfg. Else with creating the first snapshot this entry is getting the default boot target and the system does not boot automatically anymore. * Fri Nov 11 2016 ms@suse.com - Fixup netboot code for multipath boot device If the root disk in a netboot deployment is a multipath device we have to make sure the multipathd is started and the boot device is mapped to the wwn * Thu Nov 10 2016 ms@suse.com - Bump version: 8.25.0 → 8.25.1 * Thu Nov 10 2016 ms@suse.com - Update doc string for download_from_repository The doc string for this method contained a mime string which is spuriously validated by the sphinx url checker. This commit rewords the text in a way that the checker is happy again * Thu Nov 10 2016 ms@suse.com - Bump version: 8.24.10 → 8.25.0 * Thu Nov 10 2016 davidcassany@gmail.com - Do not delete all repositories if there aren't repositories to import (#191) This commit adds a tester method to check if there is any repository marked as imageinclude. The method is used to execute import_repositories_marked_as_imageinclude method only when it is actually needed. * Wed Nov 09 2016 ms@suse.com - grub.cfg: Fixes for btrfs as rootfs This addresses the following issues * An image based on btrfs using the entire boot as a subvolume causes grub to be unable to find its config file. Thus kiwi now raises an exception in this situation * Don't prefix the bootpath with the snapshot path if the btrfs root is placed in a snapshot. Instead the file etc/default/grub must be written/updated with the SUSE_BTRFS_SNAPSHOT_BOOTING variable set to true. Once this is done the bootpath is consistently set to /boot no matter which snapshot is active * Wed Nov 09 2016 ms@suse.com - grub.cfg: Source grub-snapshot.cfg if present Add a lookup for /.snapshots/grub-snapshot.cfg to the generated grub.cfg. The file is shell sourced if it exists * Wed Nov 09 2016 dcassany@suse.com - No need to mock Path.which There is no need to mock Path.which as isoinfo binary from the platform is needed to run the test, so better let the system look for it, note that the binray can be located in the alternate location (/usr/lib/genisoimage/) which is not part of the PATH. In that particular case the iso_test would fail if we mock Path.which. * Tue Nov 08 2016 dcassany@suse.com - Updated system size calculations test * Tue Nov 08 2016 dcassany@suse.com - Updated test for vhd-fixed subformat type * Tue Nov 08 2016 dcassany@suse.com - Increase the default image size for XFS filesystems When no size is specified in type section the resulting image size is calculated using the size of the whole build-root increased by an empiric factor. Some tests revealed that this factor was not enough for XFS filesystems. The empiric factor has been increased. This commit fixes #186 * Tue Nov 08 2016 dcassany@suse.com - vhd-fixed name corrected in subformat init class This commit reverts the previous one and it applies the name change to the subformat class initializer. This way the schema is not altered and we keep compatibility with previous description files. * Tue Nov 08 2016 dcassany@suse.com - vhdfixed format naming inconsistency vhdfixed storage format name was not updated according its real name in the kiwi schema, making it impossible to build any vhdfixed image. The schema used to expect 'vhd-fixed', however, internally, the code was expecting 'vhdfixed'. The schema has been updated. This commit fixes #184 * Tue Nov 08 2016 ms@suse.com - Implemented SolverRepositoryRpmDir Add support for local rpm-dir repositories * Tue Nov 08 2016 dcassany@suse.com - ActivateImage links correction Loading the iso image into a read-only ramdisk caused some issues due to the activatImage method cp commands. With this commit the symlinks are consistent during the preinit phase and also before running the cp command it is tested we are not in a read-only filesystem. This commit is a port form openSUSE/kiwi#613 PR * Tue Nov 08 2016 ms@suse.com - Implemented SolverRepositoryRpmMd Add support for rpm-md repository types * Mon Nov 07 2016 ms@suse.com - Fixup ip setup in setupNic The invocation of ip in setupNic was invalid. The way this was done causes the netmask to be set as broadcast address Related to bnc#1003091 * Mon Nov 07 2016 ms@suse.com - Implemented SolverRepositorySUSE Add support for SUSE online and media repository types * Mon Nov 07 2016 ms@suse.com - Add repo_type info to Uri class This allows to eliminate the repo_type from the paramter list of the SolverRepository class, which then only needs an instance of Uri * Sun Nov 06 2016 ms@suse.com - Implement SolverRepositoryBase Base class and interface for building a SAT solvable from a given repository * Fri Nov 04 2016 ms@suse.com - Added API doc hook for solver path * Fri Nov 04 2016 ms@suse.com - Bump version: 8.24.9 → 8.24.10 * Fri Nov 04 2016 ms@suse.com - Delete sphinxcontrib-programoutput setup Deleted it from virtualenv development requirements and from the sphinx configuration file * Fri Nov 04 2016 ms@suse.com - Delete use of sphinxcontrib-programoutput The developers of this sphinx extension decided to delete the module on pip and also the source from git... it's dead. Thus I replaced the dynamic usage output in the manual pages with the static version * Fri Nov 04 2016 ms@suse.com - Initial structure to support SAT solvables A SAT solvable can be used together with python-solv to implement performant package solving tasks. This is the initial structure to allow the creation of such solvable files from specified repositories. We will support the repo types yast2, rpm-md and rpm-dir in the first place. * Thu Nov 03 2016 dcassany@suse.com - updateOtherDeviceFstab did not get the fstab location parameter This is port from the kiwi v7 code base openSUSE/kiwi#610 * Wed Nov 02 2016 dcassany@suse.com - Load the default unicode font in grub2 This commit fixes #179. The default font was never loaded, the loadfont call for the default was missing. * Wed Nov 02 2016 ms@suse.com - Bump version: 8.24.8 → 8.24.9 * Wed Nov 02 2016 ms@suse.com - Fixed waitForStorageDevice Value for storage_size was not really used * Wed Nov 02 2016 ms@suse.com - Bump version: 8.24.7 → 8.24.8 * Wed Nov 02 2016 ms@suse.com - Make sure kiwiserver/kiwiservertype is used If kiwiserver and/or kiwiservertype is specified on the kernel commandline they should take over precedence for up- and download of image files compared to the host setup in the IMAGE variable. * Wed Nov 02 2016 ms@suse.com - Don't mix python module requirements The tox setup mixes the deps modules depending on the tox target with either virtualenv.dev-requirements.txt or fixed deps lists in tox.ini. This change clean up the module dependencies for development targets to be taken from virtualenv.dev-requirements.txt exclusively * Tue Nov 01 2016 ms@suse.com - Update travis runtime requirements Installing python modules from source via pip requires git * Tue Nov 01 2016 ms@suse.com - Bump version: 8.24.6 → 8.24.7 * Tue Nov 01 2016 ms@suse.com - sphinxcontrib-programoutput no longer on pypi Use the version from git directly to build the documentation In the long we should find an alternative for this sphinx extension * Mon Oct 31 2016 ms@suse.com - Fixup root init with existing host cache Creating a new root init with a shared location which already provides directories of the system failed on init of those directories. Only create the not yet existing directories * Mon Oct 31 2016 ms@suse.com - Fixup the wicked thing again * Mon Oct 31 2016 ms@suse.com - Put setupNetworkWicked in line with former dhcpcd The way setupNetworkWicked implements the dhcp discovery was incomplete. This Fixes bnc#1003091 * Fri Oct 28 2016 ms@suse.com - Fixup assembling of mdraid array when udev discovers an mdraid array it partially starts the array. That is interfering with the mdadm --assemble call by kiwi which leads to a busy state and an array in inactive state. Therefore the method should wait until the raid array really exists no matter if the assembling is started by udev or kiwi's mdadm call. In addition if the array got assembled but is incomplete because devices are missing or the timout is fired, an additional call to start any array that has been partially assembled is required. pxeRaidAssemble will throw an exception if after this call no md device with a size > 0 will show up after a timeout. This Fixes bnc#1000742 * Fri Oct 28 2016 ms@suse.com - Fixup waitForStorageDevice The function will return success if the size of the storage device can be obtained and is greater than zero. The pure success on reading from the block layer is not enough. In order to actually work with the device it must provide a size > 0. Related to bnc#1000742 * Thu Oct 27 2016 ms@suse.com - Bump version: 8.24.5 → 8.24.6 * Thu Oct 27 2016 ms@suse.com - Fixup initial directory creation for new root During testing of alternative cache locations an init problem with the var/ directory was observed * Thu Oct 27 2016 ms@suse.com - Do not allow imageinclude for images build in obs Fixes #178 * Wed Oct 26 2016 dcassany@suse.com - SystemPrepare instance delete before runnig SystemSetup This commit fixes#175, now multiple profiles in OBS are possible using kiwi boot initrd. * Tue Oct 25 2016 ms@suse.com - Use docopt's default value feature for cache dir * Tue Oct 25 2016 ms@suse.com - Cleanup unit tests using sys.argv The tests should restore to the default argv option set as provided by the test_helper * Tue Oct 25 2016 ms@suse.com - Update manual page Include information for new --shared-cache-dir option * Tue Oct 25 2016 ms@suse.com - Added global option --shared-cache-dir The option allows to specify an alternative shared host_to_image cache directory. The default location is /var/cache/kiwi. Fixes #92 * Tue Oct 25 2016 dcassany@suse.com - Fixed a couple of constraints * Tue Oct 25 2016 dcassany@suse.com - Redo of xml_parse.py with updated generateDS * Tue Oct 25 2016 ms@suse.com - Initialize the systemd machine ID on first boot The systemd machine id is considered to be a unique information Thus it is required to initialize it on first boot of the image. If the image uses the kiwi boot code (initrd) this action is performed and and Fixes #169 * Mon Oct 24 2016 ms@suse.com - Bump version: 8.24.4 → 8.24.5 * Mon Oct 24 2016 dcassany@suse.com - Some tests slightly modified in order to improve coverage This commit improves some example kiwi files and tests in order to achieve a 100% code coverage. * Mon Oct 24 2016 dcassany@suse.com - Corrections on test kiwi description files Some attributes needed to be changed in the test xmls. With this commit all the description files are consistent with the new co- occurrence constraints. * Fri Oct 21 2016 dcassany@suse.com - Co-occurrence constraints included in the schema Constraints for pxe, iso, vmx, oem and docker image types have been included. * Fri Oct 21 2016 ms@suse.com - config.partids only required for kiwi initrd If dracut is used as initrd system an unused config.partids file is generated. The partition id information is only used by kiwi boot code not by dracut boot code. Related to bnc#1005246 * Thu Oct 20 2016 ms@suse.com - Bump version: 8.24.3 → 8.24.4 * Thu Oct 20 2016 ms@suse.com - Make sure dracut initrd is copied correctly * Thu Oct 20 2016 dcassany@suse.com - Fixed a rounding error in partedMBToCylinder method bc truncates number of cylinders to zero decimal places, which results in a partition that is slightly smaller than the requested size. Add one cylinder to compensate. * Thu Oct 20 2016 dcassany@suse.com - Integrating Schematron syntax in schema Using Schematron syntax in schema co-occurrence constraints can be easily defined. This commit provides the schematron integration. * Wed Oct 19 2016 ms@suse.com - Bump version: 8.24.2 → 8.24.3 * Wed Oct 19 2016 ms@suse.com - Write fstab to kiwi boot image only For the dracut initrd system the call happens in the system root tree which already provides the fstab data * Wed Oct 19 2016 ms@suse.com - Bump version: 8.24.1 → 8.24.2 * Wed Oct 19 2016 ms@suse.com - Dereference boot arch symlinks * Wed Oct 19 2016 ms@suse.com - Bump version: 8.24.0 → 8.24.1 * Wed Oct 19 2016 ms@suse.com - Fixed typo in build Makefile target * Wed Oct 19 2016 ms@suse.com - Bump version: 8.23.0 → 8.24.0 * Wed Oct 19 2016 ms@suse.com - Use format method for messages in image_resize There are more places where this cleanup from %x format attributes to the format() method is required. Here it is done in the scope of the image resize task * Wed Oct 19 2016 ms@suse.com - Bump version: 8.22.0 → 8.23.0 * Wed Oct 19 2016 ms@suse.com - Fixed setup.py custom install target Make install method aware of --single-version-externally-managed This option is passed to the call by pip if not installed as egg * Wed Oct 19 2016 ms@suse.com - Added setuptools to development requirements * Tue Oct 18 2016 ms@suse.com - Delete travis pypi deployment After weeks of try and error, this simply does not work for me Manual deployment via make pypi and a local account works fine Maybe this can be solved in the future but for now I can live with a manual step * Tue Oct 18 2016 ms@suse.com - Package kiwi/boot/arch into sub archive The sdist target runs into an infinite loop if installed via pip. It seems the symlink files below boot/arch confuses distutils * Tue Oct 18 2016 ms@suse.com - Bump version: 8.21.1 → 8.22.0 * Tue Oct 18 2016 ms@suse.com - Revert "pycparser 2.15 does not play well with xattr" This reverts commit 428436988d1db1017adfb6e92dbc3235d54e06b3. * Tue Oct 18 2016 ms@suse.com - Only resize disk format if required Only resize the disk format if the raw disk has been changed If the size of the raw disk is the same as the requested size just print a message to the user * Tue Oct 18 2016 ms@suse.com - Simplify help call * Tue Oct 18 2016 ms@suse.com - Smarter way to calculate bytes from a size unit * Tue Oct 18 2016 ms@suse.com - Explicitly bool check for the service name option From docopt we expect a True/False value for the selected service name positional parameter. Thus the code should also make it clear what we expect * Tue Oct 18 2016 ms@suse.com - Use format method instead of printf like style * Tue Oct 18 2016 ms@suse.com - Update resize_raw_disk method Do not resize the disk if an attempt to resize to the same size was made. Do not fail in this situation but indicate via a bool return value if an action has happened(True) or not(False) * Tue Oct 18 2016 ms@suse.com - Use latest version of pip for tox setup * Tue Oct 18 2016 ms@suse.com - Revert "Fixup travis setup" This reverts commit ee9e633d78833d02a535e6f4d2ce775425082872. * Tue Oct 18 2016 ms@suse.com - Revert "Fixup travis.yml" This reverts commit 1c80841e8c264ba1957e2ae6b53d2af2929479b0. * Tue Oct 18 2016 ms@suse.com - Fixup travis.yml Make sure python-tox gets installed * Tue Oct 18 2016 ms@suse.com - Fixup travis setup No need to install requirements, this is all done by tox * Tue Oct 18 2016 ms@suse.com - pycparser 2.15 does not play well with xattr Use pycparser 2.14 in setup.py and virtual env requirements * Tue Oct 18 2016 ms@suse.com - Fixed setup.py install target pip calls the install target but not the build target. For kiwi's tools this means they need to run the tools compilation if not already done prior to the installation of the tools * Tue Oct 18 2016 ms@suse.com - Call dracut in system root tree Change BootImageDracut class to call dracut in the specified system root directory and not in a self prepared new root environment. dracut reads scripts and dracut module configurations from the installed system components, e.g kdump. Therefore calling it from an isolated runtime environment creates an initrd which is not matching the system components. Fixes bnc#1005246 * Mon Oct 17 2016 ms@suse.com - Added kiwi image resize command The image resize command allows to resize a disk image and its optional disk format to a new disk geometry * Mon Oct 17 2016 ms@suse.com - Added manual page for image resize command * Mon Oct 17 2016 ms@suse.com - Add raw format to subformat factory * Mon Oct 17 2016 ms@suse.com - Allow ftp:// uri style for package repositories * Mon Oct 17 2016 ms@suse.com - Add grub2-efi-modules in rhel boot descriptions This package provides the efi modules which are needed if a custom efi module is build by kiwi via grub2-mkimage * Mon Oct 17 2016 ms@suse.com - Fixup doc string for target_removable attribute The default behaviour was not explained clear enough * Sat Oct 15 2016 ms@suse.com - Added resize_raw_disk method in DiskFormatBase Allow to increase the disk geometry of a disk image file in order to create free space on this disk * Thu Oct 13 2016 ms@suse.com - Handle target_removable in kiwi disk builder * Thu Oct 13 2016 ms@suse.com - Handle target_removable in kiwi boot code * Thu Oct 13 2016 ms@suse.com - Store kiwi_target_removable in profile env * Thu Oct 13 2016 ms@suse.com - Added target_removable attribute Indicate if the target disk for oem images is deployed to a removable device e.g a USB stick or not. This only affects the EFI setup if requested and in the end avoids the creation of a custom boot menu entry in the firmware of the target machine on first boot. This is related to bnc#993130 * Thu Oct 13 2016 ms@suse.com - Use XML parser to test XML output for info.xml * Thu Oct 13 2016 ms@suse.com - parenthesis in imports only for multi-line imports * Thu Oct 13 2016 ms@suse.com - Delete unused textwrap import * Thu Oct 13 2016 ms@suse.com - Move info.xml test data into its own file * Thu Oct 13 2016 ms@suse.com - Fixup code smells per review Only import what is needed, concat strings by a join * Thu Oct 13 2016 ms@suse.com - Create info.xml file for btrfs snapshot If the system is installed into a btrfs snapshot a metadata file called info.xml is created which is used by tools like snapper. Fixes bnc#1000117 * Wed Oct 12 2016 ms@suse.com - Cleanup use of cache location * Tue Oct 11 2016 dcassany@suse.com - Updated hideSplash method hideSplash method now hides the splash image regardless of an active console is detected or not. This commit is port from openSUSE/kiwi#601 * Tue Oct 11 2016 dcassany@suse.com - Fixing wrong spaces * Tue Oct 11 2016 dcassany@suse.com - Updated fetchFile method Now it makes sure the splash is hidden before showing any progress dialog. This commit is port from openSUSE/kiwi#601 * Tue Oct 11 2016 ms@suse.com - Bump version: 8.21.0 → 8.21.1 * Mon Oct 10 2016 ms@suse.com - Fixup wicked DNS data validation wicked provides DNS info in DNSSERVERS with a space as separator and not with a ',' as it was the case in dhcpcd * Mon Oct 10 2016 ms@suse.com - Do not bundle the raw disk if a format is setup Only bundle the compressed version of the .raw disk image if no disk format like qcow2, vmdk, etc... is specified. Fixes #159 * Mon Oct 10 2016 ms@suse.com - Do not compress disk formats Stay compatible with the former version of kiwi and do not compress disk formats like qcow2, vmdk, etc... It also does not make much sense since the disk formats itself are using a compression algorithm. Fixes #159 * Mon Oct 10 2016 ms@suse.com - Support yum repository priorities yum normally installs the latest version of a package, regardless of which repository provides it. The yum-plugin-priorities provides a method to prefer a package from a repository with a higher priority. Fixes #153 * Fri Oct 07 2016 ms@suse.com - Bump version: 8.20.22 → 8.21.0 * Fri Oct 07 2016 ms@suse.com - Fix attributes_not_used helper script The script is used to check which parts of the XML schema are not used by the new (kiwi v8) version. The information is helpful to find missing or obsolete attribute handling in v8 vs. v7 * Thu Oct 06 2016 dcassany@suse.com - Modified few code lines to match landscape's quality standards * Thu Oct 06 2016 ms@suse.com - Use tmpfs for write overlay in netboot via nbd/aoe * Wed Oct 05 2016 dcassany@suse.com - Added support for multiple `--add-profile` options * Wed Oct 05 2016 dcassany@suse.com - Added '--add-profile' option in compat mode This commit fixes #154. With this, the compatiblity mode accepts the `--add-profile` option which was present in previous kiwi versions and that is translated to `--profile` in the current version. * Wed Oct 05 2016 ms@suse.com - Add set_property_readonly_root for volume manager The custom option root_is_readonly_snapshot is evaluated for the method set_property_readonly_root(). If set and the root filesystem has been installed into a btrfs snapshot the filesystem is turned into read-only mode * Wed Oct 05 2016 ms@suse.com - Evaluate root_is_readonly_snapshot in disk builder * Wed Oct 05 2016 ms@suse.com - Added btrfs_root_is_readonly_snapshot attribute The attribute allows to specify if the root filesystem should be set to read-only if it is created as a btrfs snapshot. The option only has an effect if a btrfs snapshot is used as root filesystem. Fixes bnc#1000080 * Sat Oct 01 2016 ms@suse.com - Bump version: 8.20.21 → 8.20.22 * Fri Sep 30 2016 dcassany@suse.com - Added test for -udf flag for genisoimage/mkisofs * Fri Sep 30 2016 dcassany@suse.com - Added forcing UDF filesystem for large images Included -udf flag to force UDF filesystem usage * Fri Sep 30 2016 ms@suse.com - Fixed secure boot setup for iso media Provide the shim loader and the shim signed grub loader in the required boot path. Normally this task is done by the shim-install tool. However, shim-install does not exist on all distributions and the script does not operate well in CD environments from which we generate live and/or install media. Thus shim-install is used if possible at install time of the bootloader because it requires access to the target block device. In any other case the kiwi fallback code applies * Fri Sep 30 2016 dcassany@suse.com - Added support for mkisofs genisoimage and mkisofs tools are slightly different so this commit makes sure all flags are supported in both tools. * Fri Sep 30 2016 ms@suse.com - Fixed hybrid setup for large ISO images The isohybrid tool uses fseek() to locate the bootloader files. That's unfortunately not 64-bit safe. In case of an ISO image bigger than 4G this leads to 32-bit offset issues. kiwi can workaround this problem by putting the bootloader files near the top of the iso image, which is done by a change in the sortfile of this commit * Thu Sep 29 2016 ms@suse.com - Added rpm_excludedocs handling for yum rpm supports the --excludepath option. However, yum can not be configured to pass along options to rpm or the python interface it uses. Thus only a warning about excludedocs not being supported by kiwi for yum is issued. Fixes #133 * Thu Sep 29 2016 ms@suse.com - Added rpm_excludedocs handling for apt Setup the appropriate dpkg options to avoid the installation of manual pages and package documentation if rpm_excludedocs is set in the kiwi XML description. Related to #133 * Tue Sep 27 2016 ms@suse.com - Make sure netboot code populates kiwi_RootPart For disk based images the file config.partids is written and imported. However, for netboot stations a disk is optional and no partids information exists. In order to provide at least the partition number for the root partition on netboot stations with a disk, the kiwi_RootPart is exported from the provided client configuration file. Fixes bnc#1000194 * Tue Sep 27 2016 ms@suse.com - Bump version: 8.20.20 → 8.20.21 * Tue Sep 27 2016 ms@suse.com - Call grub2-install as chroot operation In addition to the chrooted call make sure all volumes from the volume manager (if used) are mounted at call time * Tue Sep 27 2016 ms@suse.com - Fixup grub default module list The test module is a required module in any case * Tue Sep 27 2016 ms@suse.com - Make sure fstab exists in initrd creation system * Tue Sep 27 2016 ms@suse.com - Umount volumes prior to bootloader installation * Mon Sep 26 2016 ms@suse.com - Bump version: 8.20.19 → 8.20.20 * Mon Sep 26 2016 ms@suse.com - Respect setup of devicepersistency for swap part If a swap boot partition is requested it should be added to the fstab file according to the device persistency setup or its uuid default * Mon Sep 26 2016 ms@suse.com - Update schema documentation * Mon Sep 26 2016 ms@suse.com - Bump version: 8.20.18 → 8.20.19 * Mon Sep 26 2016 ms@suse.com - Respect setup of devicepersistency for boot part If an extra boot partition is requested it should be added to the fstab file according to the device persistency setup or the default uuid persistency type * Mon Sep 26 2016 ms@suse.com - Only sync .mod grub2 module files When syncing the grub2 modules to the boot directory only the .mod version of the module needs to be present * Mon Sep 26 2016 ms@suse.com - Mount boot volumes on grub install If there are volumes below /boot they need to be mounted before grub2-install / shim-install is called in order to make sure all data is available in the volume * Fri Sep 23 2016 ms@suse.com - Bump version: 8.20.17 → 8.20.18 * Fri Sep 23 2016 ms@suse.com - Make sure boot image dump is cleaned up * Fri Sep 23 2016 ms@suse.com - Refactor DiskBuilder class The DiskBuilder class is able to build a disk its corresponding format and the installation image to install this disk by using the InstallImageBuilder. However all three tasks were handled in a row which lead to the problem that resources like active mount processes were still open when e.g the disk format is created. The race conditions produced here lead to an undefined state of the resulting disk format and/or install image. In order to avoid this the DiskBuilder class has been refactored in a way that each tasks is an atomic operation which is freeing its resources after success * Thu Sep 22 2016 ms@suse.com - Delete root, boot, efi fstab setup from kiwi boot The kiwi boot code was responsible for setting up the contents of the fstab file on first boot. However the build process now provides an fstab with the generic label or uuid based fstab entries which allows to remove that part from the kiwi boot code * Thu Sep 22 2016 ms@suse.com - Add root, boot and efi partitions to fstab Make sure the above partitions are added to the generic fstab with their label or uuid at build time * Thu Sep 22 2016 ms@suse.com - Added BlockID class Class to provide support for retrieving block device metadata * Thu Sep 22 2016 ms@suse.com - Use BlockID class for block operations * Thu Sep 22 2016 ms@suse.com - Fixed fstab entries for btrfs subvolumes mount options must be part of the subvol information which itself is also a mount option * Thu Sep 22 2016 dcassany@suse.com - Corrected DEVICE_TIMEOUT variable validation Now it uses regex in order to validate the variable is an integer * Wed Sep 21 2016 ms@suse.com - Bump version: 8.20.16 → 8.20.17 * Wed Sep 21 2016 ms@suse.com - Normalize mount path in get_fstab for lvm volumes * Wed Sep 21 2016 ms@suse.com - Fixed get_fstab parameter order for lvm * Wed Sep 21 2016 ms@suse.com - Bump version: 8.20.15 → 8.20.16 * Wed Sep 21 2016 ms@suse.com - Delete fstab setup for volumes from kiwi boot code For persistent devices like LVM volumes or btrfs sub volumes the fstab setup can be done at build time. Fixes #142 * Wed Sep 21 2016 dcassany@suse.com - Custom device timeout variable added This commit patches the issue bnc#992992. Now DEVICE_TIMEOUT variable can be used in order to set the device waiting timeout in watForStorageDevice function. Must be a numeric value expressed in seconds. * Wed Sep 21 2016 ms@suse.com - Implement get_fstab for btrfs volume management * Wed Sep 21 2016 ms@suse.com - Fixed btrfs mount_volumes if root is snapshot The provided subvolume name contained the snapshot path which is invalid. In addition nested volumes e.g /var/cache were reduced to /cache which is wrong * Wed Sep 21 2016 ms@suse.com - Cleanup unit test Use only one instance of context manager for all tests * Tue Sep 20 2016 ms@suse.com - Create fstab entries for persistent devices Instead of creating the fstab at boot time, those entries which are generic and not depending on an unknown device name can be created as part of the image building process. * Tue Sep 20 2016 ms@suse.com - Implement get_fstab for LVM volume management * Tue Sep 20 2016 ms@suse.com - Added get_fstab to volume manager interface The volume manager interface should allow to provide fstab entries for the volumes it manages * Tue Sep 20 2016 ms@suse.com - Bump version: 8.20.14 → 8.20.15 * Tue Sep 20 2016 ms@suse.com - Fixed evaluation of Dialog return value The return code from the Dialog boot code was evaluated after other shell code was executed. Thus the return code from the call in question was lost and misinterpreted * Tue Sep 20 2016 ms@suse.com - Make sure volumes are mounted prior to install * Tue Sep 20 2016 ms@suse.com - Fixup invalid character in bash source * Tue Sep 20 2016 ms@suse.com - Bump version: 8.20.13 → 8.20.14 * Mon Sep 19 2016 ms@suse.com - Fixup chroot adaption for caller environment The ZYPP_CONF path is provided as part of the caller environment and not as a zypper caller parameter. However the path adaptions when calls happens chrooted was only done for the commandline arguments but not for the command environment. This patch also adapts the environment, related to Issue #133 * Mon Sep 19 2016 ms@suse.com - Make ifplugstatus available in boot images Added ifplugd to kiwi oem|netboot images for leap and tumbleweed * Mon Sep 19 2016 ms@suse.com - Prefer ifplugstatus for link up check Use ifplugstatus if present to check if the network link is up. Fallback is the old ip based method * Fri Sep 16 2016 ms@suse.com - Fixup theme setup in grub2 config template Only set the theme if the .txt file describing it exists * Thu Sep 15 2016 ms@suse.com - Fixup yum group install yum groups can contain spaces, thus quoting is required Fixes #138 * Thu Sep 15 2016 ms@suse.com - Bump version: 8.20.12 → 8.20.13 * Thu Sep 15 2016 ms@suse.com - Follow up fix for setupNetworkWicked IP address information from wicked is imported twice. However the plain IPv4 address validation happened only on the first import. Fixes bnc#992989 * Tue Sep 13 2016 ms@suse.com - Fixed pxe install archive md5 file The md5 sum must be created from the uncompressed version of the disk image * Tue Sep 13 2016 ms@suse.com - Added missing trigger file for oem pxe install The config.vmxsystem trigger file was missing in the oem install initrd used when deploying a disk image over pxe * Mon Sep 12 2016 ms@suse.com - Bump version: 8.20.11 → 8.20.12 * Mon Sep 12 2016 ms@suse.com - Integrate schema documentation into doc process The schema documentation is auto generated via the schema_parser helper tool. The tox doc target now also generates schema docs Fixes #53 * Mon Sep 12 2016 ms@suse.com - Schema docs generation helper A simple script to parse the RelaxNG schema that grabs relevant information in order to produce autogenerated documentation from the schema inline comments. * Mon Sep 12 2016 ms@suse.com - Added handling for rpm-excludedocs for zypper In zypper zypp.conf can be setup to prevent the installation of %doc marked items from rpm packages. The <rpm-excludedocs> section in the kiwi XML description is used to provide this functionality. So far this feature is only implemented for zypper. References #133 * Sun Sep 11 2016 ms@suse.com - Make sure EFI modules are provided in uefi mode For EFI secure boot (uefi) the grub2 efi modules were not copied to the target directory. shim-install normally does that by invoking grub2-install. However shim-install does not allow to call grub2-install with the required parameters as needed for loop (image) based targets. Thus kiwi calls shim-install but skips grub2-install and takes care to provide the needed EFI modules. * Sun Sep 11 2016 ms@suse.com - Revert WaitForStorageDevice patch The logic to setup a wait timeout by asking a device property from a device which does not yet exist raises a chicken and egg problem * Sun Sep 11 2016 ms@suse.com - Fixed message typo (bnc#996255) * Wed Sep 07 2016 tbechtold@suse.com - travis: Update pypi password Next try to get the automatic deployment on pypi fixed. * Thu Aug 25 2016 ms@suse.com - Move to tar.gz as sdist target PyPI is planning to support only .tar.gz in the near future. See https://www.python.org/dev/peps/pep-0527. This Fixes #132 * Thu Aug 25 2016 ms@suse.com - Activate partition using parted instead of sfdisk sfdisk changes their caller semantics incompatible. Therefore we move to a tool which is still stable in the caller options Fixes #129 * Thu Aug 25 2016 ms@suse.com - Update baseStripRPM Method is a noop and only exists for compatibility kiwi handles the deletion of packages in the core builder code * Thu Aug 25 2016 ms@suse.com - Bump version: 8.20.10 → 8.20.11 * Thu Aug 25 2016 ms@suse.com - Revert "Update doc string for kiwi_compat.py" docopt strings are not allowed to be interrupted by a newline This reverts commit b1b92ed830820530bfd7bdc5256525f3dfc01a4a. * Thu Aug 25 2016 ms@suse.com - Bump version: 8.20.9 → 8.20.10 * Thu Aug 25 2016 ms@suse.com - Use os.linesep Python's os module provides a portable version for the line separator which should be used whenever possible. Fixes #130 * Thu Aug 25 2016 ms@suse.com - Bump version: 8.20.8 → 8.20.9 * Thu Aug 25 2016 ms@suse.com - Fixed custom entries in vmdk machine config Each custom entry must be written in a separate line * Wed Aug 24 2016 ms@suse.com - Update API documentation Recall sphinx-apidoc and update the generated result markup * Wed Aug 24 2016 ms@suse.com - Update doc string for kiwi_compat.py Make sphinx happy * Wed Aug 24 2016 tbechtold@suse.com - travis: Update pypi password Next try to get the automatic deployment on pypi fixed. * Wed Aug 24 2016 ms@suse.com - Bump version: 8.20.7 → 8.20.8 * Tue Aug 23 2016 ms@suse.com - Fixup get_build_type_vmconfig_entries Make sure we can rely on a list return even if no machine section exists at all. * Tue Aug 23 2016 ms@suse.com - Add evaluation of machine's vmconfig_entry As part of the machine section it is possible to setup a custom entry which is stored in the machine configuration file. The evaluation of such an entry for the vmdk (.vmx) config file was still missing. This Fixes #122 * Tue Aug 23 2016 tbechtold@suse.com - travis: Next try to fix automatic pypi deployment Also the travis command which added the pypi deployment part formatted the yaml file. * Mon Aug 22 2016 ms@suse.com - Fixed bootloader configuration custom kernel parameters should be added to GRUB_CMDLINE_LINUX and not GRUB_CMDLINE_LINUX_DEFAULT Fixes bnc#994910 * Fri Aug 19 2016 dcassany@suse.com - Use str.format for int to string convertion * Fri Aug 19 2016 dcassany@suse.com - Setup tests corrected #124 * Fri Aug 19 2016 dcassany@suse.com - Fixes #124 * Fri Aug 19 2016 dcassany@suse.com - Rearranged waitForStorageDevice code comments * Fri Aug 19 2016 dcassany@suse.com - Added a case statement for transport types * Fri Aug 19 2016 dcassany@suse.com - Removed some backquotes in favour of $() * Thu Aug 18 2016 ms@suse.com - Bump version: 8.20.6 → 8.20.7 * Thu Aug 18 2016 ms@suse.com - Make repository an optional element So far one repository was mandatory in the XML description. However, this is not required because all repositories can be specified on the commandline * Thu Aug 18 2016 dcassany@suse.com - Added quotes to protect against spaces * Thu Aug 18 2016 dcassany@suse.com - Added getDeviceTransportType method The method gets the transport type of the given device. WaitForStorageDevice reacts according to the transport type by having a shorter timeout in case the device is a usb. * Thu Aug 18 2016 dcassany@suse.com - WaitForStorageDevice patch The function has been modified in order to distinguish a shorter timeout if the device is a usb. * Wed Aug 17 2016 ms@suse.com - Bump version: 8.20.5 → 8.20.6 * Wed Aug 17 2016 ms@suse.com - Update compat options for create step The --ignore-repos, --set-repo and --add-repo options are allowed to be specified for compatibility reasons if --create is specified in the compat commandline. However, they are not used in the next generation kiwi create step because the repo information is persistently stored after the prepare step has finished, which is not the case for the legacy kiwi version * Wed Aug 17 2016 ms@suse.com - Support --ignore-repos in compat mode * Wed Aug 17 2016 ms@suse.com - Added --ignore-repos for build and prepare tasks The option allows to ignore all repos configured in the XML description. This allows to specify a complete set of repositories via the commandline * Tue Aug 16 2016 ms@suse.com - Bump version: 8.20.4 → 8.20.5 * Tue Aug 16 2016 ms@suse.com - Preserve timestamp on grub2-install copy In order to workaround the bug in shim-install which unnecessarily calls grub2-install we replace the binary by a noop before calling shim-install. However all file attributes of the grub2-install binary, timestamp, modes, etc should stay untouched (bnc#993825) * Mon Aug 15 2016 ms@suse.com - Update documentation Move information about legacy kiwi in its own chapter * Fri Aug 12 2016 ms@suse.com - Bump version: 8.20.3 → 8.20.4 * Fri Aug 12 2016 ms@suse.com - Update documentation Prevent to use non public url references * Fri Aug 12 2016 ms@suse.com - Bump version: 8.20.2 → 8.20.3 * Fri Aug 12 2016 ms@suse.com - Fixup vmdk header update due to the wrong file open mode the result image was truncated on update of the vm tools version * Fri Aug 12 2016 ms@suse.com - Bump version: 8.20.1 → 8.20.2 * Fri Aug 12 2016 ms@suse.com - Update documentation delete broken links to online ssh key blogs * Fri Aug 12 2016 ms@suse.com - Bump version: 8.20.0 → 8.20.1 * Fri Aug 12 2016 ms@suse.com - Binary opened file should receive bytes Avoids TypeError: 'str' does not support the buffer interface for the vmdk header update * Thu Aug 11 2016 ms@suse.com - Fixed setupNetworkWicked IP address information from wicked dhcp reply consists out of two parts but we are only interested in the plain IPv4 address information at this point. Fixes bnc#992989 * Thu Aug 11 2016 ms@suse.com - Make sure DHCPCHADDR is upercase Fixes bnc#992988 * Thu Aug 11 2016 ms@suse.com - Delete obsolete <except> section The <except> section was formerly used as part of the <split> section. kiwi no longer supports static split images in favour of overlay systems based on e.g overlayfs. Fixes #120 * Thu Aug 11 2016 ms@suse.com - Better logging if Path.which doesn't find the file * Wed Aug 10 2016 ms@suse.com - Added docstring for KiwiDescriptionConflict * Wed Aug 10 2016 ms@suse.com - Fixup Command.run if called with raise_on_error set to False * Wed Aug 10 2016 dcassany@suse.com - indentation fix * Wed Aug 10 2016 dcassany@suse.com - Updated logging message Updated logging formating in a way that landscape does not complain * Wed Aug 10 2016 dcassany@suse.com - Updated Command to use Path.which Command.run and Command.call now make use of Path.which in order to test if the command is available or not. Also Path.which has been extended in order to support custom environments and to be able to test file permissions (read. write, execute) * Tue Aug 09 2016 ms@suse.com - protect systemd-detect-virt Protect systemd-detect-virt from being deleted in the kiwi initrd * Fri Aug 05 2016 dcassany@suse.com - Command validation This commit includes a validation in Command.run and Command.call in order to verify the existance of the command before running it. It case it is not found in the specified environment it raises a KiwiCommandNotFound Exception. * Fri Aug 05 2016 dcassany@suse.com - Detailed schema validation report This commit adds the execution of a jing process if the validation fails, that way the user has more information about what is actually failing during the validation process. If jing command is not found, it just produces an info message to warn the user and kiwi finalizes as expected. * Thu Aug 04 2016 ms@suse.com - Workaround Fix for pypi travis deployment Use all_branches: true, as we do only tag with bumpversion for a release this workaround works for us. For reference see https://github.com/travis-ci/travis-ci/issues/1675 * Wed Aug 03 2016 ms@suse.com - Bump version: 8.19.6 → 8.20.0 * Wed Aug 03 2016 ms@suse.com - Fixed suseSetupProduct Avoid shell complaining about binary operator * Wed Aug 03 2016 ms@suse.com - Fixed baseUpdateSysConfig Check if referenced config file exists * Wed Aug 03 2016 ms@suse.com - Delete obsolete use of SuSEconfig SuSEconfig was a tool long time ago and does not exist anymore * Wed Aug 03 2016 ms@suse.com - Delete obsolete sysV init boot code Traces of chkconfig, inittab, etc/init.d are gone now * Wed Aug 03 2016 ms@suse.com - Fixed suseSetupProduct Fixed shell variable evaluation syntax * Wed Aug 03 2016 ms@suse.com - Less complex user, group traversal * Wed Aug 03 2016 dcassany@suse.com - Simplified example config file * Wed Aug 03 2016 dcassany@suse.com - Updated get_users and get_user_groups methods Get_users method has been updated in order to be able to append the groups attribute when a user is defined in multiple <users> sections in the description file. Appart from groups, all other user attributes are ignored if the user was already processed when parsing the description file. Get_users_groups method has been also updated so it returns a list of groups with unique values, keeping the description file order. * Tue Aug 02 2016 dcassany@suse.com - Updated xml_state The changes here modify the method get_users in xml_state in order to provide a simple list of users instead of nested lists. Also a new method to get the groups for a given user has been included in xml_state. This is done in order to slim down and facilitate the code in kiwi/system/setup.py. This way users and groups can be handled in more natural way. * Mon Aug 01 2016 ms@suse.com - Rebuild RNG schema and parser for 6.4 * Mon Aug 01 2016 ms@suse.com - Auto validate XML descriptions for schema 6.4 * Mon Aug 01 2016 ms@suse.com - Added schema conversion convert63to64.xsl * Mon Aug 01 2016 ms@suse.com - Bump kiwi schema version 6.3 -> 6.4 * Mon Aug 01 2016 ms@suse.com - Fixed 6.2 to 6.3 XSL conversion Deletion of attributes of the same section must be handled in one iteration * Wed Jul 27 2016 dcassany@suse.com - Updated the user schema layout Now each user item may or may not have a groups attribute. The groups attribute is a comma separated list of group names. If present the first group name will be the login or primary group, if not present, the underlying toolchain will assign the default login group for that user. * Tue Jul 26 2016 dcassany@suse.com - New generated schema and parser * Tue Jul 26 2016 dcassany@suse.com - Some corrections needed after rebuilding schema and parser * Tue Jul 26 2016 ms@suse.com - Update true/false handling of text nodes The latest version of generateDS handles <section>true|false</section> text values in a way that it returns a boolean python type instead of the text string. With this change the kiwi code has to be adapted at the level of writing the shell profile which needs the string value of boolean information * Tue Jul 26 2016 ms@suse.com - Regenerate data structures Regenerate xml_parse with latest version of generateDS. The call works in the python2.7 tox virtual environment as part of the following make target: $ make kiwi/schema/kiwi.rng * Tue Jul 26 2016 ms@suse.com - Switch to latest version of generateDS Data Structures are auto generated from the XML schema. So far the development environment has requested an older version of generateDS which will go out of service soon * Tue Jul 26 2016 dcassany@suse.com - fixing user schema layout * Tue Jul 26 2016 ms@suse.com - Fixed typo in boot headers OpenSuSE vs. openSUSE * Tue Jul 26 2016 ms@suse.com - Fixed typo in translation OpenSUSE vs. openSUSE * Mon Jul 25 2016 ms@suse.com - Make sure awk is available in oemboot * Mon Jul 25 2016 ms@suse.com - Explain why bytes type is redefined In python2 bytes is string which is different from the bytes type in python3. The bytes type from the builtins generalizes this type to be bytes always. However the redefinition of the bytes type is marked as Smell in landscape. Thus the code should at least inform why this is done * Mon Jul 25 2016 ms@suse.com - Use six.Iterator instead of global object builtin The use of six.Iterator as base class for the CommandIterator seems more clear and explicit compared to the global object type overwritten by the builtins import. Fixes Smell reported by landscape * Fri Jul 22 2016 dcassany@suse.com - Added kiwi/archive/tar class description * Fri Jul 22 2016 dcassany@suse.com - extending kiwi/archive/tar * Thu Jul 21 2016 ms@suse.com - Fixing gce format build The patch is two fold, first it fixes the name of the raw disk when it is copied as disk.raw. Second it fixes the content list of the tarball to be dynamicly build instead of a static allocation. Reason for this change is that the list of files depends on the XML description whether or not a gce disk tag is configured. Fixes #113 * Wed Jul 20 2016 dcassany@suse.com - Fixes #111: Included support for vdi format * Mon Jul 18 2016 ms@suse.com - Bump version: 8.19.5 → 8.19.6 * Mon Jul 18 2016 ms@suse.com - Fixed changelog generator * Mon Jul 18 2016 ms@suse.com - Don't ask to start recovery in unattended mode If oem-recovery is setup in the XML description along with oem-unattended set to true as well we don't ask for confirmation to run the recovery when the recovery menu entry is selected at boot time * Mon Jul 18 2016 tbechtold@suse.com - Release automatically on pypi (2nd try) Last try from 142ca22d8e was not working. Update the secure hash and also set explcitly the master branch when looking for tags. * Wed Jul 13 2016 ms@suse.com - Added integration build test link to doc index * Tue Jul 12 2016 ms@suse.com - Bump version: 8.19.4 → 8.19.5 * Tue Jul 12 2016 ms@suse.com - Don't require an iso creation toolkit * Tue Jul 12 2016 ms@suse.com - Bump version: 8.19.3 → 8.19.4 * Mon Jul 11 2016 ms@suse.com - prefer newer overlayfs mount method mount succeeds in compat mode but this mode should only be used on older overlayfs implementations * Fri Jul 08 2016 ms@suse.com - Bump version: 8.19.2 → 8.19.3 * Fri Jul 08 2016 ms@suse.com - Message commit for bug reference Fixup of VMware disk tag references (bnc#988086) * Fri Jul 08 2016 ms@suse.com - Prevent duplication of context manager in test * Thu Jul 07 2016 jmason@suse.com - Conditionally prefix encoding to vmware disk tag Prior code was always adding the encoding statement to vmware disk tag; in the event it is already present there's no need to add it a second time. See also https://github.com/openSUSE/kiwi/pull/586/commits/af1fed77af862dc44bd4322680425299ef5ad654 * Thu Jul 07 2016 jmason@suse.com - Remove null padding on the vmware disk tag The block of data read via dd is null padded; adding the tools data after the padding breaks detection of the data. We need to remove the nulls (0x0) so appends can occur adjacent to the block of strings. See also https://github.com/openSUSE/kiwi/pull/586/commits/ee8931c76c17c79d30a128c05cc6f839a1de7156 * Thu Jul 07 2016 ms@suse.com - Bump version: 8.19.1 → 8.19.2 * Thu Jul 07 2016 ms@suse.com - Complete doc string for Path.which method * Thu Jul 07 2016 ms@suse.com - Implement Path.which Python provides methods to do this but we can't rely on them to be available in all python versions * Thu Jul 07 2016 ms@suse.com - Update documentation Cleanup structure of contribution guide * Thu Jul 07 2016 ms@suse.com - Update documentation Complete documentation about required C libraries which needs to be installed prior to setting up the python virtual development environment * Wed Jul 06 2016 ms@suse.com - Fixup dependency on genisoimage Only for SLE12 the package requires genisoimage for any other distribution mkisofs is required. The community variant with genisoimage seems to be quite outdated. However, on SLE12 only genisoimage exists. Fixes #106 * Wed Jul 06 2016 ms@suse.com - Lookup tool name by path lookup * Wed Jul 06 2016 ms@suse.com - Update import statement parenthesis only needed for multi-line multi-import * Wed Jul 06 2016 ms@suse.com - Refactor block depth on get_volumes return early if the condition makes it clear that there is nothing more to do in this method * Wed Jul 06 2016 ms@suse.com - Lookup iso creation tool Instead of strictly using genisoimage allow for using either the community variant or mkisofs as provided by J.Schilling * Tue Jul 05 2016 ms@suse.com - Refactor reading of volume variables in boot code Use new style profile variables without name limitations Related to #39 * Tue Jul 05 2016 ms@suse.com - Refactor profile for volume setup Don't use volume names in bash variables. In addition that removes the name limitations we had for volume names Related to #39 * Tue Jul 05 2016 ms@suse.com - Delete obsolete volume condition checks No need to check for LVSwap or LVComp in volume setup. If at all those volumes are created at boot time. Related to #39 * Tue Jul 05 2016 ms@suse.com - Refactor use of kiwi_allFreeVolume_ Do not expect the value to come from an exported variable Instead a method to provide the information is implemented Related to #39 * Mon Jul 04 2016 ms@suse.com - Bump version: 8.19.0 → 8.19.1 * Fri Jul 01 2016 ms@suse.com - Fixup cleanup of intermediate config files kiwi uses e.g etc/hosts from the host system for proper name resolution during the build. The temporary variant of that file will be deleted by kiwi at the end of the installation process. However depending on the package manager and the distribution it could happen that the intermediate config file added by kiwi is treated as existing config variant. In case of rpm a .rpmnew file variant of the config file is created and that needs to be handled by kiwi. Therefore this patch adds a private restore method for the .rpmnew case. It might be needed to add other restore methods to deal with this issue depending on how other (non rpm) based package managers handles the situation. Fixes #104 * Thu Jun 30 2016 ms@suse.com - Bump version: 8.18.9 → 8.19.0 * Thu Jun 30 2016 ms@suse.com - Make sure mtab link exists in kiwi initrd On Debian systems the filesystem tools requires the presence of the mtab file, thus we make sure this file exists and links to proc/self/mounts * Wed Jun 29 2016 ms@suse.com - Refactor use of dialog program in boot code Cleanup the mess, provide only one method to run a dialog Prevent use of subshells for running the dialog program * Wed Jun 29 2016 ms@suse.com - Fixed use of shutil.copytree The target dir must not exist. However in order to force copy a potentially existing target is deleted before * Wed Jun 29 2016 ms@suse.com - udev console init requires kbd_mode on Ubuntu keep kbd_mode in initrd * Wed Jun 29 2016 ms@suse.com - Added oemboot description for ubuntu-xenial Also add kiwi linuxrc/preinit links for vmxboot * Wed Jun 29 2016 ms@suse.com - Allow alternative location for udev console init yet another name and location for the console init utility * Wed Jun 29 2016 cbruckmayer@suse.com - Remove lxc configuration from docker images Docker does not use LXC execdriver anymore. Fixes #40 * Mon Jun 27 2016 ms@suse.com - Bump version: 8.18.8 → 8.18.9 * Mon Jun 27 2016 ms@suse.com - Fix linkcheck in container_builder.rst * Mon Jun 27 2016 ms@suse.com - Fix linkcheck in container_builder.rst * Mon Jun 27 2016 ms@suse.com - Bump version: 8.18.7 → 8.18.8 * Mon Jun 27 2016 ms@suse.com - Update Documentation Update state of supported distributions * Mon Jun 27 2016 ms@suse.com - Apply editorial review changes * Mon Jun 27 2016 ms@suse.com - Apply editorial review changes * Mon Jun 27 2016 ms@suse.com - Apply editorial review changes * Mon Jun 27 2016 ms@suse.com - Delete traces of obsolete code * Mon Jun 27 2016 ms@suse.com - Prevent unconditional deletion of toplevel data The kiwi initrd descriptions calls suseStripInitrd() as part of the images.sh script. This function unconditionally removes toplevel directories like /home. Instead of deleting the data it is better to exclude them when the cpio archive is created * Fri Jun 24 2016 ms@suse.com - Bump version: 8.18.6 → 8.18.7 * Fri Jun 24 2016 ms@suse.com - Added serial console support for isolinux loader Generate a serial line setup for the isolinux.cfg file according to the bootloader_console attribute from the XML description. In addition delete the use of the obsolete vga kernel parameter and work with the MENU RESOLUTION ui configuration parameter instead * Fri Jun 24 2016 ms@suse.com - Bump version: 8.18.5 → 8.18.6 * Fri Jun 24 2016 ms@suse.com - Fixed setup of default install menu entry The attribute installboot allows to specify the default boot menu entry in an install image. It can be set to harddisk, install or failsafe install. The setup of that information in the bootloader configuration was not properly processed * Thu Jun 23 2016 ms@suse.com - Fix landscape Smells * Thu Jun 23 2016 ms@suse.com - Update location of build container * Thu Jun 23 2016 ms@suse.com - Update dice source link * Thu Jun 23 2016 ms@suse.com - Update Dice project location * Thu Jun 23 2016 ms@suse.com - Apply editorial review changes * Wed Jun 22 2016 ms@suse.com - Bump version: 8.18.4 → 8.18.5 * Wed Jun 22 2016 ms@suse.com - Fixed building of install image If dracut is requested as initrd_system in combination with building an installiso we have to overrule the initrd_system setup for building the install image. The code to install an image is kiwi's oem install code and unknown to dracut. The process will end up using dracut as initrd in the system image but kiwi's initrd on the install image * Wed Jun 22 2016 ms@suse.com - Delete kiwi-tools from rhel boot descriptions kiwi-tools is no longer a requirement but an optional package It contains tools like utimer or dcounter which provides nice boot timer or progress dialogs for showing data transfer progress. In the Virtualization:Appliances:CommonBoot repo we provide mandatory and optional packages used by kiwi if they don't exist for the target distribution * Wed Jun 22 2016 ms@suse.com - Better warning message for root cmdline setup Under certain circumstance the root=UUID=<uuid> parameter must be setup in the cmdline of the image. If the required uuid value is not provided a warning message is shown to the user. This commit makes the warning message more meaningful * Wed Jun 22 2016 ms@suse.com - Extend unit tests for boot image setup Expect kiwi_initrdname to be set in the profile of the boot image root system * Wed Jun 22 2016 ms@suse.com - Call plymouth only when installed * Wed Jun 22 2016 ms@suse.com - Add delete method for profile variables * Tue Jun 21 2016 ms@suse.com - Added article about self contained building The article describes how to make use of the dice project to control and maintain image build processes in a contained environment * Tue Jun 21 2016 ms@suse.com - Fix grub bootloader template Keep gfxpayload * Tue Jun 21 2016 ms@suse.com - Update bootloader console setup in boot code Use the variable kiwi_bootloader_console which represents the setup of the bootloader console from the XML description and setup the GRUB_TERMINAL configuration option to allow grub2-mkconfig to pick up the value. If no console setup exists in the XML description, gfxterm is used by default * Tue Jun 21 2016 ms@suse.com - Make bootloader_console availabe in profile The variable kiwi_bootloader_console is exposed into the profile environment * Tue Jun 21 2016 ms@suse.com - Delete obsolete code All traces of lilo and elilo are gone now * Tue Jun 21 2016 ms@suse.com - Fixed grub2 bootloader config template Load fonts only when they exist, do not duplicate font setup in template * Tue Jun 21 2016 ms@suse.com - Fixed bootloader theme check The check for the theme was not always called, but this is required since the theme check will reset the bootloader console if no graphics theme could be found * Mon Jun 20 2016 ms@suse.com - Bump version: 8.18.3 → 8.18.4 * Mon Jun 20 2016 ms@suse.com - Apply back openSUSE 13.2 support Until Leap42.2 is not yet released we should keep the support for 13.2 * Mon Jun 20 2016 ms@suse.com - Added support for setting the bootloader console Some bootloader e.g grub supports graphics, text and also serial consoles to hand over the output of the bootloader menu. With this patch we allow to customize the console used by the bootloader. So far only grub makes use of the new attribute <type ... bootloader_console="serial|console|gfxterm"/> This references Trello: https://trello.com/c/q9EhNKKV/155-support-for-grub2-serial-console * Mon Jun 20 2016 ms@suse.com - Bump version: 8.18.2 → 8.18.3 * Mon Jun 20 2016 ms@suse.com - Fixed typo in message text * Mon Jun 20 2016 ms@suse.com - Fixed vmxboot/ubuntu-xenial boot description dracut should be installed to support initrd_system="dracut" * Mon Jun 20 2016 ms@suse.com - Update iso|vmxboot debian boot descriptions * Mon Jun 20 2016 ms@suse.com - Fixup ldd check for unused libraries * Sun Jun 19 2016 ms@suse.com - Update vmxboot/ubuntu-xenial boot description Complete description to be usable with kiwi initrd boot code too * Sun Jun 19 2016 ms@suse.com - Added baseCreateCommonKernelFile The stripKernel functions return early if the dracut initrd system is requested. However it is required in any case to lookup the kernel and provide a common name kiwi expects to be present * Sun Jun 19 2016 ms@suse.com - Set logger mode to append * Sat Jun 18 2016 ms@suse.com - Bump version: 8.18.1 → 8.18.2 * Sat Jun 18 2016 ms@suse.com - Add distro flag match for Leap42.2 * Sat Jun 18 2016 ms@suse.com - Bump version: 8.18.0 → 8.18.1 * Sat Jun 18 2016 ms@suse.com - Preserve zypper package cache zypper deletes the package cache if a repo is removed. For the purpose of image building this should not happen * Sat Jun 18 2016 ms@suse.com - Pass initrd_system to profile The common functions baseStripInitrd and baseStripKernel need to be skipped if the initrd system is set to dracut. They read that information from the exported kiwi_initrd_system profile environment variable * Sat Jun 18 2016 ms@suse.com - Don't delete dracut from boot image environment If the dracut initrd system is requested we need dracut to stay in the environment from which it is called * Fri Jun 17 2016 ms@suse.com - Fixup copy_boot_delete_packages if no <packages type="delete"/> section exists in the target the code does not add the packages to become deleted. This patch changes the behavior in a way that a new section is created * Thu Jun 16 2016 ms@suse.com - Add isoboot support for Ubuntu system Next step to allow creation of Debian based live systems Related to Issue #37 * Thu Jun 16 2016 ms@suse.com - Added suse-leap42.2 descriptions Obsolete suse-13.2 * Thu Jun 16 2016 ms@suse.com - Update hyper links in project README * Thu Jun 16 2016 ms@suse.com - Rename kiwi boot code files Maintain them as common code base for all distributions During the years of development it has turned out that differences in the boot process between the distros can be handled in one code base. There is no need to maintain a basically identical copy for the different distributions * Thu Jun 16 2016 ms@suse.com - Style fixes: E275 missing whitespace after keyword * Thu Jun 16 2016 ms@suse.com - Delete obsolete C tools * Thu Jun 16 2016 ms@suse.com - Prevent use of setctsid setctsid is a suse extension to start a program on a new controlling terminal. While it is very useful it does not exist on other distributions which causes a problem in kiwi's common initrd code. This patch replaces the use of setctsid with setsid and sulogin * Thu Jun 16 2016 ms@suse.com - Open log file in mode 'w' and in utf-8 locale * Thu Jun 16 2016 ms@suse.com - Delete obsolete mkinitrd code This version of kiwi supports only distros using dracut * Thu Jun 16 2016 ms@suse.com - Delete obsolete sysV init console setup code * Thu Jun 16 2016 ms@suse.com - Make use of utimer in kiwi initrd optional * Wed Jun 15 2016 ms@suse.com - Bump version: 8.17.0 → 8.18.0 * Wed Jun 15 2016 ms@suse.com - Adapt to common python style Private methods should start with _f() not __f() * Wed Jun 15 2016 ms@suse.com - Prevent temporary files to be synced to image The package manager instances created temporary package manager configuration files. The instance destructor and thus the cleanup of the instance should be called prior to the sync of the root filesystem data in order to prevent temporary configuration files to be present in the image * Wed Jun 15 2016 ms@suse.com - Grammar fixes for doc strings * Wed Jun 15 2016 ms@suse.com - Syntax change for Importing one module * Wed Jun 15 2016 ms@suse.com - Update test_load_schema_from_xml_content test Read schemaversion from RelaxNG instead of using a fixed value * Wed Jun 15 2016 ms@suse.com - debootstrap errors deserve their own exception * Tue Jun 14 2016 ms@suse.com - Avoid glob imports This could start a series of further changes in the unit test as we have allowed for glob imports there. So treat this one as a start * Tue Jun 14 2016 ms@suse.com - Add documentation for Exceptions * Tue Jun 14 2016 toms@suse.de - Support Tox with interactively positional arguments Use posargs for py.test, see http://tox.readthedocs.io/en/latest/example/general.html * Tue Jun 14 2016 ms@suse.com - Format message with named format parameters * Tue Jun 14 2016 ms@suse.com - Avoid re-assigning variable * Tue Jun 14 2016 ms@suse.com - Fixed unit test for profile variables * Tue Jun 14 2016 ms@suse.com - Handle XML per content or file more explicit * Tue Jun 14 2016 toms@suse.de - Differentiate between Python 2.7 and 3 in doc * Tue Jun 14 2016 toms@suse.de - State Python 2.7 in Trove category of setup.py * Mon Jun 13 2016 toms@suse.de - Refactor RootInit class Instead of calling multiple subprocesses make use of the os capabilities for directories, symlinks and device nodes * Fri Jun 10 2016 ms@suse.com - Fixed use of shutil.copytree * Fri Jun 10 2016 ms@suse.com - Update ubuntu xenial vmxboot description Make sure all drivers exists when dracut is called to allow inclusion of potentially all needed driver modules * Thu Jun 09 2016 bo@suse.de - Fix Lithuanian translation * Thu Jun 09 2016 bo@suse.de - Fix Ukrainian translation * Thu Jun 09 2016 ms@suse.com - Update grub2 config tempplate Load font collection * Thu Jun 09 2016 ms@suse.com - Refactor use of os.walk result * Thu Jun 09 2016 ms@suse.com - Integrate python improvement suggestions * Thu Jun 09 2016 ms@suse.com - Integrate python improvement suggestions * Thu Jun 09 2016 ms@suse.com - don't intermingle suse namespace with debian * Thu Jun 09 2016 ms@suse.com - Deleted libxslt-tools from spec template * Thu Jun 09 2016 ms@suse.com - Fixup indentation of travis setup * Thu Jun 09 2016 ms@suse.com - Fixed license setup in spec file * Thu Jun 09 2016 bo@suse.de - Remove unused import (F401) and an extra line (W391) * Thu Jun 09 2016 bo@suse.de - Fix tests for Python3 * Thu Jun 09 2016 bo@suse.de - Fix tests for the XPath processing * Thu Jun 09 2016 bo@suse.de - Allow XMLDescription to be loaded also from the XML string * Thu Jun 09 2016 tbechtold@suse.com - Release automatically on pypi for new tags When a new tag gets created, automatically release it on pypi so we don't have todo it manually. * Thu Jun 09 2016 bo@suse.de - Reimplement XSLT processing using LXML instead of calling 3rd party tools * Thu Jun 09 2016 ms@suse.com - Added tox 2.7 target for travis * Thu Jun 09 2016 ms@suse.com - Fixed creation of password hashes kiwi uses the openssl command for this purpose but did not strip the newline at the end of the hash output * Wed Jun 08 2016 ms@suse.com - Apply python 2.x compatibility decorators * Wed Jun 08 2016 ms@suse.com - Added tox target for python 2.7 * Wed Jun 08 2016 ms@suse.com - python 2.x compatibility added new requirements six and future modules are needed for the compat layer * Wed Jun 08 2016 ms@suse.com - Fixup grub2 theme setup We can't expect that specific fonts to exist for all theme packages in all distributions. The code here should rely only on theme.txt In addition we check if any theme or font related data is found in the legacy grub location boot/grub which imho should not be used for grub2 * Wed Jun 08 2016 ms@suse.com - Update ubuntu-xenial boot description No need for a drivers setup here, vmxboot is only the container to run dracut * Wed Jun 08 2016 bo@suse.de - Bring byte strings to Py2 compatibility in ISO * Tue Jun 07 2016 bo@suse.de - Make iterators Py2 comptible * Tue Jun 07 2016 ms@suse.com - Added boot image description vmxboot/ubuntu-xenial * Tue Jun 07 2016 bo@suse.de - Replace 'builtins.open' with patch_open decorator * Tue Jun 07 2016 bo@suse.de - Add mock_open and patch_open helpers * Tue Jun 07 2016 bo@suse.de - Remove double requirement * Tue Jun 07 2016 bo@suse.de - Use ConfigParser from six * Tue Jun 07 2016 bo@suse.de - Move urlparse to the Six package * Tue Jun 07 2016 bo@suse.de - Remove duplicate key * Tue Jun 07 2016 bo@suse.de - Add print function for Python 2 * Tue Jun 07 2016 bo@suse.de - Add missing init file * Tue Jun 07 2016 bo@suse.de - Add Python2 compatibilitiy requirements * Mon Jun 06 2016 ms@suse.com - debootstrap installs apt-get Don't add the specified package manager to the list of bootstrap packages for apt-get, because that is covered by debootstrap * Mon Jun 06 2016 ms@suse.com - Allow additional bootstrap packages for apt-get * Sun Jun 05 2016 ms@suse.com - Don't run apt-get with mounted /dev * Sun Jun 05 2016 ms@suse.com - Fixed force-yes option for apt-get * Sat Jun 04 2016 ms@suse.com - Allow unattended installation of debian packages * Fri Jun 03 2016 ms@suse.com - Added PackageManagerApt class Support installation/removal of deb packages Related to #37 * Fri Jun 03 2016 ms@suse.com - Support for apt-get package manager Starting to support Debian based distributions also means to support the deb repository types. This commit adds the RepositoryApt class to handle deb repositories for image building. Related to #37 * Wed Jun 01 2016 ms@suse.com - Bump version: 8.16.5 → 8.17.0 * Wed Jun 01 2016 ms@suse.com - Added pypi make target for upload Please note an appropirate ~/.pypirc file and registered user is required to upload * Wed Jun 01 2016 ms@suse.com - switch_root / pivot_root quiet call * Wed Jun 01 2016 ms@suse.com - Increase default boot partition size to be 300M * Wed Jun 01 2016 ms@suse.com - Delete obsolete isFSTypeReadOnly from boot code The check was used to detect if a read-only root filesystem is in use, which can be done by checking if kiwi_ROPart is defined * Wed Jun 01 2016 ms@suse.com - Refactor use of global FSTYPE variable The kiwi boot code populates a global FSTYPE variable which was used at several places. However there was no clarity for which storage device this filesystem value was detected for. Thus the entire handling has been refactored and there is no global FSTYPE variable anymore * Tue May 31 2016 ms@suse.com - Add attribute <type ... overlayroot=true|false/> Allow to activate the overlay root setup for disk images * Tue May 31 2016 ms@suse.com - Bump version: 8.16.4 → 8.16.5 * Tue May 31 2016 ms@suse.com - Update development status Status :: 5 - Production/Stable * Tue May 31 2016 ms@suse.com - Don't search for kiwicompat in fixed absolute path Allow alternative locations from search PATH * Tue May 31 2016 ms@suse.com - Integrate git attribute setup to sdist command * Tue May 31 2016 ms@suse.com - Add C tools binaries to git ignore list * Tue May 31 2016 ms@suse.com - Fixed command class name for distutils The overwritten build and install commands should not change their name in order to stay consistent on e.g --help * Tue May 31 2016 ms@suse.com - Fixed kiwicompat binary lookup The test for os.path.exists on just the binary name without a path specification always fails if not present in current directory. Let execvp do the job for us * Tue May 31 2016 ms@suse.com - Fixed entry point for kiwicompat * Tue May 31 2016 ms@suse.com - Use path lookup for kiwi-ng in kiwi_compat Instead of a fixed path use the PATH lookup. This would allow to install kiwi at alternative places as long as the path is part of the shell search PATH * Tue May 31 2016 ms@suse.com - Create completion data at build time * Mon May 30 2016 ms@suse.com - Move all build and install tasks to setup.py In an effort to distribute kiwi on pypi it should not be required to call make targets for a complete installation. Therefore the compilation of the C tools as well as the installation of the man pages and the bash completion has been added to setup.py. The spec file to build an rpm package has been changed to use setup.py exclusively * Fri May 27 2016 ms@suse.com - Delete obsolete .releasetags from MANIFEST.in This avoids a warning on setup.py build * Fri May 27 2016 ms@suse.com - Fixed warnings in C written tools * Fri May 27 2016 ms@suse.com - Bump version: 8.16.3 → 8.16.4 * Fri May 27 2016 ms@suse.com - Fixed spec file update-alternatives is used, thus needs to be required * Fri May 27 2016 ms@suse.com - Support for overlay disk images overlay disk images uses a readonly root partition and are overlayed using overlayfs to hook in a cow based read-write space. This commit implements the basic disk setup. Implementation to boot such a disk in the kiwi boot code is still missing, as well as the investigation if dracut is able to boot such a disk too. References #65 * Thu May 26 2016 ms@suse.com - Bump version: 8.16.2 → 8.16.3 * Thu May 26 2016 ms@suse.com - Fixed completion generator In addition cleanup the main docopt definition * Wed May 25 2016 ms@suse.com - Fixed completion conflict with legacy kiwi * Tue May 24 2016 ms@suse.com - Bump version: 8.16.1 → 8.16.2 * Tue May 24 2016 ms@suse.com - Fixed spec file rpmlintrc file must be mentioned as source * Tue May 24 2016 ms@suse.com - Bump version: 8.16.0 → 8.16.1 * Tue May 24 2016 ms@suse.com - Update quickstart documentation kiwi can also be used as a module in other python3 projects. An example how to do that has been added to the quickstart * Mon May 23 2016 ms@suse.com - Bump version: 8.15.5 → 8.16.0 * Mon May 23 2016 ms@suse.com - Added support for grub2 console switch entry An additional hidden entry allows the user to switch between the graphics and the serial console by pressing the 't' key. The kiwi grub2 template adds this switch if the terminal mode is set to graphics. The additional entries are only effective of the grub_platform is set to efi. Fixes #80 * Mon May 23 2016 ms@suse.com - Fixed add_repo for zypper repositories Always run zypper addrepo in order to make any change in the repository definition to become effective * Mon May 23 2016 ms@suse.com - Fixed add_repo for yum repositories Always create the repo file from scratch in order to make any change in the repository definition to become effective * Sat May 21 2016 ms@suse.com - Bump version: 8.15.4 → 8.15.5 * Sat May 21 2016 ms@suse.com - Split quickstart into two parts Split the quickstart information into a development and a user part * Sat May 14 2016 ms@suse.com - Bump version: 8.15.3 → 8.15.4 * Fri May 13 2016 ms@suse.com - Added readonly check for persistent data When creating a partition for persistent data, check if the device class has the readonly flag set before trying to write anything there. Fixes #74 * Fri May 13 2016 ms@suse.com - Bump version: 8.15.2 → 8.15.3 * Fri May 13 2016 ms@suse.com - Fixed removal of a package in XMLState If a <package> was unwanted in a <packages> section the former code sets the name of the package to a python None type. This causes the rest of the code to operate on potential None types which causes unexpected TypeError's under certain conditions. Instead of leaving an inconsistent package section the entire package section reference should be deleted from the packages instance holding it. Fixes #76 * Thu May 12 2016 ms@suse.com - Exit code for --version call should be zero * Thu May 12 2016 ms@suse.com - Bump version: 8.15.1 → 8.15.2 * Thu May 12 2016 ms@suse.com - Set config.sh and images.sh scripts as optional * Thu May 12 2016 ms@suse.com - Bump version: 8.15.0 → 8.15.1 * Wed May 11 2016 ms@suse.com - Fixed landscape smell Unused variable 'key' * Wed May 11 2016 ms@suse.com - Fixed landscape smell Redefining built-in 'help' * Wed May 11 2016 ms@suse.com - Fixed landscape error Dangerous default value [] as argument * Wed May 11 2016 ms@suse.com - Refactor import_description split code into more readable parts * Wed May 11 2016 ms@suse.com - Make sure mandatory vmdk settings exists Even without a machine section configuration the minimum required information must be presented to the settings template * Wed May 11 2016 ms@suse.com - Added store_to_result for vmdk format The vmdk format provides more than the standard result store. for vmdk we need to store the vmdk and the settings file * Wed May 11 2016 ms@suse.com - Reduce amount of mountpoint check calls * Wed May 11 2016 ms@suse.com - Refactor subformat classes Add a generic store_to_result method which allows to store the format result files into an instance of Result. This allows to customize result handling per format when needed * Wed May 11 2016 ms@suse.com - Create VMware settings file for vmdk subformat In order to run or convert the vmdk with VMware products a settings file is required. * Tue May 10 2016 ms@suse.com - Added dropped features information for lxc * Tue May 10 2016 ms@suse.com - Bump version: 8.14.2 → 8.15.0 * Tue May 10 2016 ms@suse.com - Fixed script/archive lookup If a script or archive is specified with an absolute path in the image description, kiwi should not assume this path to exist below the image description directory but just take the absolute path as it is. Fixes #70 * Sun May 08 2016 ms@suse.com - Load logging at runtime for MountManager * Sun May 08 2016 ms@suse.com - Runtime checker message fixes Start with an empty line to improve readability * Sun May 08 2016 ms@suse.com - Integrate runtime checks for tasks Call appropriate runtime checks for prepare, create and build tasks. Fixes #20 * Sun May 08 2016 ms@suse.com - Create instance of runtime_checker for any CliTask * Fri May 06 2016 ms@suse.com - Fixed building documentation * Thu May 05 2016 tom_schr@web.de - Reuse env in tox.ini Reuse virtualenv directory with envdir. Should speed up things a bit. Taken from https://blog.ionelmc.ro/2015/04/14/tox-tricks-and-patterns/#partial-environment-reuse https://blog.ionelmc.ro/2015/04/14/tox-tricks-and-patterns/#environment-reuse * Thu May 05 2016 tom_schr@web.de - Use more compact config for tox.ini Rewrite basepython to make it more compact Taken from https://blog.ionelmc.ro/2015/04/14/tox-tricks-and-patterns/#compact-configuration * Thu May 05 2016 tom_schr@web.de - Add requirements section in Quick Start * Describe what KIWI needs to run, further requirements, and for development * Introduce 'ghkiwi' as prefix in "extlinks" to shorten external links and to make linking to KIWI's GitHub repository more intuitive and consistent. For example, the string :ghkiwi:`tox.ini` is replaced with https://github.com/SUSE/kiwi/blob/master/tox.ini * Wed May 04 2016 ms@suse.com - Added check_target_directory_not_in_shared_cache Runtime checker method to check if the target directory was set to - or below the shared cache directory * Wed May 04 2016 ms@suse.com - Bump version: 8.14.1 → 8.14.2 * Wed May 04 2016 ms@suse.com - Move creation of mountpoint dir to setup method The volume management classes should create the temporary mountpoint directory when it is needed and not when an instance of the class is created * Wed May 04 2016 ms@suse.com - Cleanup use of temporary directories All mkdtemp created directories are created with the 'kiwi_' prefix. In addition all code parts which leaves tmpdirs in the system after kiwi is done were fixed * Mon May 02 2016 ms@suse.com - Bump version: 8.14.0 → 8.14.1 * Mon May 02 2016 ms@suse.com - Added python3-xattr dependency * Mon May 02 2016 ms@suse.com - Added xattr checker for DataSync class The method target_supports_extended_attributes() checks if the sync target directory supports extended filesystem attributes. The method is called on sync_data() and will remove the -X / -A options if provided. A warning message is issued to the caller if the rsync option list has changed because of the underlaying filesystem limitations * Mon May 02 2016 ms@suse.com - Fixed subformat creation The option -c makes only sense for the qcow2 subformat, whereas on all other format it cause qemu-img convert to fail * Sun May 01 2016 tom_schr@web.de - Use iterator protocol instead of StopIteration CommandIterator contains already the __iter__ magic method. We don't need to manually use while and next() in order to advance to the next element. => Code refactored to "for line in self.command" which does exactly the same job, but is better readable. Plus we avoid the nasty try...except block. * Sat Apr 30 2016 tom_schr@web.de - Remove kiwi.logger.init() function The init function is mostly unneccessary and can be directly created in the kiwi.logger module. * Sat Apr 30 2016 tom_schr@web.de - Remove useless __init__.py * Fri Apr 29 2016 ms@suse.com - Fixup usage messages * Fri Apr 29 2016 ms@suse.com - Bump version: 8.13.4 → 8.14.0 * Fri Apr 29 2016 ms@suse.com - Added support for custom rootfs label A new attribute <type ... rootfs_label="name"/> has been added This Fixes #66 * Fri Apr 29 2016 ms@suse.com - Update grub2 bootloader template menuentries Mark all menuentries as --unrestricted. Fixes #64 * Fri Apr 29 2016 ms@suse.com - Bump version: 8.13.3 → 8.13.4 * Fri Apr 29 2016 ms@suse.com - Fixed shared local repository mounts * Thu Apr 28 2016 ms@suse.com - Bump version: 8.13.2 → 8.13.3 * Thu Apr 28 2016 ms@suse.com - Added evaluation of imageincluded repositories repositories marked as imageinclude needs to be added permanently to the image. Fixes #56 * Thu Apr 28 2016 ms@suse.com - Make xz the default compressor for squashfs When creating squashfs compressed files use xz as compressor if not other compressor is specified. Fixes #63 * Thu Apr 28 2016 ms@suse.com - Added --add|delete package for prepare command Allow additional packages to be installed/deleted when calling system prepare. Fixes #62 * Thu Apr 28 2016 ms@suse.com - Alpha sort option documentation Alpha sort options in usage and man pages * Thu Apr 28 2016 ms@suse.com - Added --add|delete package for build command Allow additional packages to be installed/deleted when calling system build. Related to Issue #62 * Thu Apr 28 2016 ms@suse.com - Fixed completion generator complete for kiwi and kiwi-ng * Thu Apr 28 2016 ms@suse.com - Prevent double render on usage * Wed Apr 27 2016 ms@suse.com - Add check_image_include_repos_http_resolvable Runtime checker method to check if repositories marked with the imageinclude attribute are using a publicly available protocol * Wed Apr 27 2016 ms@suse.com - Add shared cache location to Defaults * Wed Apr 27 2016 ms@suse.com - Bump version: 8.13.1 → 8.13.2 * Wed Apr 27 2016 ms@suse.com - Allow alternative if isolinux-config failed If the setup of the base directory failed because isolinux-config was not able to identify the isolinux.bin signature, we create a compat /isolinux directory and hardlink all loader files * Wed Apr 27 2016 ms@suse.com - Fixed typo in message Fix condition to show the grub module info message * Wed Apr 27 2016 ms@suse.com - Use program output for synopsis in documentation * Tue Apr 26 2016 ms@suse.com - Provide custom usage message Instead of the docopt way to show the usage information we provide a kiwi specific usage information. The usage data now always consists of: 1. the generic call kiwi [global options] service <command> [<args>] 2. the command specific usage defined by the docopt string short form by default, long form with -h | --help 3. the global options * Tue Apr 26 2016 ms@suse.com - Fixed loadSELinuxPolicy enforce policy is located in /sys/fs/selinux * Tue Apr 26 2016 ms@suse.com - No authconfig on RHEL >= 7 * Tue Apr 26 2016 ms@suse.com - Activate SELinux for RHEL systems Added new boot method loadSELinuxPolicy and call it as part of the rhel-preinit phase. This put SELinux in enforcing mode also from the kiwi initrd * Tue Apr 26 2016 ms@suse.com - Handle fsmountoptions attribute in all builders * Tue Apr 26 2016 ms@suse.com - Refactor custom_args handling for VolumeManager class Allow for two elements fs_create_options and fs_mount_options in a VolumeManager instance and pass along the information to the FileSystem and MountManager instances * Tue Apr 26 2016 ms@suse.com - Refactor custom_args handling for FileSystem class Any FileSystem class can receive a custom_args dictionary which by defaults ensures the presence of an empty list for create_options and mount_options. The create_options are used in the subclasses when the filesystem is being created and the mount_options are passed to the MountManager when the filesystem is mounted for e.g data_sync * Tue Apr 26 2016 ms@suse.com - Make kiwicompat understand --version | -v option * Tue Apr 26 2016 toms@suse.de - Small spelling corrections Apply title style: * package -> Package * module -> Module * Use backticks for kiwi.* modules to avoid spelling problems * Tue Apr 26 2016 toms@suse.de - Update spell-checking wordlist GitHub, JeOS, KIWI, LXC, squashfs, stderr, stdin, stdout, Submodules, Subpackages, zypper * Tue Apr 26 2016 toms@suse.de - Add "spell" rule in Makefile Also included in the help target * Tue Apr 26 2016 toms@suse.de - Enable Acronyms, importable modules, and builtins * Mon Apr 25 2016 toms@suse.de - First draft to "beautify" HTML appearance * Add GitHub button and "Fork me" widgets * Add Travis button * Remove obsolete code * Mon Apr 25 2016 ms@suse.com - Bump version: 8.13.0 → 8.13.1 * Mon Apr 25 2016 ms@suse.com - Added support for SELinux file security contexts Systems using SELinux require the filesystem data to be labeled according to a security context configuration. kiwi now checks for the presence of /etc/selinux/targeted/contexts/files/file_contexts and labels accordingly if it exists. This Fixes #52 * Mon Apr 25 2016 ms@suse.com - Make grub2 installation path lookup dynamic Not all linux systems installs grub2 below /usr/lib/grub2 For example RHEL7 packages it below /usr/lib/grub. Therefore kiwi needs to be flexible with this path * Fri Apr 22 2016 toms@suse.de - Used :returncode: for sphinxcontrib-programoutput Fix a warning when calling "kiwi-ng". As the script returns 1, it is considered to have failed by the program-output directive. The returncode line fixes that. See more info here: https://pythonhosted.org/sphinxcontrib-programoutput/#error-handling * Fri Apr 22 2016 toms@suse.de - Integrate version string from placeholder Use |version| placeholder, no bumpversion etc. is needed. Actually, it's taken from conf.py * Fri Apr 22 2016 ms@suse.com - Added RuntimeChecker class An instance of RuntimeChecker allows to semantically check for error conditions according to the provided image description and build options. Related to #20 * Fri Apr 22 2016 toms@suse.de - Spell checking doc and extended word list * Thu Apr 21 2016 ms@suse.com - Add filesystem requires in kiwi-boot-requires In order to have all filesystem creation tools available when building in the buildservice we need to require them in kiwi-boot-requires * Thu Apr 21 2016 ms@suse.com - Bump version: 8.12.0 → 8.13.0 * Thu Apr 21 2016 ms@suse.com - Set ident export-subst git attribute on version.py * Thu Apr 21 2016 ms@suse.com - Bump version: 8.11.0 → 8.12.0 * Thu Apr 21 2016 ms@suse.com - Fixed documentation link references Use redirected target and fix broken targets according to link check on make build * Thu Apr 21 2016 ms@suse.com - Fixed typo in documentation Missing question mark at end of sentence * Thu Apr 21 2016 ms@suse.com - Bump version: 8.10.1 → 8.11.0 * Thu Apr 21 2016 ms@suse.com - Fixed typo * Thu Apr 21 2016 ms@suse.com - Added Legacy KIWI vs. Next Generation chapter * Thu Apr 21 2016 toms@suse.de - md -> rst, radically shortend README * Wed Apr 20 2016 toms@suse.de - More substantial changes of the doc * Overall: try to be more consistent * index.rst * Move "Supported Distributions" and "Dropped Features" sections * Quick Start: * Add abstract * Add note about automatic link creation * Move "example appliance description" sections and subsections further down * Streamlined "Contributing" section * Corrected titles and distinguish more between descriptive and procedural * Wed Apr 20 2016 toms@suse.de - Remove useless substitutions (placeholders) * Wed Apr 20 2016 toms@suse.de - Add KIWI logo * Wed Apr 20 2016 toms@suse.de - Move Motivation section from quickstart to index * Wed Apr 20 2016 toms@suse.de - Correct heading and remove build status * Wed Apr 20 2016 toms@suse.de - Add QuickStart Guide and improve documentation * Added Quick Start Guide, taken from README.md * Improve index/main file: * Shortend main entry page * Make more headings * Add feature highlights to draw attention * Add sidebar with important KIWI links * Use ordered list of KIWI concept (prep and creation step) * Wed Apr 20 2016 ms@suse.com - Add package manager requirements in spec file * Tue Apr 19 2016 ms@suse.com - Update README * Tue Apr 19 2016 ms@suse.com - Update README * Tue Apr 19 2016 ms@suse.com - Update README * Tue Apr 19 2016 ms@suse.com - Move program name from kiwi-py3 to kiwi-ng * Tue Apr 19 2016 ms@suse.com - Added genisoimage requirement to kiwi spec file On SLE12 we only have genisoimage, on Leap and Tumbleweed we have both genisoimage and mkisofs. For the moment both toolkits produces working iso images with kiwi, thus I chose the save default with genisoimage * Tue Apr 19 2016 ms@suse.com - Be more flexible for isoinfo lookup isoinfo can either be provided by the community package in /usr/lib/genisoimage/isoinfo or by the mkisofs package from J. Schilling in /usr/bin/isoinfo. kiwi should be smart enough to lookup which tool is installed. /usr/bin/isoinfo will be preferred * Tue Apr 19 2016 ms@suse.com - Update README Added link to documentation * Mon Apr 18 2016 ms@suse.com - Try with latest version of travis-sphinx * Mon Apr 18 2016 ms@suse.com - ghp-import required for travis-sphinx deploy * Mon Apr 18 2016 ms@suse.com - Make sure enchant library is present for travis * Mon Apr 18 2016 ms@suse.com - Update tox setup Update TOXENV targets * Mon Apr 18 2016 ms@suse.com - Move travis-sphinx build tox target to script section * Mon Apr 18 2016 ms@suse.com - Use tox target for travis-sphinx * Mon Apr 18 2016 ms@suse.com - Put travis-sphinx build into script section * Mon Apr 18 2016 ms@suse.com - Make travis-sphinx deploy work It's required to call travis-sphinx build in order to be able to run the deploy command * Mon Apr 18 2016 ms@suse.com - Fixed documentation linkcheck results * Mon Apr 18 2016 ms@suse.com - Make sure shared mount directories exists Create shared directory path on the host _and_ in the new root directory to make sure the bind mount works * Mon Apr 18 2016 ms@suse.com - Update documentation entry page * Mon Apr 18 2016 ms@suse.com - Use travis-sphinx to deploy doc to github https://suse.github.io/kiwi * Mon Apr 18 2016 ms@suse.com - Fixed package requirements libxslt-tools provides required xsltproc * Mon Apr 18 2016 ms@suse.com - Update README for style and markup * Mon Apr 18 2016 ms@suse.com - Fixed README, wrong markup * Mon Apr 18 2016 ms@suse.com - Update README Add information how to build with dice * Mon Apr 18 2016 ms@suse.com - Add part_msdos module for self build EFI image * Fri Apr 15 2016 ms@suse.com - Update tox.ini Documentation building requires sphinx_rtd_theme and sphinxcontrib-programoutput * Fri Apr 15 2016 ms@suse.com - Update volume_manager inline API documentation References #49 * Fri Apr 15 2016 ms@suse.com - Update utils inline API documentation References #49 * Fri Apr 15 2016 ms@suse.com - Update tasks inline API documentation References #49 * Fri Apr 15 2016 ms@suse.com - Complete system inline API documentation References #49 * Fri Apr 15 2016 ms@suse.com - Use Path.wipe instead of directly calling rm * Fri Apr 15 2016 ms@suse.com - Update system inline API documentation References #49 * Fri Apr 15 2016 ms@suse.com - Update storage inline API documentation References #49 * Thu Apr 14 2016 ms@suse.com - Fixed typo * Thu Apr 14 2016 ms@suse.com - Cleanup use of partition id maps For the partition setup the Disk class uses dictionaries to map the partition name to the partition number. However there are public partition names such as 'kiwi_BootPart' and kiwi internal partition names such as 'boot'. The code should make it more clear which mapping table is used * Thu Apr 14 2016 ms@suse.com - Update repository inline API documentation References #49 * Thu Apr 14 2016 ms@suse.com - Update partitioner inline API documentation References #49 * Thu Apr 14 2016 ms@suse.com - Complete bootloader inline API documentation References #49 * Thu Apr 14 2016 ms@suse.com - Update README Add chapter about signing commits * Thu Apr 14 2016 ms@suse.com - Update README * Thu Apr 14 2016 ms@suse.com - Update README * Wed Apr 13 2016 ms@suse.com - Update package_manager inline API documentation References #49 * Wed Apr 13 2016 ms@suse.com - Update filesystem inline API documentation References #49 * Wed Apr 13 2016 ms@suse.com - Update container inline API documentation References #49 * Wed Apr 13 2016 ms@suse.com - Update builder inline API documentation References #49 * Wed Apr 13 2016 ms@suse.com - Update bootloader/template inline API documentation References #49 * Wed Apr 13 2016 ms@suse.com - Complete bootloader install interface * Wed Apr 13 2016 ms@suse.com - Update bootloader/install inline API documentation References #49 * Wed Apr 13 2016 ms@suse.com - Move get_failsafe_kernel_options to Defaults * Wed Apr 13 2016 ms@suse.com - Update bootloader/config inline API documentation References #49 * Tue Apr 12 2016 ms@suse.com - Update boot/image inline API documentation References #49 * Tue Apr 12 2016 ms@suse.com - Update archive inline API documentation References #49 * Tue Apr 12 2016 ms@suse.com - Delete traces of zfs support * Tue Apr 12 2016 ms@suse.com - Update inline API documentation References #49 * Mon Apr 11 2016 ms@suse.com - Update inline API documentation * Mon Apr 11 2016 ms@suse.com - Update inline API documentation * Mon Apr 11 2016 ms@suse.com - Update inline API documentation * Mon Apr 11 2016 ms@suse.com - Update inline API documentation * Sun Apr 10 2016 ms@suse.com - Ignore auto generated code for API docs * Sun Apr 10 2016 ms@suse.com - Update inline API documentation * Fri Apr 08 2016 ms@suse.com - Update api documentation setup * Fri Apr 08 2016 ms@suse.com - package kiwi-pxeboot must not be noarch We want to specify for which arch we provide it. Thus it's not allowed to specify it as noarch even though it provides only noarch data * Thu Apr 07 2016 ms@suse.com - Create Initial autodoc structure Called 'sphinx-apidoc -o source/api ../kiwi' * Thu Apr 07 2016 ms@suse.com - Fixup docstring for kiwi/command.py * Thu Apr 07 2016 ms@suse.com - Move manual page documentation in subdirectory Separate api documentation from manual pages * Thu Apr 07 2016 ms@suse.com - Update virtualenv development setup make sure we can build the docu in the development environment * Wed Apr 06 2016 ms@suse.com - Add docstrings for Cli class References Issue #49 * Wed Apr 06 2016 ms@suse.com - Fixed ppc setup of etc/default/grub_installdevice On power grub must be installed into the Prep partition into the master boot record of the disk * Mon Apr 04 2016 toms@suse.de - Add Python 3.5 to be consistent with Travis * Sat Apr 02 2016 ms@suse.com - Fixed logger unit test * Fri Apr 01 2016 ms@suse.com - Make color output an option By default no color output is used * Wed Mar 30 2016 ms@suse.com - Added missing kiwi-packagemanager provides The buildservice looks up for a package manager capability * Wed Mar 30 2016 ms@suse.com - Fixed spec file syslinux is not a requirement for the base package * Thu Mar 24 2016 ms@suse.com - Check for derived description path in prepare too * Thu Mar 24 2016 ms@suse.com - Refactor SystemSetup class the information about the description_dir is part of the provided xml_state instance. There is no need to pass that information along twice * Thu Mar 24 2016 ms@suse.com - Fixed use of derived_description_dir Only in import_description we need to check for both locations * Thu Mar 24 2016 ms@suse.com - Make sure import_description preserves archives * Thu Mar 24 2016 ms@suse.com - Refactor InstallBootLoaderGrub2 constructor architecture dependant device setup belongs to the install method where it is actually needed. That prevents the construction of the instance to be architecture specific * Wed Mar 23 2016 ms@suse.com - Make list of efi grub modules arch dependant * Wed Mar 23 2016 ms@suse.com - Revert "Delete efi_uga module from list" This reverts commit 191d423eb571d3cc08f34b5e4ef15eb6296a6563. * Wed Mar 23 2016 ms@suse.com - Delete efi_uga module from list * Wed Mar 23 2016 ms@suse.com - add multiboot grub module only on demand multiboot is only needed for self build grub images in Xen guest mode * Wed Mar 23 2016 ms@suse.com - Don't raise if kversion exits with error In this case a default value applies * Wed Mar 23 2016 ms@suse.com - Activate partitioner support for arm * Wed Mar 23 2016 ms@suse.com - Add optional derived_from param to XMLDescription An instance of XMLDescription can now optionally become constructed with a path to an image description this instance was derived from. This is currently used for building the kiwi boot image to tell the boot image XML description instance from which system image instance it was derived from * Wed Mar 23 2016 ms@suse.com - Evaluate default video mode for iso images * Wed Mar 23 2016 ms@suse.com - Added custom profile for arm/oemboot/suse-tumbleweed * Wed Mar 23 2016 ms@suse.com - Update firmware types for arm architectures Add efi and uefi as allowed types, complete architecture name list set efi as default firmware for arm * Wed Mar 23 2016 ms@suse.com - Added pre/post hooks for bootloader setup/install preInstallBootLoader, postInstallBootLoader preSetupBootLoader, postSetupBootLoader * Wed Mar 23 2016 ms@novell.com - Fixed architecture dependant tests * Tue Mar 22 2016 ms@suse.com - Added support for virtual boot partition on arm Triggered by the firmware="vboot" setup an EFI setup plus a raw partition without filesystem is created as first partition. The size of the partition can be controlled by the vbootsize attribute. The vboot feature is used by the arm architecture to provide a space in the partition table for custom code as required by e.g the chromebook. The final customization of the vboot space is board specific and can't be implemented in a generic way in kiwi. For finalizing the vboot space the script hooks editbootconfig and editbootinstall can be used This is related to Issue #17 * Tue Mar 22 2016 ms@suse.com - Rename partition id kiwi_JumpPart to kiwi_EfiPart This makes it explicit for what purpose the partition is really used. EFI is not configured the same for all architectures but what is consistent is that on this partition an efi image is located to become loaded by some firmware * Tue Mar 22 2016 ms@suse.com - Activate boot partition only for msdos tables * Tue Mar 22 2016 ms@suse.com - have tar preserve all xattrs By default tar will only preserve a subset of the capabilities with --xattrs. Adding --xattrs-include=* should preserve all capabilities (e.g. user.*, security.capability etc.). * Tue Mar 22 2016 ms@suse.com - Preserve hybrid GPT status on boot Added createHybridGPT method and setup the hybrid GPT/MBR table if requested by the XML configuration. In addition move the partition activation call also into the partition table finalize method. This is related to Issue #17 * Mon Mar 21 2016 ms@suse.com - Refactor partition table setup code Added two methods preparePartitionTable and finalizePartitionTable which are used to prepare the partition table to allow resizing and to finalize for partition flags after resizing. This replaces the updatePartitionTable method * Mon Mar 21 2016 ms@suse.com - Delete obsolete GPT fixup code Related to bnc#825221 code was added to recreate the disk with a new GPT label. The reason was that parted created a gpt_sync_mbr partition table when kiwi repartitioned the disk to use the full geometry. This was an unwanted behavior by parted and causes the additional code in kiwi. The current parted version behaves correctly and thus makes this additional code obsolete * Fri Mar 18 2016 ms@suse.com - Added support for hybrid GPT Embedding an MBR into a GPT is required for a collection of boards, e.g arm rapberry PI. The kiwi configuration provides a new attribute called <type ... gpt_hybrid_mbr="true|false" which allows to control if the GPT should be hybrid or not. On build procedures which do not create a GPT the attribute has no effect. This references Issue #17 * Fri Mar 18 2016 ms@suse.com - Update all XML descriptions to schema v6.3 * Fri Mar 18 2016 ms@suse.com - Added make valid target to Makefile make valid applies the latest XSLT processing to the boot and test image descriptions * Fri Mar 18 2016 ms@suse.com - Added XSL stylesheet convert62to63.xsl auto convert from schema v6.2 to v6.3 * Fri Mar 18 2016 ms@suse.com - Update schema to version 6.3 - Deleted obsolete split section - Deleted zfsoptions, fsreadwrite and fsreadonly attributes - Updated allowed values for bootloader and filesystems * Fri Mar 18 2016 ms@suse.com - Delete obsolete support for syslinux(extlinux) grub2 or the architecture specific loader requirement is supported but the alternative x86 loaders syslinux/extlinux were not really used * Fri Mar 18 2016 ms@suse.com - Delete obsolete support for uboot arm boot is using grub2 efi images loaded by a firmware. The firmware could be uboot but due to the non generic way to setup the board that it loads the firmware all of these tasks are handled by custom scripts called via the kiwi editbootconfig / editbootinstall script hooks. Therefore kiwi itself does not have to setup or install uboot * Fri Mar 18 2016 ms@suse.com - Delete obsolete support for yaboot grub2 is used for ppc64 platforms, so far no older ppc platform is supported * Fri Mar 18 2016 ms@suse.com - Delete obsolete kernelCheck method * Fri Mar 18 2016 ms@suse.com - Delete obsolete support for legacy grub * Fri Mar 18 2016 ms@suse.com - Delete obsolete support for split(combined) image * Fri Mar 18 2016 ms@suse.com - Delete obsolete support for reiserfs * Fri Mar 18 2016 ms@suse.com - Delete support for ZFS filesystem btrfs is the way to go these days and zfs still has some proprietary bits in it * Fri Mar 18 2016 ms@suse.com - Avoid the copy of the kiwi initrd to /run the kiwi initrd copies itself to /run/initramfs in order to have a way to jump into the initrd system from the later system. However the kiwi initrd is unpacked pretty big and exists also only for the very first boot. * Fri Mar 18 2016 ms@suse.com - Execute haveged in udevStart if fips is enabled This ensure there is at least a source of entropy for /dev/random when the fips mode is enabled. Without it, VMware virtual machines hang at boot (bnc#964204) * Thu Mar 17 2016 ms@suse.com - Fixed use of dracut initrd system for arm platform * Thu Mar 17 2016 ms@suse.com - Added EFI images name for 32bit arm architectures * Thu Mar 17 2016 ms@suse.com - Refactor data subpackage Move from data to utils, data is generally considered as text data and not code * Wed Mar 16 2016 ms@suse.com - Fixed 32bit x86 builds Put it all under the ix86 namespace * Wed Mar 16 2016 ms@suse.com - Refactor grub2 EFI support EFI support was target specific to the x86_64 architecture This commit changes the structure to allow more architectures supporting EFI. Thus the arm64 EFI support has been added as a plus * Mon Mar 14 2016 toms@suse.de - Add {toxinidir} variable for check target * Mon Mar 14 2016 ms@suse.com - Delete nose reference from virtualenv setup * Mon Mar 14 2016 ms@suse.com - Prevent file duplicate badness in spec file * Mon Mar 14 2016 ms@suse.com - Revert "Added pv kernel profile" There is no kernel-pv This reverts commit f0c37709e941e18a1f9b963811a85bd772ee96ac. * Mon Mar 14 2016 ms@suse.com - Move from nose to pytest nose is no longer maintained, thus we have to move to another testing system. This commit updates the tox setup and all tests to use pytest instead of nose. * Fri Mar 11 2016 ms@suse.com - Fixed boot mount path at grub2 install * Fri Mar 11 2016 ms@suse.com - Revert "Revert "Call shim-install with --removable"" Try again using --removable for shim-install This reverts commit e3d7d0239d58e901e7d61e215317b93cf0ee1bfb. * Fri Mar 11 2016 ms@suse.com - Fixed normalizing paths between host and image * Fri Mar 11 2016 ms@suse.com - Revert "Call shim-install with --removable" With --removable shim-install does not work for image building This reverts commit d03baa9ee1d0ff44c76afadfc388791b1c5d29fa. * Fri Mar 11 2016 ms@suse.com - Added pv kernel profile * Thu Mar 10 2016 ms@suse.com - Add handling for OPAL firmware setup on ppc64 This adds a capability of creating an image for Bare metal POWER platform, where firmware parses grub2.cfg and simply kexecs into an image kernel * Thu Mar 10 2016 ms@suse.com - Refactor FirmWare class provide a default firmware for each supported architecture Avoid special sauce in the FirmWare constructor * Thu Mar 10 2016 ms@suse.com - Adding opal firmware type for ppc64 architectures * Thu Mar 10 2016 toms@suse.de - First draft of issue#43 Add templates for contributing, issue, and pull requests * Thu Mar 10 2016 ms@suse.com - Call shim-install with --removable The --removable is to prevent shim-install from writing host's uefi boot entry by pretending itself as removable disk * Wed Mar 09 2016 ms@suse.com - Delete obsolete shim setup code from kiwi Due to the use of shim-install the code in kiwi to setup for secure boot is no longer needed * Wed Mar 09 2016 ms@suse.com - Use shim-install to setup EFI secure boot * Wed Mar 09 2016 ms@suse.com - Fixed completion generator Some global options were missing * Wed Mar 09 2016 ms@suse.com - Update README Fixed pyvenv call to use python3 * Wed Mar 09 2016 ms@suse.com - Update README style fixes * Wed Mar 09 2016 ms@suse.com - Update README Fixed url to packages on the buildservice * Wed Mar 09 2016 ms@suse.com - Update README Be more clear about semantic versioning as documented here: http://semver.org/ * Wed Mar 09 2016 ms@suse.com - Continue Refactor into subpackage Move container_setup from toplevel into container.setup * Tue Mar 08 2016 ms@suse.com - Fixed completion generator The generated completion code was confused by the -py3 in the program name if used with kiwi-py3 * Tue Mar 08 2016 ms@suse.com - Continue Refactor into subpackage Move task classes into tasks namespace * Tue Mar 08 2016 ms@suse.com - Move storage and subformat tests to match namespace * Tue Mar 08 2016 ms@suse.com - Move builder test cases to match namespace * Tue Mar 08 2016 ms@suse.com - Continue Refactor into subpackage Move DataSync, Checksum and Compress into the data namespace * Tue Mar 08 2016 ms@suse.com - Continue Refactor into subpackage Move Kernel class to system namespace * Mon Mar 07 2016 ms@suse.com - Package new system namespace * Mon Mar 07 2016 ms@suse.com - Continue Refactor into subpackage system install, update, size, users, result should have their own namespace * Mon Mar 07 2016 ms@suse.com - Consolidate all rsync calls into DataSync class * Sun Mar 06 2016 ms@suse.com - Release mount after data sync for volume managers * Fri Mar 04 2016 ms@suse.com - Fixed LVM volume setup for oem image type For the oem image type the requested volume sizes are applied on first boot of the appliance. Therefore inside of the image the volumes only needs to be created with their minimum required size * Fri Mar 04 2016 ms@suse.com - Refactor use of kiwi_LVM_ profile variables Reduce code duplication and encapsulate the reading of the data from the profile into a readVolumeSetup function. This is related to Issue #39 * Fri Mar 04 2016 ms@suse.com - Preserve extended attributes in tar archives tar doesn't preserve extended attributes by default, causing Docker images to not have any correct set-capabilities bits set on binaries such as ping. This is fixed by adding the --xattrs flag to the tar command * Thu Mar 03 2016 ms@suse.com - Sort output from helper/kiwi-boot-packages * Thu Mar 03 2016 ms@suse.com - Fixed gce disk format The order of the files in the tarball is important. The first entry must be the manifest.json followed by disk.raw. In addition the style of the manifest.json has been adapted too. A space after colon seems to be required for gce to accept the data * Wed Mar 02 2016 ms@suse.com - Fixed kernel names for dracut initrd system If dracut is used as initrd system we should not use the kiwi one shot names linux.vmx, initrd.vmx but stick with the official naming convention for kernel and initrd which is kernel-<version>, initrd-<version> * Wed Mar 02 2016 ms@suse.com - Skip local repos if they don't exist Instead of raising an exception if a local repository does not exist, we will continue with a warning message. This is needed for a flawless integration with the buildservice. Inside of a buildservice environment only those repos are setup from which packages were taken. Thus it can happen that a configured repository does not exist in the buildservice build environment if the resolver would not take any package from this repository. kiwi should not fail to build such an image * Tue Mar 01 2016 ms@suse.com - Avoid lvcreate to ask for wiping swap signature When kiwi creates the logical volume for the swap space and there is already a swap signature at the place on disk, lvm stops and asks what to do with it. This should be generally avoided at that stage in the boot process Fixes (bnc#968601) * Tue Mar 01 2016 ms@suse.com - Calculate checksum in chunks * Mon Feb 29 2016 ms@suse.com - Don't prevent an oem image from a custom disk size An oem disk ist a self expandable disk and thus it normally doesn't make sense to specify a disk size for it. However there are filesystems like btrfs which are very hard to precalculate a minimum required disk space for X bytes of data. In this situation a user should have the opportunity to specify a size * Mon Feb 29 2016 ms@suse.com - Don't call dracut in background from kiwi initrd This was useful to speedup the boot but opens a potential race condition if a reboot happens while dracut is still processing. With the last extension to use dracut as initrd system people now have the choice what fits their needs better and this allows us to revert the background call * Mon Feb 29 2016 ms@suse.com - Added support for using dracut initrd As of today only the kiwi initrd could be used with an image build. This commit adds a new initrd_system attribute and allows to select between kiwi and dracut as initrd system. Please note the dracut initrd does not support all features of the kiwi initrd. This fixes #25 * Mon Feb 29 2016 ms@suse.com - Add a feature drop list to the README * Mon Feb 29 2016 ms@suse.com - update MANIFEST.in due to structure changes * Mon Feb 29 2016 ms@suse.com - Update README Use the real executable name for the documentation * Mon Feb 29 2016 ms@suse.com - Continue Refactor into subpackage storage operations should have their own namespace * Mon Feb 29 2016 ms@suse.com - Continue Refactor into subpackage container and container_setup should have their own namespace * Mon Feb 29 2016 ms@suse.com - Continue Refactor into subpackage disk namespace init is not a factory, thus the Disk class should have its own namespace. We choose disk.storage * Mon Feb 29 2016 ms@suse.com - Continue Refactor into subpackage rename dformat to subformat * Mon Feb 29 2016 ms@suse.com - Continue Refactor into subpackage The builder classes should have their own namespace * Mon Feb 29 2016 ms@suse.com - Fixed update alternative setup for kiwi completion kiwi itself is provided as update alternative for kiwi-py3 Thus the completion should be based on kiwi-py3 * Fri Feb 26 2016 tom_schr@web.de - Refactor into subpackage to fix #23 Codecoverage are 100% and tests are green Changes: * Refactor archive_*.py -> archive subpackage * Refactor partitioner_*.py -> partitioner subpackage * Refactor package_manager_*.py -> package_manager/ subpackage * Refactor bootloader_config*.py -> bootloader/config/ subpackage * Refactor bootloader_template*.py -> bootloader/template/ subpackage * Refactor bootloader_install*.py -> bootloader/install/ subpackage * Refactor repository*.py -> repository/ subpackage * Refactor filesystem*.py -> filesystem/ subpackage * Refactor dist_*.py -> dist/dformat subpackage The name `dformat` as package name is needed to avoid any name conflicts with the built-in function `format`. * Refactor volume_manager*.py -> volume_manager/ subpackage * Refactor boot_image*.py -> boot/image/ subpackage * Fri Feb 26 2016 tom_schr@web.de - Remove unecessary Travis requirements * Fri Feb 26 2016 tom_schr@web.de - Fix check target Didn't have a basepython line, fixed strange tox error * Fri Feb 26 2016 tom_schr@web.de - Enhanced Contributing, add new Developing section * Create a procedure in section Contributing * Add new Developing section to describe how to use tox * Fri Feb 26 2016 ms@suse.com - Fixed device map for VolumeManagerBtrfs The return value from get_device must be a map containing an instance of a DeviceProvider, not only the DeviceProvider * Fri Feb 26 2016 ms@suse.com - Refactor use of mount/umount calls Provide a MountManager class and handle all mount/umount calls in instances of MountManager * Fri Feb 26 2016 ms@suse.com - Don't write grub.cfg to EFI directory Originally the file was written there as reference, but nothing will ever update that file if the real grub configuration changes. Thus it doesn't make sense to provide this information (bnc#968270) * Fri Feb 26 2016 dvaleev@suse.com - Add support for POWER architecture Implements requirements for the partition and bootloader setup in order to build images for ppc64 architectures. Fixes #18 * Thu Feb 25 2016 ms@suse.com - Refactor grub2 bootloader installation Make use of grub2-install to install the bootloader * Thu Feb 25 2016 ms@suse.com - Changed debug log in case of failed command Also log the stdout data from a failed command. So far we expected error data on stderr but there are also commands which print error messages on stdout. It should us at least worth a debug message with this information * Wed Feb 24 2016 toms@suse.de - Use tox in .travis.yml, remove .travis.script * Wed Feb 24 2016 ms@suse.com - Fixed helper/kiwi-boot-packages Take care for packages marked for a specific architecture * Wed Feb 24 2016 ms@suse.com - Delete unused helper/run-pep8 * Wed Feb 24 2016 ms@suse.com - Adapt make flake target to changed tox target * Wed Feb 24 2016 toms@suse.de - Add --cover-min-percentage=100 and helper script * Wed Feb 24 2016 ms@suse.com - Fixed spec file for kiwi-boot-requires The meta package for the buildservice has to require the new python3-kiwi package * Wed Feb 24 2016 toms@suse.de - Use --cover-min-percentage=100 instead of coverage * Wed Feb 24 2016 toms@suse.de - Replace helper/coverage-check with coverage Use --fail-under=99 option which fails for tests under 100% * Wed Feb 24 2016 ms@suse.com - keep packages in yum cache * Wed Feb 24 2016 toms@suse.de - Rename flake -> check, move spell * Move spell target/step to doc.spell * Call doc.spell in the doc target/step * Rename flake to check (to make it independant of any tool) * Wed Feb 24 2016 ms@suse.com - Spelling fixes * Wed Feb 24 2016 ms@suse.com - Tox setup updates Integrate with Makefile, delete pep8 target from Makefile, use flake8, update travis script, delete coverage reference, we want 100% anywhere * Wed Feb 24 2016 ms@suse.com - Fixed raid_device_test The test did not mock os.path.exists and thus could fail on systems which uses a raid system * Wed Feb 24 2016 toms@suse.de - Update word list * Tue Feb 23 2016 tom_schr@web.de - Remove empty line to avoid error message Avoid following error message: CRITICAL **: enchant_is_title_case: assertion `word && *word' failed * Tue Feb 23 2016 tom_schr@web.de - Activate personal spellchecking dictionary * Tue Feb 23 2016 ms@suse.com - Open travis check for all branches * Tue Feb 23 2016 ms@suse.com - Added kiwi-filesystem provides to spec template The main python3-kiwi package provides support for these filesystem image types * Tue Feb 23 2016 toms@suse.de - Integrated Tox * First incarnation of tox.ini * Extend MANIFEST.in * Add doc/requirements.txt * Extend conf.py with 'sphinxcontrib.spelling' extension * Add wordlist to doc/source/spelling_wordlist.txt * Add flake8 section in setup.cfg * Tue Feb 23 2016 ms@suse.com - Fixed cmdline lookup Only check contents of cmdline if it is not None * Tue Feb 23 2016 ms@suse.com - No fdupes checking required anymore * Tue Feb 23 2016 ms@suse.com - Don't track root/usr/share/locale in boot images The data there is now generated by the make po target * Tue Feb 23 2016 ms@suse.com - Fixed fuzzy i18n for en_US/LC_MESSAGES/kiwi.po * Tue Feb 23 2016 ms@suse.com - Added kiwi-image provides to spec template The main python3-kiwi package provides support for these image types. * Tue Feb 23 2016 ms@suse.com - Prevent any output if quiet is set If exec >/dev/null is run before setterm clears the screen, then "Failed to find cpu0 device node" is displayed even if quiet is set. * Tue Feb 23 2016 ms@suse.com - Fixed shell syntax in grub2 template Fixes (bnc#961334) * Mon Feb 22 2016 ms@suse.com - Refactor suseStripKernel The way the method downsizes the kernel tree is wrong in several places and very hard to read. Therefore the code has been refactored and splitted into task methods which can run independently from each other. As one result the kernel tree is not missing any metadata and/or update weak-updates paths anymore. Fixes (bnc#965830) * Mon Feb 22 2016 ms@suse.com - Remove flush before resize filesystem According to the manpage, -F is flushing the fileystem buffer caches. which is only really useful for doing resize2fs time trials. With current Tumbleweed installed on MMC, -F triggers a Inappropriate ioctl for device while trying to flush error, and then fails to resize. * Mon Feb 22 2016 ms@suse.com - Update arm boot image descriptions Grub2 adds 35MB to the initrd for no reason on armv6/v7, as those images use u-boot scripts for booting. * Mon Feb 22 2016 ms@suse.com - Fixed checkFileSystem call In the refactoring fc363cc, the parameters of checkFileSystem got changed to expect the device name, but one of the invocations didn't pass down the device name due to a typo. * Mon Feb 22 2016 ms@novell.com - Ignore fdasd errors Like fdisk, fdasd also reports an error when re-reading the partition table. But the table was written correctly so we continue for the moment and add a debug message * Sun Feb 21 2016 ms@suse.com - Fixed boot image result filename Has to follow the naming convention * Sun Feb 21 2016 ms@suse.com - Fixed pxe builder kernel/hypervisor target path * Sun Feb 21 2016 ms@suse.com - Use bytes type with hashlib * Sun Feb 21 2016 ms@suse.com - Refactor result bundler instead of being clever in the result bundler we should be more explicit when adding a result to the result instance. Therefore the result.add method now also allows to specify if this result should be part of a result bundle and whether it should be placed compressed or uncompressed in this bundle * Sun Feb 21 2016 ms@suse.com - Added metadata rpm files to all builders rpm packages and verification information is now added to all builder results. Fixes #13 * Sun Feb 21 2016 tom_schr@web.de - Fixing code smells from Landscape.io https://landscape.io/github/SUSE/kiwi/161/messages/smell Fixed issues: * Unused imports * Unused variables * Specify string format arguments as logging function parameters (log.warning("%s bla" % x) -> log.warning("%s bla", x) * Sun Feb 21 2016 tom_schr@web.de - Ignore backup files * Sun Feb 21 2016 ms@suse.com - Added the following system setup methods export_rpm_package_list and export_rpm_package_verification Used to provide rpm package metadata and verification information for rpm based image builds * Fri Feb 19 2016 tom_schr@web.de - Improve doc * Consistently use KIWI * Fixed punctuation * Added zypper ar for adding KIWI's OBS repo * Fri Feb 19 2016 ms@suse.com - Fixed unit test read return result Unit test mocking read should return a bytes array and not a string because that's what python3 would do in reality * Fri Feb 19 2016 ms@suse.com - Fixed path location in disk_format_image result * Fri Feb 19 2016 ms@suse.com - Fixed disk format builder This one was missing the output image name adaptions * Fri Feb 19 2016 ms@suse.com - Regenerate xml_parse data structures for python3 * Fri Feb 19 2016 ms@suse.com - Better error response in debug output If a Command.run fails with an error code != 0 but not data was produced on the stderr channel, we provide this as information to the caller * Fri Feb 19 2016 ms@suse.com - Port kiwicompat to python 3 * Thu Feb 18 2016 ms@suse.com - Port helper tools to python3 Also fixes completion to correctly parse the toplevel --compat option * Thu Feb 18 2016 ms@suse.com - Do not activate dmraid paritions Only activate the device itself, not the partitions, that may also exist. If partitions exist, the UDEV rules will create the corresponding "_partX" symlinks for each partition within "/dev/mapper, which is totally sufficient. * Thu Feb 18 2016 ms@suse.com - Fixed cut and paste error in spec template correct the project Url * Thu Feb 18 2016 ms@suse.com - Update README add install information for python3-devel * Thu Feb 18 2016 ms@suse.com - Fixed README wrong reference to env2 where it should be env3 * Thu Feb 18 2016 ms@suse.com - Update README * Wed Feb 17 2016 ms@suse.com - Update travis env to python 3.4 * Wed Feb 17 2016 ms@suse.com - Port application from python 2.7 to 3.4 For new applications like this kiwi version and its use cases it is better to base it on a more recent python version * Wed Feb 17 2016 ms@suse.com - Fixed bundling container results Container images are already compressed, there is no need for the bundler to do that again * Wed Feb 17 2016 ms@suse.com - Use pinch_system with force in any case Deletion of packages should be done with the force flag set. Otherwise the package manager computes a resolved list for the deletion targets which causes other packages to be deleted which is unwanted * Wed Feb 17 2016 ms@suse.com - Fixed host to image root data setup On bind mounts check if the origin path exists on the host. On copy check if the origin file exists on the host * Wed Feb 17 2016 ms@suse.com - Fixed deactivate_systemd_service Check if the service file exists, if not there is no need to deactivate an non existing service. * Tue Feb 16 2016 ms@suse.com - Use alternatives mechanism for completion file This avoids the package conflict with the legacs kiwi version * Tue Feb 16 2016 ms@suse.com - Weaken kiwi-tools requirement * Mon Feb 15 2016 ms@suse.com - Handle 32bit Intel arch as ix86 in boot code * Mon Feb 15 2016 ms@suse.com - Allow building 32bit bios images * Mon Feb 15 2016 ms@suse.com - Delete %post from kiwi-pxeboot We do not provide a default config file for the pxe setup anymore. There is no good default file we can provide here because we don't know how the user has configured a pxe image. The documentation should explain how to setup the pxe config and infrastructure with the help of the static data provided by the kiwi-pxeboot package * Mon Feb 15 2016 ms@suse.com - Don't require python-Sphinx at build time Sphinx is not available on all platforms and required only to build the manual pages. Thus the make build target can build the man pages and pack the result into the source tarball * Mon Feb 15 2016 ms@suse.com - Don't strip ctc_configure from initrd ctc_configure is used on s390 images * Mon Feb 15 2016 ms@suse.com - Added man page for result bundle command * Mon Feb 15 2016 ms@suse.com - Added result bundler * Fri Feb 12 2016 ms@suse.com - Added kiwi-boot-requires buildservice meta package * Thu Feb 11 2016 ms@suse.com - Delete unused .releasetags helper Fixes #9 * Thu Feb 11 2016 ms@suse.com - Update README * Thu Feb 11 2016 ms@suse.com - Update README * Thu Feb 11 2016 ms@suse.com - Added system update manual page * Thu Feb 11 2016 ms@suse.com - Create manual pages Create man pages for result list, system build, prepare and create * Thu Feb 11 2016 ms@suse.com - Added pv xen drivers to boot descriptions Beginning with SLE12 SP2 the default kernel is a pvops capable kernel. This means it can be used in a Xen HVM full virtual machine as well as in a PV - paravirtual machine. However it's required to keep the paravirtual net, block modules in the initrd. As their location also has move an update of the boot image descriptions was necessary * Thu Feb 11 2016 ms@suse.com - Fixed wait message in waitFor boot functions Better indicate for what we are waiting * Thu Feb 11 2016 ms@suse.com - Load xen modules by alias only * Thu Feb 11 2016 ms@suse.com - Fixed validation of custom root cmdline variable A variable of the format root=LABEL=x was not correctly validated * Thu Feb 11 2016 ms@suse.com - Change default ec2 root_cmdline_parameter For ec2 based firmware the value root=UUID=x is provided instead of a static device node * Thu Feb 11 2016 ms@suse.com - Refactor internal boot image task Make a factory out of the task and allow to have e.g a dracut boot image task at a later point in time. The BootImageBase class creates an interface for this implementation. So far only BootImageKiwi is implemented * Wed Feb 10 2016 ms@suse.com - Added export_modprobe_setup method to SystemSetup export_modprobe_setup copies the contents of etc/modprobe.d to a specified target root directory. The method is used to transfer the modprobe configuration from the system image to the boot image * Wed Feb 10 2016 ms@suse.com - Fixed archive_builder_test Mock platform value * Wed Feb 10 2016 ms@suse.com - Added compatibility information to main man page * Wed Feb 10 2016 ms@suse.com - Put arch and version to output image file name * Wed Feb 10 2016 ms@suse.com - Added quick start example to main kiwi manual page * Tue Feb 09 2016 ms@suse.com - Fill master manual page with content * Tue Feb 09 2016 ms@suse.com - Added git like command completion Provide a 'Did you mean' log message for unclear task names * Tue Feb 09 2016 ms@suse.com - Update README * Tue Feb 09 2016 ms@suse.com - Fixed non-executable-script rpmlint warning * Tue Feb 09 2016 ms@suse.com - Man pages are below level 2 * Tue Feb 09 2016 ms@suse.com - Fixed rpm-buildroot-usage rpmlint warning * Tue Feb 09 2016 ms@suse.com - Fixed non-executable-script rpmlint warning * Tue Feb 09 2016 ms@suse.com - Delete unused .md5 script * Tue Feb 09 2016 ms@suse.com - Fixed rpm package build * Tue Feb 09 2016 ms@suse.com - Fixed dracut call Always create a generic initrd, don't pass -H * Tue Feb 09 2016 ms@suse.com - Fixed custom args setup for vmdk format custom args is a hash with option/value pairs. For vmdk the option could be e.g adapter_type=value and the value is None. This is by intention because qemu which receives those type of options allows only the syntax "-o option=value". The kiwi code setting up the options did not check correctly if there really is a value for e.g adapter_type * Tue Feb 09 2016 ms@suse.com - Allow alternative locations for grub installation Different distributions install grub2 to different places. Therefore kiwi should not use a fixed location but allow to lookup grub data at several places * Tue Feb 09 2016 ms@novell.com - Fixed unit test for fix_boot_catalog on big endian * Tue Feb 09 2016 ms@suse.com - Fixed unit test for fix_boot_catalog on big endian * Sun Feb 07 2016 ms@suse.com - Make sure to cleanup yum requests after processing * Sun Feb 07 2016 ms@suse.com - Fixed CommandIterator check for output before sending an iteration stop * Sun Feb 07 2016 ms@suse.com - Fixed stateful copy of repository section Profiles are not copied because they might not exist in the target description * Sun Feb 07 2016 ms@suse.com - Fixed host to root path patcher Don't be confused by multiple /'es * Sun Feb 07 2016 ms@suse.com - Added support for yum package manager * Sun Feb 07 2016 ms@suse.com - Fixed use of iso mounted repositories When using an iso as repo, kiwi mounts it to a temporary location. The location is different for each build and therefore the zypper repo file needs to be recreated for any new build in this situation * Sun Feb 07 2016 ms@suse.com - Check if config file exists Before updating a config file, check if it exists. If it is not present skip the configuration and print a warning message * Sat Feb 06 2016 ms@suse.com - Added yum repository support * Sat Feb 06 2016 ms@suse.com - Make man install target more stable * Sat Feb 06 2016 ms@suse.com - Update source manifest include only doc Makefile and source, the pages are build at build time * Sat Feb 06 2016 ms@suse.com - Include installation of man pages to spec file * Sat Feb 06 2016 ms@suse.com - Added man page templates for all commands * Fri Feb 05 2016 ms@suse.com - Added man page templates Added template for master page and result_list * Fri Feb 05 2016 ms@suse.com - Added initial sphinx documentation structure The documentation will cover kiwi manual pages. more detailed documentation will be written and maintained in colaboration with the documentation department * Fri Feb 05 2016 ms@suse.com - Fixed use of noglob shell option * Thu Feb 04 2016 ms@suse.com - Added support for kiwi --compat The --compat call will trigger the call of the kiwicompat tool written to support legacy kiwi commandlines. An example could look like the following call: sudo kiwi --compat -- --build /my/description --type vmx -d /my/dest Please be aware the -- is required to tell docopt to treat all options as parameters * Wed Feb 03 2016 ms@suse.com - Prevent duplicate error logging * Wed Feb 03 2016 ms@suse.com - Refactor CommandProcess class Use an iterator class to run through the process. implement poll variants explicit and clear structured * Wed Feb 03 2016 ms@suse.com - Fixed updateRootDeviceFstab Support by-label mount entries for btrfs subvolumes This fixes bnc#964474 * Wed Feb 03 2016 ms@suse.com - Add kiwicompat to Makefile build and install target * Wed Feb 03 2016 ms@suse.com - Update README * Wed Feb 03 2016 ms@suse.com - Update README * Wed Feb 03 2016 ms@suse.com - Bump version: 8.10.0 → 8.10.1 * Tue Feb 02 2016 ms@suse.com - Prepare for package building * Tue Feb 02 2016 ms@suse.com - Follow up fix for fstab setup Use the system installed fstab as default if present * Tue Feb 02 2016 ms@suse.com - Support building in buildservice worker The repo setup inside of a buildservice worker uses a static path below /usr/src/packages/SOURCES/repos/. We need to adapt the provided obs uri type to match this criteria * Tue Feb 02 2016 ms@suse.com - Don't add kernel filesystems to fstab Systems with systemd which this kiwi version aims for, doesn't need proc, sysfs, debugfs and friends to be part of the fstab This fixes bnc#964472 * Fri Jan 29 2016 ms@suse.com - Fixed btrfs build with snapshots * Fri Jan 29 2016 ms@suse.com - Allow system to be installed on btrfs snapshot This fixes (bnc#946648) * Fri Jan 29 2016 ms@suse.com - Put kiwi_btrfs_root_is_snapshot to boot profile * Fri Jan 29 2016 ms@suse.com - Recompile schema and data structures New attribute btrfs_root_is_snapshot and methods * Wed Jan 27 2016 ms@suse.com - Evaluate kiwi_btrfs_root_is_snapshot in boot code If set it's required to mount the subvolumes like it is done with lvm volumes. In addition this patch fixes the update of the fstab file which has to contain an entry for each subvolume excluding snapshots and the toplevel This is related to (bnc#946648) * Wed Jan 27 2016 ms@suse.com - Added btrfs_root_is_snapshot attribute This is related to (bnc#946648) * Wed Jan 27 2016 ms@suse.com - Added fix_boot_catalog and relocate_boot_catalog * Tue Jan 26 2016 ms@suse.com - Prevent duplicate validation of cmdline * Tue Jan 26 2016 ms@suse.com - Fixed grub2 xen guest bootloader config * Mon Jan 25 2016 ms@suse.com - More modules not present for grub2/x86_64-xen * Mon Jan 25 2016 ms@suse.com - There is no multiboot module for grub2/x86_64-xen * Mon Jan 25 2016 ms@suse.com - Make sure get_partition_table_type returns a value * Mon Jan 25 2016 ms@suse.com - Use bash to call config scripts * Mon Jan 25 2016 ms@suse.com - Fixed regular expression pattern use re.escape to make sure the search string has special regular expression characters quoted correctly * Mon Jan 25 2016 ms@suse.com - Added support for using internal build service An option --obs-repo-internal was added * Mon Jan 25 2016 ms@suse.com - Add support for alternative config file *.kiwi * Mon Jan 25 2016 ms@suse.com - Allow to build directly from buildservice checkout * Mon Jan 25 2016 ms@suse.com - Fix misleading variable name * Mon Jan 25 2016 ms@suse.com - Move default boot timeout to Defaults class * Mon Jan 25 2016 ms@novell.com - Fixed boot exclude for zipl case * Mon Jan 25 2016 ms@novell.com - Fixed zipl bootloader setup and install quote special characters in title for menu. refactor the zipl bootloader install class to know about the boot partition device node * Mon Jan 25 2016 ms@novell.com - Added title quoting method for older loaders * Mon Jan 25 2016 ms@novell.com - Move VTOC creation into Disk class * Mon Jan 25 2016 ms@novell.com - Fixed missing setup_disk_boot_images for zipl The interface class implements this with a raise condition by default. For zipl no bootloader images needs to be created Thus implement the method and pass * Mon Jan 25 2016 ms@novell.com - Fixed typo in list assignment * Mon Jan 25 2016 ms@novell.com - Fixed LoopDevice class custom blocksize value must be passed as string to the command level not as integer * Mon Jan 25 2016 ms@novell.com - Platform fixes for XML tests * Mon Jan 25 2016 ms@suse.com - Platform endian fix for vhd tag test * Mon Jan 25 2016 ms@novell.com - Platform fixes for unit tests * Mon Jan 25 2016 ms@suse.com - Platform mock for grub2 bootloader tests * Mon Jan 25 2016 ms@suse.com - Platform mock for grub2 bootloader tests * Sun Jan 24 2016 ms@suse.com - Added BootLoaderInstallZipl class * Sun Jan 24 2016 ms@suse.com - Activate zipl bootloader config in factory class * Fri Jan 22 2016 ms@suse.com - Finished BootLoaderConfigZipl class and tests * Fri Jan 22 2016 ms@suse.com - Delete unused patch statement from test * Thu Jan 21 2016 ms@suse.com - Added BootLoaderConfigZipl class The implementation is still unfinished * Thu Jan 21 2016 ms@suse.com - Pass the disk device to the bootloader config As a custom option the BootLoaderConfig instance now receives the target disk device node. So far this is only used in the zipl case where it is needed which is the reason why it is kept as a custom argument * Thu Jan 21 2016 ms@suse.com - Allow custom options for bootloader config classes * Thu Jan 21 2016 ms@suse.com - Added zipl bootloader template * Wed Jan 20 2016 ms@suse.com - Added partitioner_dasd for s390 * Wed Jan 20 2016 ms@suse.com - Refactor Firmware class more information from the XML description is needed in order to make e.g decisions about the partition table type to use according to the firmware setup in combination with e.g the target loader type on s390. Thus the class now receives an instance of the XML state and not only the firmware attribute value * Wed Jan 20 2016 ms@suse.com - Disable setup of hwclock hwclock seems not exist on all supported architectures. In addition the build process should not fiddle with the build host hardware clock * Wed Jan 20 2016 ms@suse.com - No need for a condition if there is no alternative * Wed Jan 20 2016 ms@suse.com - No need for a condition if there is no alternative * Wed Jan 20 2016 ms@suse.com - Use 800x600 default for grub2 gfxmode * Wed Jan 20 2016 ms@suse.com - Close progress line with CR when finished * Wed Jan 20 2016 ms@suse.com - Added ImageBuilder factory * Tue Jan 19 2016 ms@suse.com - Added system build command Allows to combine prepare and create into one big task * Tue Jan 19 2016 ms@suse.com - Better error message for pickle exceptions There is no meaningfull error message for pickle.load exceptions. Thus only provide the exception type and our own message * Tue Jan 19 2016 ms@suse.com - Use pickle instead of marshal * Tue Jan 19 2016 ms@suse.com - Fixes for the container builder in the setup if the files to update do not exist the process failed. This patch adds a check prior to changing the file * Tue Jan 19 2016 ms@suse.com - Make sure the create task creates the target dir * Tue Jan 19 2016 ms@suse.com - Fixed result object dump marshal.dump requires an open file object not a filename * Tue Jan 19 2016 ms@suse.com - Added ContainerBuilder currently supports building of docker containers * Tue Jan 19 2016 ms@suse.com - Added ContainerImage class Factory plus implementation for docker * Tue Jan 19 2016 ms@suse.com - Refactor variable name for root directory If it is clear the source directory is the root directory of the image the variable should be named root_dir not source_dir * Mon Jan 18 2016 ms@suse.com - Fixing landscape issues * Mon Jan 18 2016 ms@suse.com - Added ContainerSetup classes Base and Factory plus implementation for docker * Fri Jan 15 2016 ms@suse.com - Refactor user/groups setup Provide an easier to travers data type in xml_state for the user and groups. The get_users() method returns a list of tuples which assigns each user list the group name and id it belongs to * Fri Jan 15 2016 ms@suse.com - Use normpath to avoid double slash in output * Fri Jan 15 2016 ms@suse.com - Added kiwi result task Implementing 'kiwi result list' which marshal loads the serialized result instance from a previous build and shows the build results * Fri Jan 15 2016 ms@suse.com - Dump the result instance as a marshal dump * Thu Jan 14 2016 ms@suse.com - Add clic as supported live media build target * Thu Jan 14 2016 ms@suse.com - Added FileSystemClicFs class * Wed Jan 13 2016 ms@suse.com - Fixed contents of header_end block off by one bug * Wed Jan 13 2016 ms@suse.com - Finished LiveImageBuilder for overlay iso type * Wed Jan 13 2016 ms@suse.com - Added check if UDF extension is needed or not * Wed Jan 13 2016 ms@suse.com - Put supported live image iso types into defaults * Wed Jan 13 2016 ms@suse.com - Added live ISO grub2 efi template and setup * Wed Jan 13 2016 ms@suse.com - pep8 fixes * Tue Jan 12 2016 ms@suse.com - Rebuild schema and data structures * Tue Jan 12 2016 ms@suse.com - Allow xfs as hybrid RW file system * Tue Jan 12 2016 ms@suse.com - Continue with LiveImageBuilder class Added isolinux bootloader setup, finished live build procedure Live metadata injection still missing. grub2 efi boot for live image still missing * Tue Jan 12 2016 ms@suse.com - Don't use filesystem specific mount option When mounting the read write filesystem, prevent using filesystem specific options like barrier * Tue Jan 12 2016 ms@suse.com - Use HYBRID_EXT4_OPTS in fat container filesystem * Tue Jan 12 2016 ms@suse.com - Check read write filesystem prior to mounting If a filesystem type could be identified on the read write partition check it before mounting to eliminate a potential dirty state * Tue Jan 12 2016 ms@suse.com - Cascade exfat mount try normal mount first, if this does not work try fuse mount Normally this is done automatically by the mount program but if not we will give the direct fuse mount a chance * Tue Jan 12 2016 ms@suse.com - Fixed Makefile target to build data structures A change in kiwi/schema/kiwi.rnc triggers the build of the schema rng version as well as an auto update of the data structures via python's generateDS. The intermediate xsd schema format is only relevant for the data structure creation process * Mon Jan 11 2016 ms@suse.com - Make createFileSystem more robust When passing in a loop file instead of a device name, the method should be smart enough to handle the name without shell evaluation * Mon Jan 11 2016 ms@suse.com - Added support for exfat as hybrid filesystem In addition to fat also exfat is now supported as persistent write filesystem. Because of the limitations of a fat filesystem fat and exfat are only used as a container filesystem providing an ext4 linux filesystem as a cowfile. The algorithm to create the size of the cow file has also been changed to use half of the size of the write partition or on fat a max size of 4G. The size of the cowfile is also prepared to become overwritten. However the XML definition and implementation to do this is still missing * Mon Jan 11 2016 ms@suse.com - Reread partition table after hybrid setup The hybrid write partition is created via fdisk. Some version of fdisk does not send the ioctl to let the kernel reread the table or fdisk itself holds it busy. Thus we actively initiate a reread via blockdev * Mon Jan 11 2016 ms@suse.com - Optimize ext4 hybrid write filesystem options Optimized for 512kB erase block size * Mon Jan 11 2016 ms@suse.com - Use mount options to increase overlay performace For overlay filesystems not writing into a tmpfs performance is more important than safety. We use this combination of options for now, if you encounter stability problems please let us know * Mon Jan 11 2016 ms@suse.com - Use -f force option for extX filesystem checker * Mon Jan 11 2016 ms@suse.com - Refactor and cleanup setupReadWrite Fix misleading error message and refactor the code to be less complex and more clear in the processing of tasks * Mon Jan 11 2016 ms@suse.com - Allow custom cowfile name for persistent data Instead of a fixed name 'cowfile' we allow a custom name which is predefined in HYBRID_PERSISTENT_FILENAME and prepared to become overwritten by an XML defintion whose implementation will follow later. Reason for the change is that a cowfile is visible as plain data file to the operating system if e.g used on a live stick. It should be more clear to the user what this file is good for * Mon Jan 11 2016 ms@suse.com - Protect mkfs.exfat from being deleted Added to the strip tools section in order to keep it in the initrd * Mon Jan 11 2016 ms@suse.com - Added support for exfat creation and probing In preparation to use exfat instead of vfat in a loop container for persistent data it's required to provide support for mkfs.exfat * Mon Jan 11 2016 ms@suse.com - Make loop_setup and loop_delete more robust The methods did not cope well with filenames containing bash characters with special meaning e.g spaces. For use with a iso hybrid cowfile whose name is visible in the OS the methods should be able to work with any given filename * Sun Jan 10 2016 ms@suse.com - Started with LiveImageBuilder class Added interface and required steps. tests and implementation are missing and will follow * Sun Jan 10 2016 ms@suse.com - Added archive builder * Sat Jan 09 2016 ms@suse.com - Added repo handling to compat caller Also added process execution with translated arguments * Fri Jan 08 2016 ms@suse.com - Add compat translation for prepare/create/upgrade * Tue Jan 05 2016 ms@suse.com - Added kiwicompat to support legacy commandline * Tue Jan 05 2016 ms@suse.com - Added install pxe archive support * Tue Jan 05 2016 ms@suse.com - Added warning message if pxedeploy section is used At the moment there is no class to build the pxe client config file from information provided with the optional pxedeploy section. However this is not fatal to the build because the file could be created manually too. Thus a warning message is shown which will go away when the pxe client config file creation has been ported * Tue Jan 05 2016 ms@suse.com - cleanup test data to be consistent * Tue Jan 05 2016 ms@suse.com - Added recovery setup * Mon Jan 04 2016 ms@suse.com - Added DiskFormatGce class implementation * Mon Jan 04 2016 ms@suse.com - Fixed suffix name for compressed archives * Sat Jan 02 2016 ms@suse.com - Added creation of gnu and xz archives to tar class * Sat Jan 02 2016 ms@suse.com - Refactor result collection Put the creation of a result object into the builder classes and return them from there. The builder instances knows about the results not the task instances * Fri Jan 01 2016 ms@suse.com - Fixed option handling for vmdk format * Fri Jan 01 2016 ms@suse.com - Activate disk format building in disk builder If disk format and install media is configured together only the install media will be built and a warning message for skipping the disk format is shown * Fri Jan 01 2016 ms@suse.com - Added custom argument handling for disk formats * Fri Jan 01 2016 ms@suse.com - Added DiskFormat factory * Fri Jan 01 2016 ms@suse.com - Added DiskFormatVmdk class implementation * Tue Dec 29 2015 ms@suse.com - pep8 fixes * Tue Dec 29 2015 ms@suse.com - Added DiskFormatVhdFixed class implementation * Tue Dec 29 2015 ms@suse.com - Delete unused test data symlinks * Wed Dec 23 2015 ms@suse.com - Added DiskFormatVhd class implementation * Wed Dec 23 2015 ms@suse.com - Added DiskFormat base class Also added implementation for DiskFormatQcow2. More format classes will follow next * Wed Dec 23 2015 ms@suse.com - Fixed import of kernel parameters including spaces Kernel parameters like PRODUCT_TYPE=“PRODUCT BANANA” breaks the code in includeKernelParameters. This patch allows spaces for values in a way that it replaces the embedded whitespace with \030 before parsing and then reverting after parsing. Thanks to Jay Nitikman for providing the patch * Tue Dec 22 2015 ms@suse.com - Fixed LUKS setup for dracut The system image has to provide /etc/crypttab to allow dracut to create a working initrd for reboot. In addition the name of the luks map must be 'luks' to make dracut happy. * Tue Dec 22 2015 ms@suse.com - luks setup triggers boot partition by default * Tue Dec 22 2015 ms@suse.com - Add LuksDevice class and implementation Also implemented luks support in DiskBuilder * Tue Dec 22 2015 ms@suse.com - Handle /boot/vc files for Raspberry Pi openSUSE Tumbleweed raspberrypi-firmware[-branding-openSUSE] packages have been updated to install files to /boot/vc rather than /boot. Ensure that all files in /boot/vc are provided in image/loader for further reference * Tue Dec 22 2015 ms@suse.com - Refactor file system check in boot code * Mon Dec 21 2015 ms@suse.com - Make sure VolumeManager instance updates root map An instance of volume manager could cause the creation of a new device e.g in case of LVM. The master device map in the disk builder has to be updated with this device * Mon Dec 21 2015 ms@suse.com - Fixed unconditional lookup of boot partition id * Mon Dec 21 2015 ms@suse.com - Package check for packages marked for deletion If none of the packages to become deleted are installed we will raise an error, basically to force people to fixup the image description * Mon Dec 21 2015 ms@suse.com - Better error message for call with unknown command If kiwi is called with an unknown command an error message showing which commands actually exists should be shown * Mon Dec 21 2015 ms@suse.com - Fixed user group creation The command name is groupadd not addgroup * Mon Dec 21 2015 ms@suse.com - Fixed label and UUID support for XFS creation * Mon Dec 21 2015 ms@suse.com - Traverse dictionary in ordered mode * Mon Dec 21 2015 ms@suse.com - Return sorted lists for packages/archives * Mon Dec 21 2015 ms@suse.com - Traverse dictionary in ordered mode * Mon Dec 21 2015 ms@suse.com - Traverse dictionary in ordered mode * Mon Dec 21 2015 ms@suse.com - Traverse dictionary in ordered mode * Fri Dec 18 2015 ms@suse.com - Added __githash__ to version.py Any time the version.py is changed and committed the git ident will be reset by git. After a checkout of version.py the ident will be updated in version.py to the git commit id of version.py Whenever we relase a new kiwi version the process is as follows: 1. run bumpversion to set the version for the release 2. run tox to create the source tarball for the release We have to make sure tox calls a git checkout of version.py * Thu Dec 17 2015 ms@suse.com - Consolidate use of Makefiles for schema conversion As we are going to switch to tox the Makefile setup should be cleaned up. The make targets to build xsd and rng schemas has been moved to the master Makefile * Thu Dec 17 2015 ms@suse.com - Consolidate use of Makefiles for locale setup As we are going to switch to tox the Makefile setup should be cleaned up. The make targets to handle po files and their installation has now been moved to the master Makefile * Thu Dec 17 2015 ms@suse.com - Update translation po files with template * Thu Dec 17 2015 ms@suse.com - Consolidate use of Makefiles for compiling tools As we are going to switch to tox the Makefile setup should be cleaned up. I'm going to move the various places and its tasks into one master Makefile to make it easier to move the targets one after the other into a tox setup. * Thu Dec 17 2015 ms@suse.com - Refactor source code structure All files referenced by kiwi should live below the kiwi namespace and should be referenced by the resource_filename() method from the pkg_resources * Wed Dec 16 2015 ms@suse.com - Update exclude list for boot image runtime data There are some directories needed during boot image creation time, e.g grub2 modules to create grub images. But at boot time this data is no longer required and would just waste space in the initrd * Wed Dec 16 2015 ms@suse.com - Delete dracut from boot images dracut is needed in the system and also called from there by the kiwi boot image, but inside of the boot image it is not needed and just wastes space * Wed Dec 16 2015 ms@suse.com - Add some paths not needed in the boot image * Wed Dec 16 2015 ms@suse.com - Added boot messages translations * Wed Dec 16 2015 ms@suse.com - Exclude /image from boot images * Wed Dec 16 2015 ms@suse.com - Change default boot image description path Let the default boot image description path point to boot/arch * Wed Dec 16 2015 ms@suse.com - Make sure the boot image profile provides its name The variable kiwi_initrdname was added to the .profile environment for boot image builds * Wed Dec 16 2015 ms@suse.com - Update boot image functions Delete a lot of legacy code from the bash boot code * Wed Dec 16 2015 ms@suse.com - Added boot image descriptions Provide boot(initrd) image descriptions for supported architectures and distributions * Tue Dec 15 2015 ms@suse.com - Fixed unit tests, mock NamedTemporaryFile * Tue Dec 15 2015 ms@suse.com - Added coverage to developer requirements * Tue Dec 15 2015 toms@suse.de - Use "next generation" string To distinguish it between old and new KIWI * Tue Dec 15 2015 toms@suse.de - Review and add corrections * Consistent spelling: kiwi -> KIWI, python -> Python * Add punctuation * Use backticks for scripts and dirs * Tue Dec 15 2015 ms@suse.com - Update development status to be inline with setup.py * Tue Dec 15 2015 ms@suse.com - Deleted no longer needed bin/kiwi script * Tue Dec 15 2015 ms@suse.com - Update README Added developer information how to contribute * Tue Dec 15 2015 ms@suse.com - Minor changes in virtualenv setup file names Moved the requirements.txt setup files into a namespace called .virtualenv in order to stay compatible with the .travis requirement files * Tue Dec 15 2015 ms@suse.com - Update development status in setup.py * Mon Dec 14 2015 tom_schr@web.de - Fix #5: Improve setup.py * setup.py: - use setuptools always, no need to check for distutils - include keywords 'include_package_data', 'zip_safe', and 'classifiers' * setup.cfg: - add bdist_wheel and sdist section * Add missing MANIFEST.in (needed for setup.py dist) * Remove executable bit for LICENSE and README.md * Mon Dec 14 2015 tom_schr@web.de - Fix #3: Requirement for Virtual Envs * Add requirements.txt and dev-requirements.txt The dev-requirements.txt installs requirements.txt automatically * Ignore .env, .env2, and .env3 virtual env directories * Mon Dec 14 2015 tom_schr@web.de - Fix #4: support bumpversion with .bumpversion.cfg * Mon Dec 14 2015 ms@suse.com - Added RaidDevice class implementation in disk_builder * Fri Dec 11 2015 ms@suse.com - Fixed hybrid call offset number should be passed as string to Command * Fri Dec 11 2015 toms@suse.de - __VERSION__ -> __version__ * Fri Dec 11 2015 toms@suse.de - Rename __VERSION__ -> __version__ * Thu Dec 10 2015 ms@suse.com - Added hybrid ISO setup * Thu Dec 10 2015 ms@suse.com - Refactor creation of a PackageManager factory * Thu Dec 10 2015 ms@suse.com - Refactor creation of a Repository factory * Thu Dec 10 2015 ms@suse.com - Refactor creation of a BootLoaderInstall factory * Thu Dec 10 2015 ms@suse.com - Refactor creation of a VolumeManager factory * Thu Dec 10 2015 ms@suse.com - Refactor creation of a BootLoaderConfig factory * Thu Dec 10 2015 ms@suse.com - Refactor creation of a Partitioner factory * Thu Dec 10 2015 ms@suse.com - Refactor creation of a FileSystem factory * Thu Dec 10 2015 ms@suse.com - Fixed travis setup * Thu Dec 10 2015 ms@suse.com - Refactor InstallImageBuilder no need to provide the name of the disk image, this information can be created from the xml state * Thu Dec 10 2015 ms@suse.com - Fixed missing md5 file on install media * Wed Dec 09 2015 ms@suse.com - Travis testing needs cdrtools for isoinfo * Wed Dec 09 2015 ms@suse.com - Added two pass ISO creation system The kiwi ISO's are prepared to be hybrid by adding an end header block so that isohybrid can place its gpt header at the correct offset address * Wed Dec 09 2015 ms@suse.com - Added user log messages for install media builder * Wed Dec 09 2015 ms@suse.com - Fixed grub bootloader template for install case Template was missing the cdinst option * Wed Dec 09 2015 ms@suse.com - Added create_header_end_block method in Iso class * Wed Dec 09 2015 ms@suse.com - Added isols method in Iso class * Wed Dec 09 2015 ms@suse.com - Fixed ui theme setup in isolinux.cfg * Wed Dec 09 2015 ms@suse.com - Added isolinux bootloader support * Mon Dec 07 2015 ms@suse.com - Prevent zypper failing on outdated system solvable * Sun Dec 06 2015 ms@suse.com - landscape: fix unused imports * Sun Dec 06 2015 ms@suse.com - Refactor boot data extraction from boot image Allow data extraction multiple times, don't move files away from their original location * Sat Dec 05 2015 ms@suse.com - landscape: fix unused imports * Sat Dec 05 2015 ms@suse.com - landscape: fix unused variables * Sat Dec 05 2015 ms@suse.com - Add debug message for repo cleanup * Sat Dec 05 2015 ms@suse.com - landscape: fix unused variables * Sat Dec 05 2015 ms@suse.com - landscape: fix unused imports * Sat Dec 05 2015 ms@suse.com - landscape: fix dangerous defaults * Sat Dec 05 2015 ms@suse.com - landscape: fix dangerous defaults * Sat Dec 05 2015 ms@suse.com - Added landscap config file skip checking auto generated code * Sat Dec 05 2015 ms@suse.com - Update README * Sat Dec 05 2015 ms@suse.com - Set naster branch for travis setup * Sat Dec 05 2015 ms@suse.com - Update README * Sat Dec 05 2015 ms@suse.com - Update README Travis and Landscape status * Sat Dec 05 2015 ms@suse.com - Update README * Sat Dec 05 2015 ms@suse.com - Update README
Generated by rpm2html 1.8.1
Fabrice Bellet, Fri Dec 20 23:34:21 2024