- Fixed plugin documentation
While setting up the kiwi boxed plugin I realized some small
mistakes in the plugin documentation
- 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.
- Make build of filesystem image optional for pxe
Allow to build a kernel/initrd pair without a root
filesystem image. Related to Issue #1388
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=167
- Add SECURE_BOOT parameter for grub2 in efi mode
This commit adds the SECURE_BOOT parameter on bootloader sysconfig
for grub2.
Fixes bsc#1167746
- 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.
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=166
- 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.
- Fixed suse doc push pipeline
build and push are not allowed to run in parallel
- push suse doc only on merge to master
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=165
- 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
- Bump version: 9.20.1 → 9.20.2
- 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
- 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
- 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.
- Added sle15 ppc oem integration test
Related to Issue #1325
- Added task plugin documentation
Documentation for developers how to write a custom kiwi
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=164
- Added serial console in centos integration test
For use with Kanku we enable the serial console for the
centos integration test image
- Make PrEP partition known to GPT partitioner
- Use GPT table for Power ofw firmware
GPT partition table should be preferred for power systems
these days. Related to Issue #1325
- target blocksize for IBM Power8 systems is 4k
Adapt the oem image integration test for bare metal to use
4k blocksize
- 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.
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=163
- Deleted distro provided login.defs from overlay
- Delete use of methods that are done by the builder
- Deleted obsolete ifplugd from arm build test
- Deleted obsolete ifplugd from s390 build test
- Update status helper script
Also show new ppc integration test builds
- 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
- 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
- Bump version: 9.19.14 → 9.19.15
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=162
- 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.
- Bump version: 9.19.8 → 9.19.9
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=161
- 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
- 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
- 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
- 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
- Fixed installation chapter in the documentation
The chapter still outlines multipython support but we
dropped support for python2 some time ago
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=160
- 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
- Exclude 'Recommends: kiwi-man-pages' for EL7 and older in the spec
- 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
- 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.
- 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
- Open image files in UTF-8
Post image build metadata like the packages file which are
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=159
- Fixup package list for GCE integration test
Package growpart-rootgrow does no longer exist. Will be
replaced by a partgrow implementation
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=158
- 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
- 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
- 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.
- 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
- Do not rsync kernel filesystems on debootstrap
This commit ensures that /proc and /sys are not rsynched when
debootstrapping an apt based image.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=157
- 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
- Reference commit for SUSE maintenance
This commit adds a reference to Issue #1261 and the
report in bugzilla bsc#1157104
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=156
- Improve alias documentation in XML schema
This commit aligns the documentation of the default repository alias
with the current implementation.
Fixes#1247
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=155
- 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
- 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
- Bump version: 9.18.31 → 9.18.32
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=154
- Fix gitlab CI pipeline
Ensure the gitlab CI includes make package for docs generation
- 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
- Bump version: 9.18.29 → 9.18.30
- fix kernel module handling for xz compressed modules
and firmware files to fix issue #1256
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=153
- Update Host/Image support matrix
Update documentation about the Host vs. Image support and
compatibility matrix with regards to the SLES target.
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=152
- Delete left over print statement from unit test
- Bump Fedora x86 build test to Fedora30
- Bump version: 9.18.26 → 9.18.27
- 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`.
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=151
- 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
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=150
- 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
- Clean up openstack packages
- 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.
- 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
- Reverting partsthat are already implemented
This problem is discussed in #1195
- Switched back to original root-device search
- Detect raid compound in root disk detection
Make sure raid managed storage e.g fake raid is detected
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=149
- 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
- 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
- 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
- Update documentation regarding fstab adaptions
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=148
- 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.
- 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
- Add /mnt to list of protected paths
On recursive removal make sure /mnt belong to the protected
elements. This Fixes#1170
- Added full encrypted image build test
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=147
- Align setup.py with the correct license
- 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
- Update image name for s390 oem integration test
Align image name to the schema we use for all other
integration tests
- Fixed zipl bootloader setup
targetgeometry not allowed for targettype SCSI
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=146
- Added multiconsole setup to Fedora build test
- 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
- Bump version: 9.18.6 → 9.18.7
- 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.
- Bump version: 9.18.5 → 9.18.6
- Fix the pyxattr dependency to allow kiwi to function
Most Linux distributions offer the pyxattr module, including
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=144
- 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
- [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}
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=143
- 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
- Do not crash on missing HOME
- Added live ISO integration tests for arm
- Consolidate syslinux file names and search paths
Handle those file names and search path in the Defaults space
and only once in the code
- Remove '^' which break BaseStripFirmware function (boo#1132455)
- 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
- 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.
- Fixed zipl bootloader setup
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=142
- Update obs docs per review by Tom
- 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
- Simplify shell pipe expression with shell builtin
Replace "echo $var | sed ..." expression with ${var//SEARCH/REPLACE}
shell builtin as suggested by Codacy
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=141
- 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
- Fixed build_in_buildservice stale references
Fixed style issues reported on sphinx build. Also deleted
pointers to non existing references
- 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
- Update doc/source/building/build_in_buildservice.rst
Co-Authored-By: dcermak <45594031+dcermak@users.noreply.github.com>
- Rework documentation about building on OBS
- Added integration test guest image for OpenStack
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=140
- 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.
- Bump version: 9.17.35 → 9.17.36
- Fix xml syntax on documentation example
- Add custom curl options docs
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=139
- 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.
- Update travis doc building target
Disable doc test on travis, we have this in the gitlab-ci
pipeline.
- Move sphinx config to python3
Disable modules that have not been ported to sphinx 2.0 API
- 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.
- Bump version: 9.17.32 → 9.17.33
- Added integration test for bootstrap only builds
- Fixed bootstrap only building
Image descriptions that define packages in the bootstrap section
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=137
- 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>
- 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.
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=136
- 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.
- 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.
- 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
- Fixed import of signing keys
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=135
- 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
- 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
- Bump version: 9.17.20 → 9.17.21
- Speedup the make build target
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=134
- 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
- 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.
- Added support for %_install_langs rpm macro
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=133
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=132
- 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
- Bump version: 9.17.13 → 9.17.14
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=131
- 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
- Bump version: 9.17.11 → 9.17.12
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=130
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=129
- 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
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=128
- Allow setctsid to be part of custom boot images
- 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
- Bump version: 9.17.4 → 9.17.5
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=127
- Little code styling fix
- 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
- 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
- Add history metadata for container builds
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=126
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=125
- 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.
- Bump version: 9.16.34 → 9.16.35
- Revert last travis.yml change
This reverts commit 7fb7e8c39fa861b6226d54e04483be8e96a5f8be.
- Bump version: 9.16.33 → 9.16.34
- Next try to fixup pypi deployment
Reset to encrypted password hash which worked before
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=124
- Use %{ix86} rather than %ix86 in spec template
Clear macro annotation prevents clarity issues
- Fixed spec file for gfxboot requires
Require gfxboot but only for the x86 architecture
- Bump version: 9.16.25 → 9.16.26
- Move the default rpm database path into Defaults class
- Handle default uri mime type in Defaults class
- Add a hardcoded rpm database path to import trusted keys
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=123
- 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
- Fixup README travis and codacy status badges
- Adding bugfix trace for bsc#1110869
bsc#1108508 ticket was fixed with request #831
from SUSE/fix_uri_handler
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=122
- Rename private method to be more expressive
- 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
- 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.
- Fixed broken link to ec2uploadimg tool
- Update contact information
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=121
- 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
- Bump version: 9.16.16 → 9.16.17
- 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
- Bump version: 9.16.15 → 9.16.16
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=120
- 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
- Bump version: 9.16.10 → 9.16.11
- Use skip_cleanup for deploy stage in travis
We need the tox build environment to run the deployment
- Bump version: 9.16.9 → 9.16.10
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=119