KIWIRuntimeChecker Info


Public methods

Private methods


__checkContainerHasLXC

A container build must include the lxc package

Defined on line: 457

Called in

__checkCorrectRootFSPermissons

Missing

Defined on line: 1867

Called in

__checkFilesystemTool

Check that the build system has the necessary file system tools installed for the requested build.

Defined on line: 585

Called in

__checkHaveTypeToBuild

Missing

Defined on line: 676

Called in

__checkLVMoemSizeSettings

Verify that the specified LVM size requirements do not exceed the specified OEM system size if specified

Defined on line: 490

Called in

__checkOEMsizeSettingSufficient

Verify that the image fits within the specified size

Defined on line: 691

Called in

__checkPackageManagerExists

Check that the specified package manager exists

Defined on line: 739

Called in

__checkPatternTypeAttrValueConsistent

Check that the use of the patternType attribute for the element is consistent. The static component of this is checked during XML validation. If no profiles are specified on the command line or if the configuration contains a element without a profile attribute there is nothing to do.

Defined on line: 782

Called in

__checkProfileConsistent

Check if the selected profiles exists

Defined on line: 763

Called in

__checkRepoAliasUnique

Verify that the repo alias is unique across the currently active repos

Defined on line: 835

Called in

__checkRootRecycleCapability

Check the root tree if --recycle-root is set. In that case it's not allowed to use a root tree which is based on an image cache

Defined on line: 895

Called in

__checkSelectedBootLoaderIncluded

check if the selected bootloader will also be installed into the image. This is required for the oem, vmx and pxe image types. In case of a pxe type the deploy configuration might not require a bootloader e.g for remote root systems. As we don't know the deploy configuration at build time the check might complain unnecessarily. In such a case add the package in question and remove it in config.sh again.

Defined on line: 402

Called in

__checkSwapRecommended

Missing

Defined on line: 327

__checkSystemDiskData

Missing

Defined on line: 993

Called in

__checkTargetLocation

Any given target directory must be outside of /var/cache/kiwi to avoid busy mount because kiwi bind mounts the cache directory into the image root tree to access host caching information

Defined on line: 864

Called in

__checkUsersConsistent

User definitions may conflict in different profiles in the static definition. However, at build time only profiles with non conflicting user definitions may be selected.

Defined on line: 1101

Called in

__checkVMConfigExist

Check that a machine config exists for some formats

Defined on line: 1158

Called in

__checkVMControllerCapable

If a VM image is being built and the specified vmdisk controller, then the qemu-img command on the system must support this option.

Defined on line: 1187

Called in

__checkVMConverterExist

Check that the preferred converter exists

Defined on line: 1119

Called in

__checkVMdiskmodeCapable

qemu-img command must support specified diskmode

Defined on line: 1255

Called in

__checkVolumeSetup

Missing

Defined on line: 921

Called in

__checkYaSTenvironment

Missing

Defined on line: 278

Called in

__hasBootDescription

Check if the boot description exists according to the selected image type

Defined on line: 1552

Called in

__hasBootLoaderTools

