- Bump version: 10.2.31 → 10.2.32
- fix: resize for raid device, ensure vars like kiwi_RaidDev are loaded before setting disk variable
- Do not clobber initialize method
There was a method named initialize defined and implemented
differently in the dracut modules kiwi-lib and kiwi-repart.
kiwi-lib is expected to be shared code across all kiwi dracut
modules. However if one module redefines a method of the
same name which is used in another module and expected to
work differently there, this is evil. This commit cleans
up the name conflict and names the kiwi library init function
as lib_initialize. All dracut code that is expected to make
use of this method has been adopted too.
- Skip kiwi-repart module in install ISOs
In case the kiwi-repart module is explicitly requested in a
dracut.conf file and the image is also configured to build an
install ISO image this leads the install ISO to contain the
kiwi-repart module as well which is unwanted. This commit
explicitly omits the kiwi-repart when creating the initrd
for the install image
- Skip repart when booting install/live iso
- Update leap test-image-disk integration test
Add test for alternative volume ID in install ISO
- Bump version: 10.2.30 → 10.2.31
OBS-URL: https://build.opensuse.org/request/show/1298900
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=140
- Bump version: 10.2.29 → 10.2.30
- Fix repartitioning with parted
parted does locking itself already. Wrapping it in udevadm lock results
in a deadlock, breaking boot.
- Update test-image-disk-simple integration test
Update slfo/test-image-disk-simple. Add more space for
flake testing and add a user to test flakes for non root
- Catch potential exceptions from pathlib.Path.mkdir
Creating a directory can fail, we should catch this error
instead of ending up in a stack trace
OBS-URL: https://build.opensuse.org/request/show/1296359
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=139
- Fix repartitioning with parted
parted does locking itself already. Wrapping it in udevadm lock results
in a deadlock, breaking boot.
- Update test-image-disk-simple integration test
Update slfo/test-image-disk-simple. Add more space for
flake testing and add a user to test flakes for non root
- Catch potential exceptions from pathlib.Path.mkdir
Creating a directory can fail, we should catch this error
instead of ending up in a stack trace
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=300
- Bump version: 10.2.28 → 10.2.29
- Fix return from repart stage
If we return from the repart stage it's important to wait
for the root device to appear. This is because the device
setup from udev might still be held back due to a former
lock on the device. This means if we return fast after
locking for example when check_repart_possible() quickly
finds out that it's not possible, then udev has not yet
got the time to create the device nodes.
This Fixes#2863
OBS-URL: https://build.opensuse.org/request/show/1295613
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=138
- Fix return from repart stage
If we return from the repart stage it's important to wait
for the root device to appear. This is because the device
setup from udev might still be held back due to a former
lock on the device. This means if we return fast after
locking for example when check_repart_possible() quickly
finds out that it's not possible, then udev has not yet
got the time to create the device nodes.
This Fixes#2863
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=299
- Bump version: 10.2.27 → 10.2.28
- Fix dracut code to be POSIX compliant
The redirect type "< <(...)" is not POSIX complians and leads
to a syntax error in dracut which calls bash as "sh" leading
it to be restricted to POSIX only
- Extend test-image-lvm integration test
For testing a bit more complex resize procedure, update
the lvm integration test to run more resize actions
with required device locking
- Apply proper udev locking
Several commands during repart, resize and other actions
require a proper lock to be set for udev such that other
events knows about the locked state of a device and do
not mess with it until the command for which the lock
persists has completed. This commit applies proper udev
locks to all commands that requires it. In addition
incorrect code that was expected to prevent such race
conditions got dropped from the implementation.
This is related to bsc#1242987
- relocate GPT at the end of disk using sfdisk
Using sfdisk for relocation and verification makes this
part more consistent. We also want to move away from gdisk.
This is related to #2851
- Do not strictly require config.partids in repart
The kiwi-repart implementation requires a metadata file
OBS-URL: https://build.opensuse.org/request/show/1294365
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=137
- Fix dracut code to be POSIX compliant
The redirect type "< <(...)" is not POSIX complians and leads
to a syntax error in dracut which calls bash as "sh" leading
it to be restricted to POSIX only
- Extend test-image-lvm integration test
For testing a bit more complex resize procedure, update
the lvm integration test to run more resize actions
with required device locking
- Apply proper udev locking
Several commands during repart, resize and other actions
require a proper lock to be set for udev such that other
events knows about the locked state of a device and do
not mess with it until the command for which the lock
persists has completed. This commit applies proper udev
locks to all commands that requires it. In addition
incorrect code that was expected to prevent such race
conditions got dropped from the implementation.
This is related to bsc#1242987
- relocate GPT at the end of disk using sfdisk
Using sfdisk for relocation and verification makes this
part more consistent. We also want to move away from gdisk.
This is related to #2851
- Do not strictly require config.partids in repart
The kiwi-repart implementation requires a metadata file
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=298
There is no package named iprutils
- Fix centos/test-image-live-disk-v10
Update package names
- Added centos/test-image-live-disk-v10 build test
- Fix tumbleweed/test-image-gce integration test
Drop obsolete growpart
- Followup fix to support older apt versions for bootstrap
There are apt versions that do not create missing state files.
Make sure the intermediate bootstrap state file is created in
any case. This Fixes#2857
- Fixed integration test builds
Next round of fixes for integration tests. Missing
or wrong service activations
- Fix arm/tumbleweed/test-image-rpi
Fix snapper setup for this integration test
- Fixed test-image-live-disk
Added missing openssh-server package
- Fixed test-image-azure
Add missing python-azure-agent-config-default package
- Fixed debian integration test builds
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=297
- Bump version: 10.2.26 → 10.2.27
- Fix regression in get_partition_node_name
backwards compat for lsblk before 2.38
if START column not supported, fall back to default sort
- Add global option --setenv
Allow to set environment variables in the caller environment
via the commandline, e.g --setenv SOURCE_DATE_EPOCH=42
- Seed filesystem UUIDs with SOURCE_DATE_EPOCH
For reproducible builds the calculation of the filesystem UUID
should be persistent with each rebuild of the image. To achieve
this the UUID is calculated using the SOURCE_DATE_EPOCH from
the environment plus a char-number representation of the filesystem
label name as random seed. In kiwi every filesystem is created
with a label, thus only in case there is no SOURCE_DATE_EPOCH
available we continue to create the UUID as random data.
This Fixes#2761
- Add label attribute for <partition> section
Allow to specify a filesystem label as part of a <partition>
definition. So far the label was set by the name of the
partition. With the new label attribute, a filesystem label
different from the partition name can be set. This commit
also updates/fixes the documentation in this regard.
- Improve log message in SystemIdentifier
Add some scope information such that we know from where
this log information originates from.
- Add rd.kiwi.install.devicepersistency
Allow to specify which type of persistent device name should
be used to build up the list of installation disk devices.
For example rd.kiwi.install.devicepersistency=by-path would
use the by-path representations for the available disk
devices. The default (by-id) stays untouched. In case an
invalid or not present device representation is selected, kiwi
falls back to the non persistent unix node names.
- Make mbr-id deterministic
Log the value of SDE so it is available to review,
even if the build system does not tell about it.
Update the tests to cover the new code-path.
Co-Authored-By: Marcus Schäfer <marcus.schaefer@gmail.com>
- Ensure dracut initrd is reproducible
This helps a bit with issue #2358
Add reproducible flag for UKI too
Update tests accordingly
Co-Authored-By: Marcus Schäfer <marcus.schaefer@gmail.com>
OBS-URL: https://build.opensuse.org/request/show/1291451
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=136
- Fix regression in get_partition_node_name
backwards compat for lsblk before 2.38
if START column not supported, fall back to default sort
- Add global option --setenv
Allow to set environment variables in the caller environment
via the commandline, e.g --setenv SOURCE_DATE_EPOCH=42
- Seed filesystem UUIDs with SOURCE_DATE_EPOCH
For reproducible builds the calculation of the filesystem UUID
should be persistent with each rebuild of the image. To achieve
this the UUID is calculated using the SOURCE_DATE_EPOCH from
the environment plus a char-number representation of the filesystem
label name as random seed. In kiwi every filesystem is created
with a label, thus only in case there is no SOURCE_DATE_EPOCH
available we continue to create the UUID as random data.
This Fixes#2761
- Add label attribute for <partition> section
Allow to specify a filesystem label as part of a <partition>
definition. So far the label was set by the name of the
partition. With the new label attribute, a filesystem label
different from the partition name can be set. This commit
also updates/fixes the documentation in this regard.
- Improve log message in SystemIdentifier
Add some scope information such that we know from where
this log information originates from.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=296
- Bump version: 10.2.25 → 10.2.26
- Fix shim lookup for arm on SUSE
Add missing search path for shim binary on arm based SUSE
systems. Also update the tumbleweed/test-image-live-disk
integration test for arm to build with secure boot enabled
to actually test a secure boot enabled ISO build.
This Fixes#2842
- Add container_import template test
- Add support for container-snap as a container-image engine
With this commit, we can now pre-load images using container-snap directly
during the kiwi image build
OBS-URL: https://build.opensuse.org/request/show/1288814
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=135
- Fix shim lookup for arm on SUSE
Add missing search path for shim binary on arm based SUSE
systems. Also update the tumbleweed/test-image-live-disk
integration test for arm to build with secure boot enabled
to actually test a secure boot enabled ISO build.
This Fixes#2842
- Add container_import template test
- Add support for container-snap as a container-image engine
With this commit, we can now pre-load images using container-snap directly
during the kiwi image build
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=295
- Bump version: 10.2.24 → 10.2.25
- Fixed get_partition_node_name
The function get_partition_node_name takes the disk device
and the partition index as arguments to match against the
respective device node for this partition index. The partition
index is the position of the partition in the partition table
according to their start offset. For the code to function
properly it is required that the list of partitions provided
by lsblk is ordered according to the start address of the
partitions in the table. The way lsblk was called did not
enforce this ordering. This commit enforces the order to
be done against the start offset and fixes bsc#1245190
- Update test-image-MicroOS for local build
Fix bootstrap setup such that micro-os patterns can resolve
- Fix logging of stderr data in command calls
The stderr data was presented as one blob without line
breaks. Hard to read and smells like a bug. This commit
fixes the output to become readable
- Update test-image-MicroOS/disk.sh
Add a findmnt for / to check if there is a proper root
device reference
- Fix mount system for root_is_snapper_snapshot
If root is a snapper snapshot we have to tell the
chroot a proper root mount point which can be achieved
by a bind mount pointing to itself. This Fixes
OBS-URL: https://build.opensuse.org/request/show/1288533
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=134
- Fixed get_partition_node_name
The function get_partition_node_name takes the disk device
and the partition index as arguments to match against the
respective device node for this partition index. The partition
index is the position of the partition in the partition table
according to their start offset. For the code to function
properly it is required that the list of partitions provided
by lsblk is ordered according to the start address of the
partitions in the table. The way lsblk was called did not
enforce this ordering. This commit enforces the order to
be done against the start offset and fixes bsc#1245190
- Update test-image-MicroOS for local build
Fix bootstrap setup such that micro-os patterns can resolve
- Fix logging of stderr data in command calls
The stderr data was presented as one blob without line
breaks. Hard to read and smells like a bug. This commit
fixes the output to become readable
- Update test-image-MicroOS/disk.sh
Add a findmnt for / to check if there is a proper root
device reference
- Fix mount system for root_is_snapper_snapshot
If root is a snapper snapshot we have to tell the
chroot a proper root mount point which can be achieved
by a bind mount pointing to itself. This Fixes
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=294
In a btrfs based design, allow to put /boot as subvolume.
This required a small fix in the mount order in a way that
boot/efi gets mounted after the subvolume mounts are done.
The respective integration test has been updated to test
this functionality. This Fixes#2824
- Use f-strings where feasible
This is a slightly shorter and easier to read syntax
- Log warning message for disabled runtime checks
Complete type hints for RuntimeConfig class and log
a warning message for each disabled runtime check
- Fix static type argument int vs. str
- Move it inside the context that actually uses it
also rename it to "supported" as that seems to closer match
what it resembles
- Add overlayfs as supporting xattr/ACLs as well
- Fix disk_type validation for zipl loader
If the targettype is set to GPT in combination with plain
zipl as loader, the code to validate the targettype against
the targetgeometry was not effective and zipl failed.
This Fixes#2821
- Fixup overlay unit enablement
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=293
- Cleanup build metadata
Make sure the final image rootfs does not contain unneeded
metadata files used during build time. The respective cleanup
call is performed after the root sync and after all initrd/boot
processing has been done. This is because up to that point it's
still possible that the information is required. This means
when building images with a read-only rootfs, it might not be
possible that the metadata can be deleted due to a chicken&egg
situation. Furthermore the cleanup is applied to the disk
builder only as other builders do not really suffer from
this data and for the container builder the metadata can
also be used for the stackbuild feature when building images
derived from containers. This Fixes#2668
- bootloader setup without overlay write partition
If overlayroot_write_partition="false" is set, no system
indicator was stored. This cause the bootloader setup to
be skipped completely which is not required for e.g.
systemd-boot.
- Make sure to create overlay directories
Create overlay directories even if rd.root.overlay.readonly
is set. This allows individual fstab overlays mounts to be
performed
- Fixed rd.root.overlay.readonly overlay mode
When booting an overlayroot image with rd.root.overlay.readonly
set, the system will boot with only the read-only root mounted.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=292
- Add support for <initrd> section as part of <type>
Extend scope and content of the <initrd> section to be allowed
as part of the <type> section. This allows to specify custom
call options and modules for the dracut tool. In particular
this commit implementes support for passing the uefi option
to dracut to enable building an UKI EFI binary as follows:
<initrd action="setup">
<dracut uefi="true"/>
</initrd>
This Fixes#2809 and Fixes#2408
- Fix systemd-boot loader setup
To make sure only loader entries from /boot/efi/loader/entries
kiwi deleted eventually existing entry files from /boot/loader.
However that is a problem for read-only systems and should actually
also not performed by kiwi. This Fixes#2805
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=291
- Apply security context on writable root only
Make sure to perform setfiles only on a writable target. In case
of a read-only root it is expected that the security context set
by kiwi in an earlier stage is complete. As there is no way to
modify data when root is read-only, there is also no way to change
the security context of any file such that we skip setfiles
in this case. Should there be a read-only system that has writable
partitions such as /boot and their content changes while the rest
of the root system is read-only it is in the responsibility of
the author of the image description to call setfiles only on
the affected and still writable files via a custom disk.sh
script. Along with the fix the respective integration test was
modified to enable selinux such that this change is actually
integration tested. This Fixes#2805
- Docs: fix typo in users.rst
- Docs: minor punctuation and grammar fixes
- Give test-image-overlayroot enough space
- Allow ext2/ext3 as valid build target
stat reports the value 'ext2/ext3' which is a valid target
- Added check_target_dir_on_unsupported_filesystem
Add runtime check to make sure the selected target directory
for the image and/or the image rootfs lives on a filesystem
that provides all required features like extended permissions,
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=290
- Add dkms to test-image-embedded integration test
- Fixed access issue to etc/kernel for sdboot
In case of an overlayroot setup we have to make sure
that etc/kernel is writable. This is done by a bind
mount of the ESP
- Update test-image-overlayroot
Add another build using grub instead of systemd-boot and use
btrfs as write partition instead of xfs. Please note this test
requires a boot partition because grub cannot read from erofs
and unlike systemd-boot grub does not read all boot data from
the ESP.
- Fixed get_volume_management
If a volume capable filesystem like btrfs is requested, there
must also be a volume definition available to report that
the volume management is actively used. Just the request of
the filesystem can also mean it's being used without volumes
like it could be the case for an overlayroot setup that
requests btrfs as write partition.
- Update test-image-overlayroot
Move to systemd-boot as bootloader, activate secure boot
and drop the extra boot partition. Use XFS for the write
space
- Allow initrd updates on read-only devices
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=289
- Fixed targettype setup in zipl.conf
The special targettype set to GPT still indicates SCSI for
the zipl.conf but tells kiwi to create a GPT disk layout
- Fixed s390 integration test
targettype attribute in wrong section
- Add support for GPT targettype on s390
Allow to build s390 images using GPT instead of the old DOS
partition table. zipl has added support to read from GPT.
This Fixes#2694
- Add --no-compress option to bundler
Allow to skip the compression for bundle files marked
to become compressed. This Fixes#2736
- Rawhide (F43) has removed basesystem package
The basesystem package was retired with rawhide (F43).
https://src.fedoraproject.org/rpms/filesystem/pull-request/20
- rawhide install shadow-utils for usermod
Using `kiwi-ng` version 10.2.18 (EL9)
Currently with:
```
sudo kiwi-ng system build \
--description kiwi/build-tests/x86/fedora/test-image-docker
--set-repo http://ftp.fau.de/fedora/linux/development/rawhide/Everything/x86_64/os/ \
--target-dir /tmp/myimage1
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=287
- Fix setup of use_disk_password for random secret
When using luks="random" in combination with use_disk_password="true"
the resulting cryptomount call in grub is wrong. This commit fixes it
- Drop copying GRUB2 modules to /boot with Secure Boot UEFI images
Copying the modules creates a situation where future updates
applied to a running system can cause GRUB to crash due to mixed
modules and GRUB EFI binaries.
It is not needed anyway since GRUB EFI binaries for Secure Boot have
all modules compiled into the binaries.
Fixes: https://github.com/OSInside/kiwi/issues/2790
- Make sure editbootinstall runs offline
editbootinstall expects the system to be umounted
- Make sure post sync actions are in scope
- Follow up fix for overlayroot builds for EFI path
Only perform the boot overlay if there is an extra boot partition
- Only remove entries from exclude list if present
- Fix overlayroot builds for EFI path
make sure to keep boot/efi mountpoint directories
in the read-only area as they can't be created later
- doc: overview: Add list of supported Linux distributions
These are the Linux distributions that are developed and actively
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=286
- Fix gh-pages deployment
poetry install was not called, thus sphinx was not present
- Bump version: 10.2.13 → 10.2.14
- Drop use of travis-sphinx
According to the documentation of peaceiris/actions-gh-pages
the sphinx-build output can be directly consumed to publish
to github pages
- Allow stderr data in CommandProcess
Enhance poll_show_progress() method to allow polling on
stderr data too. The new parameter with_stderr is used
together with the dnf5 package manager. dnf5 has changed
in a way that a lot of useful information during the
install of packages is printed to stderr. From my perspective
a clear regression to former behavior but we can fix this
in kiwi to poll on both channels. This Fixes#2748
- Support arch attribute for <users> section
Allow to setup users per arch. This Fixes#2737
- Add Debian_12_update repo for testing with typer
Even though we will add support for the typer Cli with kiwi-11
I want our integration test images to be able to build with the
open PR #2751. Debian 12 is the only target in the support matrix
which uses a too old veryion of typer. Therefore to be able to
test this target I built a newer version of typer in an update
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=284
- Bump version: 10.2.11 → 10.2.12
- Fix profile env variable name regression
In the effort of adapting to the latest snapper in Issue #2697
we overlooked the after effect of a different variable name
in the profile environment with regards to $kiwi_btrfs_root_is_snapshot
and $kiwi_btrfs_root_is_snapper_snapshot. Image builds that
references the former variable name would be broken by the change.
This commit makes sure no regression is introduced by providing
both variants. This Fixes bsc#1237772
- Fix grub mkimage call for the ppc platform
The list of modules used to create a grub platform image for
ppc was the same list as used for the x86 bios platform.
This commit fixes this and also cleans up the inconsistency
and misleading names used for creating platform specific
output. This Fixes#2738
- Bump version: 10.2.10 → 10.2.11
- Update box plugin documentation
Add chapter about new container build feature. The
box plugin can now also run the build in containers
- The ubuntu 20.04 github runner is closing down
Make sure to move to another runner for workloads which
still uses ubuntu 20.04
OBS-URL: https://build.opensuse.org/request/show/1248862
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=131
- Fix profile env variable name regression
In the effort of adapting to the latest snapper in Issue #2697
we overlooked the after effect of a different variable name
in the profile environment with regards to $kiwi_btrfs_root_is_snapshot
and $kiwi_btrfs_root_is_snapper_snapshot. Image builds that
references the former variable name would be broken by the change.
This commit makes sure no regression is introduced by providing
both variants. This Fixes bsc#1237772
- Fix grub mkimage call for the ppc platform
The list of modules used to create a grub platform image for
ppc was the same list as used for the x86 bios platform.
This commit fixes this and also cleans up the inconsistency
and misleading names used for creating platform specific
output. This Fixes#2738
- Bump version: 10.2.10 → 10.2.11
- Update box plugin documentation
Add chapter about new container build feature. The
box plugin can now also run the build in containers
- The ubuntu 20.04 github runner is closing down
Make sure to move to another runner for workloads which
still uses ubuntu 20.04
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=282
- Bump version: 10.2.9 → 10.2.10
- Poetry build sdist timestamps set to epoch 0
Newer versions of poetry set the timestamp for all source
files to epoch 0. Such sources are not accepted by e.g
Debian FTP servers and in general I don't like when tools
changes their behavior just like that. This commit forces
an older version of poetry for the purpose of creating the
sdist tarball which then gets published on pypi. The
argumentation for reproducible builds by forcing source
files to a certain timestamp doesn't fly for me. I'm open
for any better solution though. This Fixes#2730
OBS-URL: https://build.opensuse.org/request/show/1245598
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=130
- Poetry build sdist timestamps set to epoch 0
Newer versions of poetry set the timestamp for all source
files to epoch 0. Such sources are not accepted by e.g
Debian FTP servers and in general I don't like when tools
changes their behavior just like that. This commit forces
an older version of poetry for the purpose of creating the
sdist tarball which then gets published on pypi. The
argumentation for reproducible builds by forcing source
files to a certain timestamp doesn't fly for me. I'm open
for any better solution though. This Fixes#2730
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=281
chkstat is a distribution specific tool. If it is
present we use it, if not we don't but it's not worth
a warning. This Fixes#2711
- Allow to run setfiles multi threaded
Use option -T0 for newer setfiles version.
This Fixes#2719
- Add rd.kiwi.dialog.timeout option
Allow to configure the timeout value for dialogs displayed
by the kiwi dracut code. By default the timeout is set to
60 seconds. With the special value "off" the dialog will
never timeout. This Fixes#2718
- Make sure copy actions does not drop context
Use shutil.copy2 to copy files preserving their
attributes in the grub BootLoader space.
This Fixes#2709
- Improve unit test for archive target_dir
Add a test case with absolute path in the target_dir
to make sure we never unpack the archive to the host
system. The actual issue was resolved together with
the implementation in #1953 and commit
78238a993c966d1229cd2fc1f5923673a90de14d
This Fixes#2701
- Fixed profiled overlay imports
When building an image for profile: SOME and providing
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=279
- Bump version: 10.2.7 → 10.2.8
- Increase size for agama integration test build
Agama needs more space to build now
- Fixed agama integration test
rubygem-byebug and rubygem-agama-yast seems to
no longer exist
- Update TW integration tests
Package nscd was dropped from TW
- Fix documentation regarding URI styles
In reference to commit 760a65558f9e2e91d3eaa3a2f9503ff596984b48
the support for iso:// URI types was dropped some time ago.
However, the documentation was not properly updated. This
commit fixes it
- Fix return value of grub helper methods
The grub helper methods to find grub tools returns a
None value if the tool cannot be found. This None value
could be used later in a Command call where it will be
used in a join() command to log the resulting commandline.
This join() call then fails and raises an unhandled error
causing a stack trace in the application. This commit
fixes it
- Added disk validation for duplicate installs
Installing the same image to different storage disks on the
same machine creates device conflicts with unexpected side
OBS-URL: https://build.opensuse.org/request/show/1240498
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=128
- Increase size for agama integration test build
Agama needs more space to build now
- Fixed agama integration test
rubygem-byebug and rubygem-agama-yast seems to
no longer exist
- Update TW integration tests
Package nscd was dropped from TW
- Fix documentation regarding URI styles
In reference to commit 760a65558f9e2e91d3eaa3a2f9503ff596984b48
the support for iso:// URI types was dropped some time ago.
However, the documentation was not properly updated. This
commit fixes it
- Fix return value of grub helper methods
The grub helper methods to find grub tools returns a
None value if the tool cannot be found. This None value
could be used later in a Command call where it will be
used in a join() command to log the resulting commandline.
This join() call then fails and raises an unhandled error
causing a stack trace in the application. This commit
fixes it
- Added disk validation for duplicate installs
Installing the same image to different storage disks on the
same machine creates device conflicts with unexpected side
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=278
- Update system files setup for containers
The attribute provide_system_files creates a meta file in the
root tree named 'systemfiles'. The contents of this file were
produced by just a dump of the package database so far. For
a more generic use of this data some adaptions were needed.
First we allow to skip packages matching a pattern from being
part of the system files. Next we do not put ghost and doc
files into account. And last we handle library files in a different
file named 'systemfiles.libs' where we do not add symlink targets
if the target path is also part of the package. The consumer
of this information is flake-pilot which syncs that library system
files from the host via --copy-links. This allows a more generic
use with regards to versioned libraries e.g. libc
- Drop /dev/pts from bind mount locations
This has created havoc in the Fedora build environments by
fully unmounting /dev/pts and breaking the builders for
subsquent tasks.
This is a partial revert of commit daf1323c5ded7e4e7783205f5e30457b40eb322f.
- Don't take ghost files into account
When creating the system files information do not
take ghost files and artifact files into account
- xorriso: respect efiparttable and gpt_hybrid_mbr
This should make the xorriso-based ISO build path respect the
'efiparttable' and 'gpt_hybrid_mbr' settings when building a
UEFI-compatible image, making it write a GPT disk label by default
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=276
- Bump version: 10.2.2 → 10.2.3
- Update STYLEROOT to SUSE 2022
- Fix broken links in the documentation
- Fix legacy_bios_mode detection
The code in this method does not work correctly if the
firmware is set to 'bios'. In bios only mode the method
returned a false value which is incorrect as it should
return a true value in this case. Without this patch
ISO images will fail to boot because no loader gets
configured.
- Added /dev/pts to bind mount locations
During runtime several kernel filesystems are bind mounted into
the image root system such that programs expecting it can work.
/dev/pts was not needed so far but seems to be a good addition
to the list to make tools like sudo to work properly when called
e.g. from a config.sh script. This Fixes#2686
- Added provide/require system files for containers
Added the attributes provide_system_files and require_system_files
to control the provider and requester of system files in
container image builds. systemfiles is a metadata file which
contains all files from the package database at call time.
It is used in flake-pilot to provision the systemfiles data
from the host into the container instance. One possible use
case for this data is a flake registration which uses a
base container that is derived from a runtime container but
OBS-URL: https://build.opensuse.org/request/show/1228733
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=126
- Update STYLEROOT to SUSE 2022
- Fix broken links in the documentation
- Fix legacy_bios_mode detection
The code in this method does not work correctly if the
firmware is set to 'bios'. In bios only mode the method
returned a false value which is incorrect as it should
return a true value in this case. Without this patch
ISO images will fail to boot because no loader gets
configured.
- Added /dev/pts to bind mount locations
During runtime several kernel filesystems are bind mounted into
the image root system such that programs expecting it can work.
/dev/pts was not needed so far but seems to be a good addition
to the list to make tools like sudo to work properly when called
e.g. from a config.sh script. This Fixes#2686
- Added provide/require system files for containers
Added the attributes provide_system_files and require_system_files
to control the provider and requester of system files in
container image builds. systemfiles is a metadata file which
contains all files from the package database at call time.
It is used in flake-pilot to provision the systemfiles data
from the host into the container instance. One possible use
case for this data is a flake registration which uses a
base container that is derived from a runtime container but
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=275
- Fixed use of fscreateoptions for iso type
The information for fscreateoptions was not passed along to the
tooling if a custom filesystem attribute was specified.
This Fixes#2681
- Allow to derive from multiple containers
Add support for multi inheritance to the derived_from attribute
In the order of a comma seperated list of docker source URI's
a base tree is created. This was possible only with one container
so far and Fixes#2680 as well as jira#OBS-354
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=273
- Add selinux test build to TW
Also update derived docker integration test to latest Leap
- kiwi/schema: Fix allowed value type for ISO publisher and application ID
According to the spec, this should be constrained to 128 characters
but also allow quite a few other special characters (as well as spaces).
We didn't allow spaces in application ID, but allowed too much for Publisher.
Now we set up both correctly.
- Fix setup of kiwi environment variables
Some kiwi env vars are initialized with an empty value
and not overwritten if another value is provided. For
the selected variables an empty value setting is not
allowed because the schema also enforces the value to
be set at least once. In addition a helpful option
named --print-kiwi-env was added to the 'image info'
command which allows to print the environment variables
and their values.
- Add random key support for LUKS encryption
Allow to pass luks="random". In random mode use the
generated keyfile as the only key to decrypt. This is
only secure if the generated initrd also gets protected
e.g. through encryption like it is done with the secure
linux execution on zSystems
- Added development group in pyproject setup
generateDS and other tools are needed and were forgotten
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=272
Move the actions done by the tox target into the
build target and call them there in a clean and easy
to spot sequence. There is no need to call tox to
prepare for the package submission, instead the
checks and poetry runs to prepare for the package
target should be called directly as part of the
build target. In the future we might get rid of
tox completely.
- Bump version: 10.1.17 → 10.1.18
- Fixed zipl caller environment
zipl gets confused with an active sysfs mount inside
the root tree at call time of zipl. This commit
umounts the /sys bind mount in the image tree prior
calling zipl
- Fix s390 test-image-disk build
Add missing kernel links used by suse tools
- Bump version: 10.1.16 → 10.1.17
- Fix coloring of build_status.sh flags
Depending on the place of the status flag the color
setup might fail. This commit fixes it
- Add pytest-container as optional dependency
The pyproject.toml listed pytest-container as dependency
but it is used only to run the container based integration
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=271
- Bump version: 10.1.15 → 10.1.16
- 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
- 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
OBS-URL: https://build.opensuse.org/request/show/1217317
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=124
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=270
- Bump version: 10.1.14 → 10.1.15
- Fixed sphinx_rtd_theme setup
Delete obsolete display_version attribute
- 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.
- 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
- Update TW integration tests
The package x86info was dropped from TW
- 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
- 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"/>
OBS-URL: https://build.opensuse.org/request/show/1216728
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=123
- Fixed sphinx_rtd_theme setup
Delete obsolete display_version attribute
- 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.
- 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
- Update TW integration tests
The package x86info was dropped from TW
- 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
- 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"/>
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=269
- Revert "Install usrmerge for Debian integration test"
This reverts commit 95ac861741f14c4f35611c16328384c18e53dcfb.
Solution needs to be provided in code
- Install usrmerge for Debian integration test
- Support older apt versions for bootstrap
This Fixes#2660
- 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.
- Bump version: 10.1.12 → 10.1.13
- 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
- Use simple quotas (squota) for volumes
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=268
- Bump version: 10.1.10 → 10.1.11
- doc: Add login information test build test images
- Bump version: 10.1.9 → 10.1.10
- 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.
- Add support for erofs
erofs is an alternative readonly filesystem that can be
used as alternative to squashfs. This Fixes#2633
- 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
- limit eif_build requires to fedora >= 42
- Bump version: 10.1.8 → 10.1.9
- Added sshd to nitro-enclave integration test
- Fixed container sync options
Do not exclude/filter any security/xattr capabilities.
- Update container integration test
OBS-URL: https://build.opensuse.org/request/show/1200859
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=122
- 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.
- 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
- limit eif_build requires to fedora >= 42
- Bump version: 10.1.8 → 10.1.9
- Added sshd to nitro-enclave integration test
- Fixed container sync options
Do not exclude/filter any security/xattr capabilities.
- Update container integration test
Add getcap to check on filesystem capabilities
- 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
- Update enclave documentation
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=266
- Fixed enclave documentation
Path to the build test was not correct
- Update test-image-nitro-enclave package list
Fixup package list to match Fedora rawhide
- Move test-image-nitro-enclave to rawhide
- Fix ppc64 chrp bootinfo generation
- Fixed documentation header
Fixed double H1 headers from the boxbuild tweaks chapter.
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=265
- 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.
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=264
- Bump version: 10.1.5 → 10.1.6
- add allowExtraConfig and exportFlags to ovftool options
Add allowExtraConfig and exportFlags to ovftool options
- Bump version: 10.1.4 → 10.1.5
- create EFI/BOOT only if UEFI boot is intended
- 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
- 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
- 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.
OBS-URL: https://build.opensuse.org/request/show/1199243
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=121
- add allowExtraConfig and exportFlags to ovftool options
Add allowExtraConfig and exportFlags to ovftool options
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=263
- create EFI/BOOT only if UEFI boot is intended
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=262
- Bump version: 10.1.3 → 10.1.4
- Add note about guestOS values for vmware ovftools.
- Add note about guestOS values for vmware platform.
- 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
- 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'
- Bump version: 10.1.2 → 10.1.3
- 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
OBS-URL: https://build.opensuse.org/request/show/1198422
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=120
- Add note about guestOS values for vmware ovftools.
- Add note about guestOS values for vmware platform.
- 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
- 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'
- Bump version: 10.1.2 → 10.1.3
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=261
- 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
- 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
- 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.
- 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.
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=260
- Bump version: 10.0.26 → 10.0.27
- 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.
- Bump version: 10.0.25 → 10.0.26
- Revise scripts_testing.rst
- Revise schema_extensions.rst
- 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
- 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
- kiwi_plugin_architecture.rst
- Revise kiwi_from_python.rst
OBS-URL: https://build.opensuse.org/request/show/1190403
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=118
- 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.
- Bump version: 10.0.25 → 10.0.26
- Revise scripts_testing.rst
- Revise schema_extensions.rst
- 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
- 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
- kiwi_plugin_architecture.rst
- Revise kiwi_from_python.rst
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=257
- Fix mocking of test_process_result_bundle_as_rpm
- 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.
- 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
- Bump version: 10.0.23 → 10.0.24
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=256
- Bump version: 10.0.22 → 10.0.23
- 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.
- 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.
- 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
- Fixed leap integration tests
For whatever reason procps is not longer pulled in by the
core dependencies. Thus we have to explicitly request it
- Fix potential race condition in loop detach
The call to 'losetup -d' is in fact an async operation. Once
OBS-URL: https://build.opensuse.org/request/show/1185374
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=116
- 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.
- 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.
- 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
- Fixed leap integration tests
For whatever reason procps is not longer pulled in by the
core dependencies. Thus we have to explicitly request it
- Fix potential race condition in loop detach
The call to 'losetup -d' is in fact an async operation. Once
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=255
- Bump version: 10.0.18 → 10.0.19
- 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.
- Bump version: 10.0.17 → 10.0.18
- package: adjust openSUSE patch
- Bump version: 10.0.16 → 10.0.17
- Fixed box plugin documentation
The provided example was no longer correct according to
changes on the image description referenced in the example
- Add procps to Tumbleweed integration tests
- Add procps to Tumbleweed integration tests
- 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.
- 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.
OBS-URL: https://build.opensuse.org/request/show/1177852
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=114
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=254
- 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.
- Bump version: 10.0.19 → 10.0.20
- Update rawhide integration test
Use new arch attribute for testing in the repository
element of the rawhide/test-image-live-disk integration
test.
- Add support for arch attr in repository element
Allow to provide different repository sections per architecture
- Add --list-profiles to image info
Allow to list available profiles from the processed image
description
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=253
- Fixed box plugin documentation
The provided example was no longer correct according to
changes on the image description referenced in the example
- Add procps to Tumbleweed integration tests
- Add procps to Tumbleweed integration tests
- 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.
- 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
- 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>
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=250
- 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
- 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.
- Update Makefile
Make sure custom patches are part of the package sources
- Bump version: 10.0.13 → 10.0.14
- doc: Document the bls option for the grub bootloader
- 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.
- kiwi/bootloader: restore backward compatibility for grub2 with bls
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=247
- Bump version: 10.0.11 → 10.0.12
- 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
- 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
- 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
- Fix typo in documentation main page
Superfluous format sequence
- 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
- Bump version: 10.0.10 → 10.0.11
- Add schema upgrade opportunity for old schemas
kiwi files using a schema version < 7.4 are no longer supported
OBS-URL: https://build.opensuse.org/request/show/1168512
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=113
- 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
- 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
- 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
- Fix typo in documentation main page
Superfluous format sequence
- 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
- Bump version: 10.0.10 → 10.0.11
- Add schema upgrade opportunity for old schemas
kiwi files using a schema version < 7.4 are no longer supported
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=246
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=244
- 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
- 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
- Bump version: 10.0.6 → 10.0.7
- Add support for %v in bundle format
Allow a placeholder for the entire version text as
provided by the <version> section
- 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
- Bump version: 10.0.5 → 10.0.6
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=243
- Add support for %v in bundle format
Allow a placeholder for the entire version text as
provided by the <version> section
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=242
- 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
- Revise system_update.rst
- Revise system_prepare.rst
- Revise system_create.rst
- Revise system_build.rst
- Temp commit
- Revise image_size, kiwi
- Revise image info
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=241
- 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
- Update schema version in spec file
- 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
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=240
- 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.
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=238
- 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
- Bump version: 10.0.0 → 10.0.1
- Drop ci-kiwi-9-compliant.yml
Delete this action as it existed in the intermediate state
prior the new major version v10.x.x
- Add tzdata to Debian tests
- Fixed sync script for test-image-rpi on Ubuntu
- Install language-pack-en for Ubuntu arm test
- Install locales-all for Debian tests
- Install language-pack-en for Debian tests
- Fix repo setup for Ubuntu arm test
- Install network stack for Debian test
- Request util-linux explicitly for Ubuntu tests
- Add usr-is-merged to package list for bootstrap
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=237
- 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
- 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
- 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:
OBS-URL: https://build.opensuse.org/request/show/1153889
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=111
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
- 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
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=236
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
- Follow up fix for drop of hybrid boot snippets
The following is left over code from the drop of the hybrid
boot templates.
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=235
The commit used a wrong e-mail address which should not
land in the created changes file for the packaging
- Apply changelog fixes by glob
Does not require Makefile changes when maintaining branches
- 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
Signed-off-by: David Cassany <dcassany@suse.com>
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=234
- Disable workflow runs from master
The following github actions will be disabled from master
because they are expected to run from main:
- ci-publish-pages.yml
- ci-publish-to-pypi.yml
- ci-update-build-tests.yml
- Bump version: 9.25.21 → 9.25.22
- 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
- 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
OBS-URL: https://build.opensuse.org/request/show/1140588
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=109
The following github actions will be disabled from master
because they are expected to run from main:
- ci-publish-pages.yml
- ci-publish-to-pypi.yml
- ci-update-build-tests.yml
- Bump version: 9.25.21 → 9.25.22
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=232
- Update test-image-MicroOS
Incorporate latest changes from upstream MicroOS and
also add an encrypted profile build for testing
- Bump version: 9.25.18 → 9.25.19
- Fix typo in workflow overview doc section
- Add missing documentation for oem-unattended-id
- 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
- Update mailmap
- 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
OBS-URL: https://build.opensuse.org/request/show/1132074
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=108
Incorporate latest changes from upstream MicroOS and
also add an encrypted profile build for testing
- Bump version: 9.25.18 → 9.25.19
- Fix typo in workflow overview doc section
- Add missing documentation for oem-unattended-id
- 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
- Update mailmap
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=231
- Bump version: 9.25.16 → 9.25.17
- 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
- Allow test-image-disk-ramdisk to be build locally
- Bump version: 9.25.15 → 9.25.16
- 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
- Bump version: 9.25.14 → 9.25.15
- Make codacy happy
- 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
- Bump version: 9.25.13 → 9.25.14
- Update pypi release to trusted workflow
OBS-URL: https://build.opensuse.org/request/show/1118210
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=107
- 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
- Allow test-image-disk-ramdisk to be build locally
- Bump version: 9.25.15 → 9.25.16
- 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
- Bump version: 9.25.14 → 9.25.15
- Make codacy happy
- 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
- Bump version: 9.25.13 → 9.25.14
- Update pypi release to trusted workflow
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=230
- Bump version: 9.25.11 → 9.25.12
- 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.
- Update x86/tumbleweed/test-image-systemd-boot
systemd package has been splitted and provides
systemd-boot in an extra package now
- 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
OBS-URL: https://build.opensuse.org/request/show/1103984
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=106
- 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.
- Update x86/tumbleweed/test-image-systemd-boot
systemd package has been splitted and provides
systemd-boot in an extra package now
- 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
- Bump version: 9.25.10 → 9.25.11
- remove trailing whitespace
- rpm spec: add missing requires of typing_extensions for python < 3.8
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=229
- 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>
- Do not depend on dnf for SUSE ALP
- 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
- Add cpio to core systemdeps requires list
- Bump version: 9.24.59 → 9.24.60
- Allow to create plain cpio archives
Allow to create plain cpio archives to serve the idea
of the mkosi initrd concept
- Fix restoration of grub2-install (bsc#1210948)
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=228
- Adding a comment to explain the s390 specific path
Signed-off-by: David Cassany <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>
- Expand DASD partition table with parted
Signed-off-by: David Cassany <dcassany@suse.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
- Add parted dependency for s390
Signed-off-by: David Cassany <dcassany@suse.com>
- Bump version: 9.24.57 → 9.24.58
- Build leap btrfs test without root as snapshot
So far no btrfs integration test without root as snapshot existed
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=227
- 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
- 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>
- 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
- 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
- Delete CentOS v7 build tests
CentOS v7 is EOL for kiwi image build tests
- Allow to specify fixed size for the root partition
So far the last partition (typically root) in the partition table
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=226
- Allow to pass credentials as file reference
- 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
- Add type hints for OCI and APPX classes
- Bump version: 9.24.53 → 9.24.54
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=225
- Bump version: 9.24.48 → 9.24.49
- Fixed test-image-vagrant
virtualbox-guest-tools obsoletes virtualbox-guest-x11
- 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.
- 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).
- List riscv64 as a valid architecture in the schemas
This is needed so that architecture filters on riscv64 specifics can
be defined.
- 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
OBS-URL: https://build.opensuse.org/request/show/1031379
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=102
- Fixed test-image-vagrant
virtualbox-guest-tools obsoletes virtualbox-guest-x11
- 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.
- 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).
- List riscv64 as a valid architecture in the schemas
This is needed so that architecture filters on riscv64 specifics can
be defined.
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=224
- 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
- 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
- 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
- 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
- Added a NOTE: section to explain the finer points of adding tools to a
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=221
- 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.
- 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
- Fixed CentOS-8 repo setup
- Bump version: 9.24.43 → 9.24.44
- 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
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=220
- 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
- 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(;)
- Bump version: 9.24.39 → 9.24.40
- 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
- Install all of QEMU to Ubuntu arm integration test
- rename user to ubuntu for Ubuntu integration test
- Bump version: 9.24.38 → 9.24.39
- Move to sphinx>=5.0.0
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=219
- 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.
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=218
- 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
- Update ubuntu integration tests
Build them against latest release (jammy).
This Fixes#2128
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=217
- 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.
- Bump version: 9.24.32 → 9.24.33
- 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.
- 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.
- Update devel packages helper
Added trang as needed when working on the schema
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=216
- Bump version: 9.24.30 → 9.24.31
- 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.
- 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)
- 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
- Don't compress .appx containers (#2106)
The container is actually inside and already compressed.
- 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
OBS-URL: https://build.opensuse.org/request/show/969537
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=95
- 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.
- 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)
- 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
- Don't compress .appx containers (#2106)
The container is actually inside and already compressed.
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=215
- 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
- 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
- Style changes in container docs
Reformulate the container building guide a bit
- Update schema docs
Signed-off-by: David Cassany <dcassany@suse.com>
- Provide schema version v7.5 in spec
- Update descriptions to schema v7.5
- Update cron for security scorecard
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=214
- 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
- Bump version: 9.24.21 → 9.24.22
- 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
- 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.
- build-tests: Update CentOS 8 test appliance to CentOS Stream 8
CentOS Linux 8 is now EOL, so switch over to CentOS Stream 8.
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=213
- Bump version: 9.24.20 → 9.24.21
- 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.
- Bump version: 9.24.19 → 9.24.20
- 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
- Followup fix for force deleting debian packages
Pass --force-depends to allow uninstall even if the
dependency checker complains
- Fix use of xattrs for container sync
when syncing data for containers only a subset of xattr
attributes can be applied. This Fixes#2009
- Bump version: 9.24.18 → 9.24.19
OBS-URL: https://build.opensuse.org/request/show/951342
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=92
- 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.
- Bump version: 9.24.19 → 9.24.20
- 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
- Followup fix for force deleting debian packages
Pass --force-depends to allow uninstall even if the
dependency checker complains
- Fix use of xattrs for container sync
when syncing data for containers only a subset of xattr
attributes can be applied. This Fixes#2009
- Bump version: 9.24.18 → 9.24.19
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=212
- Bump version: 9.24.15 → 9.24.16
- 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
- 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
- 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.
OBS-URL: https://build.opensuse.org/request/show/946017
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=89
- 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.
- 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>
- 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
- kiwi-repart: Fix spelling error in source code comment
- Fix multiple minor spelling errors in documentation
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=210
- 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
- Fixed MicroOS build test
snapper default config has moved from /etc to /usr/share
- Bump version: 9.24.8 → 9.24.9
- Bump version: 9.24.7 → 9.24.8
- 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
- Force key attribute from signing element to be treated as a URI
Signed-off-by: David Cassany <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>
- Move static sle15 integration test to git
- Bump version: 9.24.6 → 9.24.7
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=209
- 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
- Bump version: 9.24.4 → 9.24.5
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=208
- Make sure embedded test exposes the kernel
- 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
- Fixed type annotations for LuksDevice class
- Fixed repo setup for test-image-embedded
Use obsrepositories
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=207
- 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
- Bump version: 9.23.62 → 9.23.63
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=206
- Bump version: 9.23.53 → 9.23.54
- 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
- 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
OBS-URL: https://build.opensuse.org/request/show/917454
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=82
- 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
- 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.
- Allow to set --logfile for result namespace
Setting a logfile for e.g 'kiwi-ng result bundle ...'
is useful and should be possible
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=205
- 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
- Fixed MicroOS integration test
With ignition/combustion in place it's not allowed
to use tmp as a subvolume
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=204
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=203
- Bump version: 9.23.48 → 9.23.49
- 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.
- Bump version: 9.23.47 → 9.23.48
- Fixed LVM get_volumes
Due to the change on the temporary directory yet another
error in the volume manager classes for LVM got exposed.
- Bump version: 9.23.46 → 9.23.47
- 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.
- Bump version: 9.23.45 → 9.23.46
OBS-URL: https://build.opensuse.org/request/show/910293
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=81
- 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.
- Bump version: 9.23.47 → 9.23.48
- Fixed LVM get_volumes
Due to the change on the temporary directory yet another
error in the volume manager classes for LVM got exposed.
- Bump version: 9.23.46 → 9.23.47
- 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.
- Bump version: 9.23.45 → 9.23.46
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=202
- Bump version: 9.23.42 → 9.23.43
- 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
- Bump version: 9.23.41 → 9.23.42
- Fixed fedora integration test builds
Maintain the repos in the obs prj config which prevents
the weird "nothing provides kernel-obs-build" error
- Bump version: 9.23.40 → 9.23.41
- Remove util-linux-systemd & util-linux Requires from dracut-kiwi-overlay
These dependencies are pulled in via dracut-kiwi-lib.
- Add missing util-linux-systemd Requires to dracut-kiwi-[live,libs]
- Fixed test-image-orthos integration test
The test was missing btrfs_root_is_snapshot which is required
when using btrfs on tumbleweed.
- 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
OBS-URL: https://build.opensuse.org/request/show/905081
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=80
- Fixed fedora integration test builds
Maintain the repos in the obs prj config which prevents
the weird "nothing provides kernel-obs-build" error
- Bump version: 9.23.40 → 9.23.41
- Remove util-linux-systemd & util-linux Requires from dracut-kiwi-overlay
These dependencies are pulled in via dracut-kiwi-lib.
- Add missing util-linux-systemd Requires to dracut-kiwi-[live,libs]
- Fixed test-image-orthos integration test
The test was missing btrfs_root_is_snapshot which is required
when using btrfs on tumbleweed.
- 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
- Bump version: 9.23.39 → 9.23.40
- Mount dev and proc filesystems prior dracut
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=200
- Stop plymouth also for progress dialogs
- Prevent explicit man page compression
The manual pages are compressed by the packager tooling.
There is no need to do this ourselves
- Bump version: 9.23.29 → 9.23.30
- Increase integration tests boot timeout
Increase integration tests timeout from 2sec to 10sec
- 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
- 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
- Update documentation qemu calls
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=199
- Upgrade tests accoring to #1805
This commit is a follow up of #1805 which missed to update the related
unit test.
- 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.
- 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
- Update Debian integration test for UEFI testing
Updated the Virtual disk profile to make use of the EFI
secure boot feature.
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=198
- 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
- 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
- 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
- Bump version: 9.23.23 → 9.23.24
- Decommission obsolete code reaching EOL
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=197
- Bump version: 9.23.21 → 9.23.22
- 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.
- Bump version: 9.23.20 → 9.23.21
- 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
- Add Strong Typing to builder APIs
- 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
OBS-URL: https://build.opensuse.org/request/show/880676
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=76
- 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.
- Bump version: 9.23.20 → 9.23.21
- 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
- Add Strong Typing to builder APIs
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=196
- 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
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=195
- Bump version: 9.23.15 → 9.23.16
- 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
- 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
- Add strong typing for filesystem classes
This commit strong typing for FileSystem* classes.
Part of #1644
- 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
- 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
- Delete legacy oem build test from leap
The legacy custom kiwi boot test will only continue
OBS-URL: https://build.opensuse.org/request/show/873030
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=74
- 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
- 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
- Add strong typing for filesystem classes
This commit strong typing for FileSystem* classes.
Part of #1644
- 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
- 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
- Delete legacy oem build test from leap
The legacy custom kiwi boot test will only continue
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=194
- Update documentation
Mention the cross arch build capability of the boxbuild
command. Also update the example box used in the self
container build chapter
- 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
- Update build_status helper for box plugin
The suse box has been renamed to tumbleweed
- Update documentation
Fixed link list to integration tests
- Added rawhide test status to build_status helper
- Added Fedora Rawhide integration tests
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=193
- Bump version: 9.23.11 → 9.23.12
- 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
- Bump version: 9.23.10 → 9.23.11
- 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
- Bump version: 9.23.9 → 9.23.10
- 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
- Added leap box to be shown by build_status helper
- 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
- Bump version: 9.23.8 → 9.23.9
OBS-URL: https://build.opensuse.org/request/show/868394
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=73
- 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
- Bump version: 9.23.10 → 9.23.11
- 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
- Bump version: 9.23.9 → 9.23.10
- 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
- Added leap box to be shown by build_status helper
- 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
- Bump version: 9.23.8 → 9.23.9
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=192
- Bump version: 9.23.4 → 9.23.5
- Update contributing link in README
- Bump version: 9.23.3 → 9.23.4
- 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
- Bump version: 9.23.2 → 9.23.3
- 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.
- Bump version: 9.23.1 → 9.23.2
- 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
- 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
OBS-URL: https://build.opensuse.org/request/show/863255
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=72
- Update contributing link in README
- Bump version: 9.23.3 → 9.23.4
- 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
- Bump version: 9.23.2 → 9.23.3
- 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.
- Bump version: 9.23.1 → 9.23.2
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=191
- Bump version: 9.22.0 → 9.22.1
- 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
- Bump version: 9.21.26 → 9.22.0
- 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
- 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
- Fixed PackageManager decorator in unit test
Implement patch decorators for factories consistently
- 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
- 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.
- Fixed spec file microdnf requirement
SUSE/SLES doesn't provide microdnf within the official channels yet
- 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
- 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
- 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
- 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
OBS-URL: https://build.opensuse.org/request/show/854171
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=71
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=190
- 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
- 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
- Fixed PackageManager decorator in unit test
Implement patch decorators for factories consistently
- 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
- Add DNF as a proper dependency for openSUSE
This is required so that OBS can build openSUSE containers and appliances
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=189
- Bump version: 9.21.25 → 9.21.26
- Fixed dnf plugin config setup
Only create a dnf plugin config if the plugin config directory
to store that file exists in the system
- Set --releasever=0 for microdnf
To allow microdnf to work from an empty root directory
we need to set the release version to zero
- Use custom varsdir for dnf builds
- 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
- Fixed dcounter.c flaw report
Check buffer boundaries if used in a loop
- Fixed dcounter.c flaw report
Variable scope can be reduced and useless value assignment.
- 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
- Move tools README to ReST
OBS-URL: https://build.opensuse.org/request/show/849700
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=70
- Fixed dnf plugin config setup
Only create a dnf plugin config if the plugin config directory
to store that file exists in the system
- Set --releasever=0 for microdnf
To allow microdnf to work from an empty root directory
we need to set the release version to zero
- Use custom varsdir for dnf builds
- 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
- Fixed dcounter.c flaw report
Check buffer boundaries if used in a loop
- Fixed dcounter.c flaw report
Variable scope can be reduced and useless value assignment.
- 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
- Move tools README to ReST
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=188
- Bump version: 9.21.22 → 9.21.23
- 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.
- Bump version: 9.21.21 → 9.21.22
- Fixed package manager api inconsistency
The method post_process_install_requests_bootstrap in the
zypper package manager was missing an argument
- Bump version: 9.21.20 → 9.21.21
- 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
- Fix quick start guide build command
OBS-URL: https://build.opensuse.org/request/show/846180
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=69
- 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.
- Bump version: 9.21.21 → 9.21.22
- Fixed package manager api inconsistency
The method post_process_install_requests_bootstrap in the
zypper package manager was missing an argument
- Bump version: 9.21.20 → 9.21.21
- 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
- Fix quick start guide build command
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=187
- Deleted yast from test-image-qcow-openstack
yast is not part of the testing queue in kiwi integration tests
- 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
- 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
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=186
- Update outdated OBS User Guide Links
- 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
- 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
- Bump version: 9.21.17 → 9.21.18
- 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.
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=185
- 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.
- Bump version: 9.21.15 → 9.21.16
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=184
- 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
- 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
- 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
- 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
- Use pragma: no cover to skip non reachable code
Instead of placing the file into .coveragerc use the
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=183
- 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
- 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.
- Bump version: 9.21.12 → 9.21.13
- 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
- Cosmetic update for build status helper
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=182
- 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.
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=181
- 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
- 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.
- Bump version: 9.21.9 → 9.21.10
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=180
- 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
- Fixed GCE integration test build
nothing provides google-compute-engine-init
- Fixed bootloader grub copy SameFileError exception
Only copy the file if the given source and destination are
not the same file
- 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
- Bump version: 9.21.5 → 9.21.6
- 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
- Fixed code logic in resize_filesystem method
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=179
- 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
- Global variables (#1485)
* Fix according to PEP8
* Refactor global variables pythonic way
* Remove unused import
- Add locale configuration hints in docs
- Add missing decorator for static methods
- Bump version: 9.21.1 → 9.21.2
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=178
- Fixed test-image-qcow-openstack
Nothing provides libyui-ncurses-pkg11, yast2-trans-en_US in
TW anymore
- 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.
- Ignore MyPy cache
- Ignore VSCode cache
- 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.
- Fixed permissions of custom boot image root dir
When building a custom kiwi initrd the root directory
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=177
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=174
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=172
- Fix default repositories for APT
This commit fixes the default repositories configuration for APT.
Fixes#1439
- Include recommend for gpg tool
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=170
- 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.
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=169
- 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.
- Bump version: 9.20.6 → 9.20.7
- 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.
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=168
- 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
- Bump version: 9.19.9 → 9.19.10
- 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/request/show/764217
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=55
- 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
- Bump version: 9.19.7 → 9.19.8
- 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/request/show/758475
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=54
- 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
- Bump version: 9.19.6 → 9.19.7
- 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/request/show/755480
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=53
- 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
- Bump version: 9.18.30 → 9.18.31
- 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
- Bump version: 9.18.28 → 9.18.29
- 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
- Bump version: 9.18.27 → 9.18.28
- Delete left over print statement from unit test
OBS-URL: https://build.opensuse.org/request/show/746311
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=52
- 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
- Bump version: 9.18.28 → 9.18.29
- 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
- Bump version: 9.18.27 → 9.18.28
- Delete left over print statement from unit test
- 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
- 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`.
OBS-URL: https://build.opensuse.org/request/show/743848
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=50
- Bump version: 9.18.28 → 9.18.29
- 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
- Bump version: 9.18.27 → 9.18.28
- Delete left over print statement from unit test
- 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
- 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`.
OBS-URL: https://build.opensuse.org/request/show/743848
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=50
- 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
- Bump version: 9.18.8 → 9.18.9
- 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.
- 99-kiwi-lib requires rmdir, install it
Fixes bsc#1143033
- Bump version: 9.18.7 → 9.18.8
- 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
OBS-URL: https://build.opensuse.org/request/show/720209
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=45
- Bump version: 9.18.8 → 9.18.9
- 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.
- 99-kiwi-lib requires rmdir, install it
Fixes bsc#1143033
- Bump version: 9.18.7 → 9.18.8
- 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
OBS-URL: https://build.opensuse.org/request/show/720209
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=45
- 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
- Bump version: 9.17.40 → 9.17.41
- 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/request/show/713571
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=43
- Bump version: 9.17.40 → 9.17.41
- 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/request/show/713571
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=43
- 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
- Bump version: 9.17.38 → 9.17.39
- 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/request/show/705193
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=42
- Bump version: 9.17.38 → 9.17.39
- 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/request/show/705193
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=42
- 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
- Bump version: 9.17.30 → 9.17.31
- 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/request/show/685857
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=38
- Bump version: 9.17.30 → 9.17.31
- 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/request/show/685857
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=38
- 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
- Bump version: 9.17.14 → 9.17.15
- 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/request/show/670306
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=37
- Bump version: 9.17.14 → 9.17.15
- 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/request/show/670306
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=37
- 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
- Bump version: 9.17.6 → 9.17.7
- 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/request/show/663362
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=35
- Bump version: 9.17.6 → 9.17.7
- 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/request/show/663362
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=35
- 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
- Bump version: 9.16.26 → 9.16.27
- 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/request/show/643192
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=33
- Bump version: 9.16.26 → 9.16.27
- 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/request/show/643192
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=33
- 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
- Bump version: 9.16.17 → 9.16.18
- 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/request/show/638661
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=32
- Bump version: 9.16.17 → 9.16.18
- 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/request/show/638661
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=32
- 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
- Update pxe server setup documentation
Delete the suggested modifications to /etc/sysconfig/atftpd
and trust the defaults provided by the package
- 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
- use more meaningful variable names
- Fix baseStripUnusedLibs config method
This commit arguments handling of the baseStripUnusedLibs
that was not prepared to handle quoted variable containing a list.
Fixes#798
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=117
- Bump version: 9.16.5 → 9.16.6
- Fix result bundle command
This commits fixes a regression introduced in 98c9c77a
- Bump version: 9.16.4 → 9.16.5
- 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
- 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)
OBS-URL: https://build.opensuse.org/request/show/626923
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=30
- Bump version: 9.16.5 → 9.16.6
- Fix result bundle command
This commits fixes a regression introduced in 98c9c77a
- Bump version: 9.16.4 → 9.16.5
- 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
- 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)
OBS-URL: https://build.opensuse.org/request/show/626923
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=30
- update vagrant doc chapter per review by Tom
- 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
- Use xattr 0.9.3
Latest xattr is broken on pip
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=116
- 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"
- Prevent building custom efi image
If the distribution provides a prebuilt efi image kiwi
should use it instead of building its own image.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=113
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=112
- Move fedora integration test build to fc28 distro
- Bump version: 9.15.3 → 9.15.4
- 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
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=111
- 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
- Added documentation for config-cdroot archive
- 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
- Verify file does not exist before creating symlink
- Add service dependencies in generators
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=110
- Bump version: 9.15.1 → 9.15.2
- Fix zypper add lock operations
This commit fixes the arguments passed to zypper in add lock
operations.
- Add correct GPL-3.0-or-later license
Add the correct license reference in the spec License field
Fixes#732
- 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
OBS-URL: https://build.opensuse.org/request/show/609805
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=28
- Bump version: 9.15.1 → 9.15.2
- Fix zypper add lock operations
This commit fixes the arguments passed to zypper in add lock
operations.
- Add correct GPL-3.0-or-later license
Add the correct license reference in the spec License field
Fixes#732
- 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
OBS-URL: https://build.opensuse.org/request/show/609805
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=28
- Fix zypper add lock operations
This commit fixes the arguments passed to zypper in add lock
operations.
- Add correct GPL-3.0-or-later license
Add the correct license reference in the spec License field
Fixes#732
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=108
- Bump version: 9.15.0 → 9.15.1
- Add a chapter for uninstall package requests in docs (#726)
Add a chapter for uninstall package requests in docs
- 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)
- 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
- Bump version: 9.14.7 → 9.15.0
OBS-URL: https://build.opensuse.org/request/show/605755
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=27
- Bump version: 9.15.0 → 9.15.1
- Add a chapter for uninstall package requests in docs (#726)
Add a chapter for uninstall package requests in docs
- 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)
- 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
- Bump version: 9.14.7 → 9.15.0
OBS-URL: https://build.opensuse.org/request/show/605755
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=27
- Add a chapter for uninstall package requests in docs (#726)
Add a chapter for uninstall package requests in docs
- 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)
- 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
- Bump version: 9.14.7 → 9.15.0
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=106
- Bump version: 9.14.6 → 9.14.7
- 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
- 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
OBS-URL: https://build.opensuse.org/request/show/604053
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=26
- Bump version: 9.14.6 → 9.14.7
- 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
- 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
OBS-URL: https://build.opensuse.org/request/show/604053
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=26
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=104
- Extend test-image-azure integration test
Use xfs as filesystem and set a tag to also test image tags
- 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
- Add test for the utils class StringToSize
This commit adds a couple of unit tests for the StringToSize class.
- Bump version: 9.14.4 → 9.14.5
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=103
- Bump version: 9.14.1 → 9.14.2
- 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
- Check partition table after cow part creation
Proceed with the persistent write partition setup only
if the cow partition could have been created successfully
- 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
OBS-URL: https://build.opensuse.org/request/show/595114
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=25
- Bump version: 9.14.1 → 9.14.2
- 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
- Check partition table after cow part creation
Proceed with the persistent write partition setup only
if the cow partition could have been created successfully
- 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
OBS-URL: https://build.opensuse.org/request/show/595114
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=25
- 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
- Check partition table after cow part creation
Proceed with the persistent write partition setup only
if the cow partition could have been created successfully
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=101
- 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
- fix vmx fileName parameter, bsc#1084157
- Update schema version in free schema doc generator
- Update schema version in headline of doc chapter
- Bump version: 9.13.9 → 9.14.0
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=100
- Bump version: 9.13.9 → 9.14.0
- Rebuild online schema documentation
- XSL Auto update descriptions due to schema change
- 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
- Add efiparttable type attribute
This commit allows to choose the partition table type for efi firmwares
OBS-URL: https://build.opensuse.org/request/show/591104
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=23
- Bump version: 9.13.9 → 9.14.0
- Rebuild online schema documentation
- XSL Auto update descriptions due to schema change
- 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
- Add efiparttable type attribute
This commit allows to choose the partition table type for efi firmwares
OBS-URL: https://build.opensuse.org/request/show/591104
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=23
- Rebuild online schema documentation
- XSL Auto update descriptions due to schema change
- 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
- Add efiparttable type attribute
This commit allows to choose the partition table type for efi firmwares
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=98
- Bump version: 9.13.7 → 9.13.8
- Fixed base package requires
kpartx is used by kiwi but was not required in spec
- Update gitignore
Do not manage changes in .pytest_cache
- 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
- Bump version: 9.13.6 → 9.13.7
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=97
- Bump version: 9.13.4 → 9.13.5
- 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
- Bump version: 9.13.3 → 9.13.4
- 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.
- Bump version: 9.13.2 → 9.13.3
OBS-URL: https://build.opensuse.org/request/show/583474
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=22
- Bump version: 9.13.4 → 9.13.5
- 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
- Bump version: 9.13.3 → 9.13.4
- 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.
- Bump version: 9.13.2 → 9.13.3
OBS-URL: https://build.opensuse.org/request/show/583474
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=22
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=94
- 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.
- Bump version: 9.13.2 → 9.13.3
- The order of the options for mkisofs matters
Setting -eltorito-platform after -b causes mkisofs to fail
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=93
- Only delete sub path if not empty
- Fixed package lists for azure and ec2 build tests
- 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
- Cleanup config functions shell coding
- Delete obsolete/unused methods
- Add functions.sh to shellcheck
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=91
- Bump version: 9.12.9 → 9.13.0
- Fixup grub2 theme setup
The presence of a background file was mandatory for kiwi to
use the theme. But the background information is optional
- 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
- 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
OBS-URL: https://build.opensuse.org/request/show/578322
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=20
- Bump version: 9.12.9 → 9.13.0
- Fixup grub2 theme setup
The presence of a background file was mandatory for kiwi to
use the theme. But the background information is optional
- 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
- 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
OBS-URL: https://build.opensuse.org/request/show/578322
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=20
- Bump version: 9.12.8 → 9.12.9
- 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
- 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
- Initial support for building Debian/Ubuntu packages in spec
This adds support for producing the main kiwi package as well as the
OBS-URL: https://build.opensuse.org/request/show/576012
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=19
- Bump version: 9.12.8 → 9.12.9
- 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
- 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
- Initial support for building Debian/Ubuntu packages in spec
This adds support for producing the main kiwi package as well as the
OBS-URL: https://build.opensuse.org/request/show/576012
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=19
- Fixup grub2 theme setup
The presence of a background file was mandatory for kiwi to
use the theme. But the background information is optional
- 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
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=88
- 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
- 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
- Initial support for building Debian/Ubuntu packages in spec
This adds support for producing the main kiwi package as well as the
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=87
- Bump version: 9.12.7 → 9.12.8
- Exclude install source device from target list
- 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.
- 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
- Cleanup misleading method name
- Fixed coverage report setup
Latest version of the coverage module requires a report setup
OBS-URL: https://build.opensuse.org/request/show/573218
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=18
- Bump version: 9.12.7 → 9.12.8
- Exclude install source device from target list
- 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.
- 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
- Cleanup misleading method name
- Fixed coverage report setup
Latest version of the coverage module requires a report setup
OBS-URL: https://build.opensuse.org/request/show/573218
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=18
- Exclude install source device from target list
- 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.
- 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
- Cleanup misleading method name
- Fixed coverage report setup
Latest version of the coverage module requires a report setup
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=85
- Update per review by Tom
- Update per review by David
- Update per review by Tom
- 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
- Update pre review by Tom
- Update per review by Tom
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=84
- Bump version: 9.12.5 → 9.12.6
- 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.
- Bump version: 9.12.4 → 9.12.5
- 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
- uboot-setup-panda.tgz was readded by mistake as boot hooks are no longer needed
OBS-URL: https://build.opensuse.org/request/show/570609
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=17
- Bump version: 9.12.5 → 9.12.6
- 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.
- Bump version: 9.12.4 → 9.12.5
- 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
- uboot-setup-panda.tgz was readded by mistake as boot hooks are no longer needed
OBS-URL: https://build.opensuse.org/request/show/570609
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=17
- 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
- uboot-setup-panda.tgz was readded by mistake as boot hooks are no longer needed
- Adding opensuse ports repository
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=80
- 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
- Bump version: 9.12.2 → 9.12.3
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=79
- Fixed dracut-kiwi-oem-dump requires setup
on rhel/fedora multipath is provided by device-mapper-multipath
- Fix build tests to match new locale setting strategy (#586)
- 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
- Fixed build tests for azure and ec2
Packages yast2-storage and recode no longer provided
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=78
- Update build test image descriptions
Update to latest schema by auto conversion and delete use
of oemboot kiwi code by switching to dracut
- 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
- No need to actively stop the dialog service
- Added required packages for dmraid and multipath
- Added handling for dmraid and multipath devices
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=77
- Bump version: 9.11.29 → 9.11.30
- Deleted syslinux from ppc/oemboot/suse-SLES15
syslinux is not provided for ppc. This Fixes bsc#1073310
[boot] fix double quote in grub menu which makes kernel updates for CentOS / RHEL / Fedora break grub.cfg
- 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.
OBS-URL: https://build.opensuse.org/request/show/563059
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=16
- Bump version: 9.11.29 → 9.11.30
- Deleted syslinux from ppc/oemboot/suse-SLES15
syslinux is not provided for ppc. This Fixes bsc#1073310
[boot] fix double quote in grub menu which makes kernel updates for CentOS / RHEL / Fedora break grub.cfg
- 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.
OBS-URL: https://build.opensuse.org/request/show/563059
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=16
- Deleted syslinux from ppc/oemboot/suse-SLES15
syslinux is not provided for ppc. This Fixes bsc#1073310
[boot] fix double quote in grub menu which makes kernel updates for CentOS / RHEL / Fedora break grub.cfg
- 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.
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=75
- 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
- Bump version: 9.11.27 → 9.11.28
- Fixed ec2 and azure test builds
cryptconfig is no longer provided
- Bump version: 9.11.26 → 9.11.27
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=74
- Bump version: 9.11.21 → 9.11.22
- 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
- Bump version: 9.11.20 → 9.11.21
- package: Prepare for Tumbleweed moving to suse_version 1550
- Bump version: 9.11.19 → 9.11.20
- 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
OBS-URL: https://build.opensuse.org/request/show/544423
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=14
- Bump version: 9.11.21 → 9.11.22
- 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
- Bump version: 9.11.20 → 9.11.21
- package: Prepare for Tumbleweed moving to suse_version 1550
- Bump version: 9.11.19 → 9.11.20
- 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
OBS-URL: https://build.opensuse.org/request/show/544423
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=14
- Fixed URL to semver.org in development guide
- Bump version: 9.11.22 → 9.11.23
- Fixed module setup for dracut-kiwi-lib
lsblk tool used in code but missing in dependencies
- 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
- Fixed test-image-azure build test
pam-modules package doesn't exist anymore
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=71
- 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
- Bump version: 9.11.20 → 9.11.21
- package: Prepare for Tumbleweed moving to suse_version 1550
- Bump version: 9.11.19 → 9.11.20
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=70
- 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
- Adding quotes to ensure '%_dbpath' is treated as string
- Fixed ec2 integration test
requirements for unneeded crash package broken
- Fixed ec2 integration test
nothing provides pam-modules
- Removes the hardcoded path of the rpm database
With this commit the rpmdb path is evaluated from the %_dbpath
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=68
- Bump version: 9.11.16 → 9.11.17
- Delete atftp from SLE15 boot descriptions
atftp will not be part of SLE15 per fate#323633.
This Fixes#543
- 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
- Code cleaning and enhancing variables names
- Use usr/lib/rpm if present instead of var/lib/rpm
With this commit OEM recovery tries to backup usr/lib/rpm if present,
OBS-URL: https://build.opensuse.org/request/show/541767
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=13
- Bump version: 9.11.16 → 9.11.17
- Delete atftp from SLE15 boot descriptions
atftp will not be part of SLE15 per fate#323633.
This Fixes#543
- 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
- Code cleaning and enhancing variables names
- Use usr/lib/rpm if present instead of var/lib/rpm
With this commit OEM recovery tries to backup usr/lib/rpm if present,
OBS-URL: https://build.opensuse.org/request/show/541767
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=13
- Delete atftp from SLE15 boot descriptions
atftp will not be part of SLE15 per fate#323633.
This Fixes#543
- 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
- Code cleaning and enhancing variables names
- Use usr/lib/rpm if present instead of var/lib/rpm
With this commit OEM recovery tries to backup usr/lib/rpm if present,
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=66
- Bump version: 9.11.13 → 9.11.14
- Cleanup SLE12 boot image descriptions
- Bump version: 9.11.12 → 9.11.13
- Cleanup SLE boot image descriptions
Don't use packages which does not exist on SLE, Fixes#523
- 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.
- 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
OBS-URL: https://build.opensuse.org/request/show/536422
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=11
- Bump version: 9.11.13 → 9.11.14
- Cleanup SLE12 boot image descriptions
- Bump version: 9.11.12 → 9.11.13
- Cleanup SLE boot image descriptions
Don't use packages which does not exist on SLE, Fixes#523
- 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.
- 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
OBS-URL: https://build.opensuse.org/request/show/536422
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=11
- 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
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=63
- Cleanup SLE boot image descriptions
Don't use packages which does not exist on SLE, Fixes#523
- 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.
- 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.
- Update hooks documentation
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=60
- Cleanup boot descriptions
The still existing kiwi boot descriptions contained wrong
information about no longer existing packages and many
other obsolete information.
- Bump version: 9.11.8 → 9.11.9
- 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
- Keep NVMe drivers in the initrd
Support systems with the root filesystem on a NVMe device
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=59
- 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
- Bump version: 9.3.3 → 9.4.0
- Allow https location as repository source
- 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.
- Added SLE13 distribution matcher
- Update distribution matcher in spec file
- Refactor ContainerBuilder
Use Checksum instance to run a checksum match
Check for existence of base image at earliest opportunity
when constructing a ContainerBuilder
OBS-URL: https://build.opensuse.org/request/show/479991
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=2
- Bump version: 9.3.3 → 9.4.0
- Allow https location as repository source
- 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.
- Added SLE13 distribution matcher
- Update distribution matcher in spec file
- Refactor ContainerBuilder
Use Checksum instance to run a checksum match
Check for existence of base image at earliest opportunity
when constructing a ContainerBuilder
OBS-URL: https://build.opensuse.org/request/show/479991
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=2
- Fixup pxe builder
filesystem image rootfs was not in toplevel
- Bump version: 9.4.0 → 9.4.1
- 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
- Don't create shasum over an md5 file
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=13
- Allow https location as repository source
- 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.
- Added SLE13 distribution matcher
- Update distribution matcher in spec file
- Refactor ContainerBuilder
Use Checksum instance to run a checksum match
Check for existence of base image at earliest opportunity
when constructing a ContainerBuilder
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=12
- Deleted openSUSE 13.2 boot descriptions
- Refactor Uri constructor
Make repo_type an optional parameter, which is only
required if the specified uri leaves a type choice
- Fixup PyPI entry registry
The wrong project url was referenced
- Bump version: 9.3.1 → 9.3.2
- Fixed MANIFEST.in
kiwi.solver code was not included into source archive
OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=1