Runtime checks specific to the create step
Defined on line: 106
Called in
Create the RuntimChecker object
Defined on line: 61
Called in
Runtime checks specific to the prepare step
Defined on line: 192
Called in
A container build must include the lxc package
Defined on line: 457
Called in
Missing
Defined on line: 1867
Called in
Check that the build system has the necessary file system tools installed for the requested build.
Defined on line: 585
Called in
Missing
Defined on line: 676
Called in
Verify that the specified LVM size requirements do not exceed the specified OEM system size if specified
Defined on line: 490
Called in
Verify that the image fits within the specified size
Defined on line: 691
Called in
Check that the specified package manager exists
Defined on line: 739
Called in
Check that the use of the patternType attribute for the
Defined on line: 782
Called in
Check if the selected profiles exists
Defined on line: 763
Called in
Verify that the repo alias is unique across the currently active repos
Defined on line: 835
Called in
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
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
Missing
Defined on line: 327
Missing
Defined on line: 993
Called in
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
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
Check that a machine config exists for some formats
Defined on line: 1158
Called in
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
Check that the preferred converter exists
Defined on line: 1119
Called in
qemu-img command must support specified diskmode
Defined on line: 1255
Called in
Missing
Defined on line: 921
Called in
Missing
Defined on line: 278
Called in
Check if the boot description exists according
to the selected image type
Defined on line: 1552
Called in
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
if the image type is docker or lxc a container name
must be specified
Defined on line: 1417
Called in
check if the optional given archives doesn't
include bogus files
Defined on line: 1358
Called in
check if the optional LVM group name doesn't
exist on the build host
Defined on line: 1312
Called in
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
message text formatter for result of here documents
Defined on line: 1923
Called in
Find the tool for a given filesystem name
Defined on line: 1507
Called in
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
proc data help method, to read process ID entries
Defined on line: 1903
Called in
__checkProfileConsistent
__checkRepoAliasUnique
__checkRootRecycleCapability
__checkSelectedBootLoaderIncluded
__checkSwapRecommended
__checkSystemDiskData
__checkTargetLocation
__checkUsersConsistent
__checkVMConfigExist
__checkVMControllerCapable
__checkVMConverterExist
__checkVMdiskmodeCapable
__checkVolumeSetup
__checkYaSTenvironment
__hasBootDescription
__hasBootLoaderTools
__hasContainerName
__hasValidArchives
__hasValidLVMName
__haveValidTypeString
__here_format
__isFsToolAvailable
__isoHybridCapable
__read_pids