Check if the system will work if the use of a boot partition is switched off my $this = shift; my $kiwi = $this->{kiwi}; my $locator = $this->{locator}; my $xml = $this->{xml}; my $bldType = $xml -> getImageType(); if (! $bldType) { return 1; } my $bootpartition = $bldType -> getBootPartition(); my $filesystem = $bldType -> getFilesystem(); if ((! $bootpartition) || ($bootpartition eq "true")) { return 1; } if ($filesystem !~ /btrfs|zfs|xfs/) { return 1; } my $bootloader = $bldType -> getBootLoader(); if ($bootloader ne "grub2") { my $msg = "The system is explicitly configured to work "; $msg.= "without a boot partition for the $filesystem filesystem. "; $msg.= "But this is only supported with the grub2 bootloader. "; $msg.= "The currently configured $bootloader bootloader is not "; $msg.= "supported in this setup"; $kiwi -> error($msg); $kiwi -> failed(); return; } return 1; } ========================================== __checkBootPartitionOverlaySystem ------------------------------------------ Check the boot partition setup for overlay systems my $this = shift; my $kiwi = $this->{kiwi}; my $locator = $this->{locator}; my $xml = $this->{xml}; my $bldType = $xml -> getImageType(); if (! $bldType) { return 1; } my $typename = $bldType -> getTypeName(); my $bootpartition = $bldType -> getBootPartition(); my $filesystem = $bldType -> getFilesystem(); if ((! $bootpartition) || ($bootpartition eq "true")) { return 1; } if ($filesystem !~ /overlayfs|clicfs/) { return 1; } my $msg = "The system is explicitly configured to work as root overlay "; $msg.= "system without a boot partition for the $filesystem filesystem. "; $msg.= "However the the boot location must be writable and can't be "; $msg.= "part of the read only root filesystem. Please delete the "; $msg.= "bootpartition attribute from your $typename build type"; $kiwi -> error($msg); $kiwi -> failed(); return; } ========================================== __checkDeprecatedFilesystem ------------------------------------------ my $this = shift; my $kiwi = $this->{kiwi}; my $xml = $this->{xml}; my $bldType = $xml -> getImageType(); if (! $bldType) { return 1; } my $filesystem = $bldType -> getFilesystem(); my $flag = $bldType -> getFlags(); if (($filesystem && $filesystem eq 'clicfs') || ($flag && $flag eq 'clic')) { $kiwi -> warning( "The use of clicfs is obsolete, consider using overlayfs" ); $kiwi -> oops(); return 1; } return 1; } ========================================== __checkMountDependencies ------------------------------------------ my $this = shift; my $kiwi = $this->{kiwi}; my $msg; if ($ENV{KIWI_IGNORE_OLD_MOUNTS}) { return 1; } my %proc_result; foreach my $pid ($this->__read_pids('/proc')) { foreach my $task_pid ($this->__read_pids("/proc/$pid/task")) { my $TASK_MOUNTS = FileHandle->new(); if ($TASK_MOUNTS->open("/proc/$pid/task/$task_pid/mounts")) { while (my $line = <$TASK_MOUNTS>) { The search expression to indicate this mount belongs to some kiwi process is not 100% reliable, but so far the only solution I could come up with if ($line =~ /kiwi/) { $proc_result{$task_pid} = 1; } } $TASK_MOUNTS->close(); } } } my @kiwi_mount_references = sort keys %proc_result; if (! @kiwi_mount_references) { return 1; } $msg = <<' END_MESSAGE'; It appears there are processes which are holding onto mounts created by a previous run END_MESSAGE $kiwi->error($this->__here_format($msg)); my $PS = FileHandle->new(); if ($PS->open("pstree -p|")) { while (my $line = <$PS>) { foreach my $ref_pid (@kiwi_mount_references) { if ($line =~ /\($ref_pid\)/) { $kiwi->note($line); last; } } } $PS -> close(); } $kiwi->note("\n"); $msg = <<' END_MESSAGE'; This could cause kiwi to fail, or even worse, if you are building on tmpfs, it could totally freeze or crash your machine. Please first clean up these old mounts, or export 'KIWI_IGNORE_OLD_MOUNTS=yes' and re-run END_MESSAGE $kiwi->error($this->__here_format($msg)); return; } ========================================== __hasBootLoaderTools ------------------------------------------ Check if the selected bootloader can be installed

Defined on line: 1743

Called in

__hasContainerName

if the image type is docker or lxc a container name must be specified

Defined on line: 1417

Called in

__hasValidArchives

check if the optional given archives doesn't include bogus files

Defined on line: 1358

Called in

__hasValidLVMName

check if the optional LVM group name doesn't exist on the build host

Defined on line: 1312

Called in

__haveValidTypeString

if the commandline data set contains buildtype information, check if it contains a valid string This check must be done for prepare and create in order to early detect a broken commandline when using prepare + create in one call by the --build option

Defined on line: 1448

Called in

__here_format

message text formatter for result of here documents

Defined on line: 1923

Called in

__isFsToolAvailable

Find the tool for a given filesystem name

Defined on line: 1507

Called in

__isoHybridCapable

If an ISO image is being built check that if an iso hybrid is requested, the platform is capable. Check if the uefi capability exists if isohybrid is allowed on given platform.

Defined on line: 1798

Called in

__read_pids

proc data help method, to read process ID entries

Defined on line: 1903

Called in

createChecks

Runtime checks specific to the create step

Defined on line: 106

Called in

new

Create the RuntimChecker object

Defined on line: 61

Called in

prepareChecks

Runtime checks specific to the prepare step

Defined on line: 192

Called in