- 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
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=55
- Rebuild schema documentation
- Show results in a dialog
- 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
- 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
- Fixed package requires for dracut-kiwi-live
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=54
- Bump version: 9.11.1 → 9.11.2
- Rebuild online schema documentation
- Bump version: 9.11.0 → 9.11.1
- 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
- Update oemboot/rhel-07.0 due to isolinux changes
OBS-URL: https://build.opensuse.org/request/show/523261
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=9
- Bump version: 9.11.1 → 9.11.2
- Rebuild online schema documentation
- Bump version: 9.11.0 → 9.11.1
- 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
- Update oemboot/rhel-07.0 due to isolinux changes
OBS-URL: https://build.opensuse.org/request/show/523261
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=9
- Added disk format="vhdx" support
Support dynamic VHDX (gen2) image format for Hyper-V.
This Fixes#490
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=52
- Rebuild online schema documentation
- Bump version: 9.11.0 → 9.11.1
- 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
- Update oemboot/rhel-07.0 due to isolinux changes
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=51
- Added boot descriptions for SLE15 on ppc
- Added boot descriptions for SLE15 on s390
- Bump version: 9.10.4 → 9.10.5
- 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
- s/sles/openSUSE/
- copy SLE15 files for Leap 15
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=50
- Fixed resize if all free volume in oemboot/repart
- 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
- Fixed setup.py requirements record
PyYAML is required by KIWI
- Add description of Overlay Files to Terminology
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=49
- 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
- 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
- Fix calculation of needed disk space for oem types
The calculation did not include the minimum volume requirements
if a volume setup exists
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=48
- Fixup XSL stylesheet v6.7
Apply templates matching all processing instructions in
order to match <section>text</section>
- Rebuild schema documentation
- 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.
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=47
- 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
- Use dmsetup to cleanup device maps
Instead of the broken kpartx -d we use dmsetup remove
directly on the maps kiwi has created
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=46
- 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.
- 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
- 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
- Fixup shell test condition
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=45
- Added s390 tumbleweed boot descriptions
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=44
- 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.
- Fixup helper/kiwi-boot-packages
Make sure the code also works in python2
- Search for python interpreter in path
Allow more flexible path spec to find python interpreter
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=42
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=41
- 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
- Delete obsolete --obs-repo-internal switch
- 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
- Fixup unit test for help command
- Follow up fix for man page move
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=39
- Add unit tests for compat mode
- Do not translate obs scheme to suse scheme for imageonly repos
Fixes#404
- Fixed compat setup for upgrade command
Value for --root option was added after other options
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=38
- Fix content layout of zypper credentials file
Missing line break for entries in zypper credentials file
- Allow imageinclude repositories inside the build service
Fixes#397
- Fixed doc_travis tox target
using shell syntax requires calling a shell process
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=37
- 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
- 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.
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=35
- 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
- Make sure CliTask instance reads the config file
Any instance of a CliTask has to read the runtime config file
if present
- 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
- Setup plymouth splash in the image prepare process
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=34
- Update rpm-check-signatures documentation
- 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
- 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
- Include repository_gpgcheck and package_gpgcheck documentation
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=32
- 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
- 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
- Fixup EFI setup for iso images
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=31
- Bump version: 9.6.2 → 9.7.0
- Make sure all required yum repo options are set
enabled and gpgcheck parameters has to be set for any
configured yum repository
- 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
- Reactivate warnings report in pytest
- 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
OBS-URL: https://build.opensuse.org/request/show/500565
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=6
- Bump version: 9.6.2 → 9.7.0
- Make sure all required yum repo options are set
enabled and gpgcheck parameters has to be set for any
configured yum repository
- 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
- Reactivate warnings report in pytest
- 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
OBS-URL: https://build.opensuse.org/request/show/500565
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=6
- Make sure all required yum repo options are set
enabled and gpgcheck parameters has to be set for any
configured yum repository
- 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
- Reactivate warnings report in pytest
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=29
- 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.
- 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.
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=27
- 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.
- 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
- Use correct service name variable
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=26
- 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
- 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
- Implement obs source on derived_from
The following reference to a derived container:
obs:/project/repo/container#tag
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=24
- 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.
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=23
- Add warning logs for unkown base image URIs
- Update spec template for SLE13->SLE15
- Rename SLE13 to SLE15
- 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
- Cleanup use of bootloader path in boot code
Instead of repeating the bootloader path only specify it
once per setup path
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=21
- 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
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=20
- 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)
- 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)
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=18
- 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
- Do not change the API in an incompatible way
- Use request_package_exclusion method in prepare
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=17
- 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)
- 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
- Support editbootconfig also for the iso type
This Fixes#274
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=16
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=15