566 Commits

Author SHA256 Message Date
00294dbb99 Accepting request 1329679 from Virtualization:Appliances:Builder
- Bump version: 10.2.37 → 10.2.38

- Fix booting non-encrypted live images
  activate_luks returned true if the passed blockdev was not luks.

- Fix pytest type hint issue
  Running on pytest < 7 causes an AttributeError:
  module 'pytest' has no attribute 'Config'. Quoting
  the type hint argument to be a string and accessing
  the elements of pytestconfig via getattr() and a
  default value workarounds the issue for older pytest
  versions

- Fix platform mock for kis builder unit testing

- Fix s390 unit test
  Forgot to mock the architecture properly. This commit fixes it

OBS-URL: https://build.opensuse.org/request/show/1329679
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=143
2026-01-29 16:44:48 +00:00
fe16a0e299 Accepting request 1329629 from openSUSE:Factory
Broken live image boot: https://bugzilla.opensuse.org/show_bug.cgi?id=1257389

OBS-URL: https://build.opensuse.org/request/show/1329629
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=142
2026-01-28 14:07:04 +00:00
60951e15b8 Accepting request 1329629 from openSUSE:Factory
Broken live image boot: https://bugzilla.opensuse.org/show_bug.cgi?id=1257389

OBS-URL: https://build.opensuse.org/request/show/1329629
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=142
2026-01-28 14:07:04 +00:00
85a61db7d0 - Fix booting non-encrypted live images
activate_luks returned true if the passed blockdev was not luks.

- Fix pytest type hint issue
  Running on pytest < 7 causes an AttributeError:
  module 'pytest' has no attribute 'Config'. Quoting
  the type hint argument to be a string and accessing
  the elements of pytestconfig via getattr() and a
  default value workarounds the issue for older pytest
  versions

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=308
2026-01-28 10:37:26 +00:00
3e0008c6de Accepting request 1329277 from Virtualization:Appliances:Builder
Update from 10.2.32 to 10.2.37

OBS-URL: https://build.opensuse.org/request/show/1329277
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=141
2026-01-27 15:07:25 +00:00
ca89de1ef0 Accepting request 1329277 from Virtualization:Appliances:Builder
Update from 10.2.32 to 10.2.37

OBS-URL: https://build.opensuse.org/request/show/1329277
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=141
2026-01-27 15:07:25 +00:00
719ad723fa - Bump version: 10.2.37 → 10.2.38
- Fix platform mock for kis builder unit testing

- Fix s390 unit test
  Forgot to mock the architecture properly. This commit fixes it

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=307
2026-01-26 16:27:18 +00:00
a8cd62719f - Bump version: 10.2.36 → 10.2.37
- Move fedora arm build test to dnf5

- Explicitly list dnf as a package to help OBS
  If not mentioned explicitly OBS does not place it into
  the repositories to build the image from

- Move fedora container build test to dnf5

- Move remaining fedora build tests to dnf5

- Reapply "Set CentOS 9 integration tests to use dnf4 explicitly"
  This reverts commit 31a0171bbbc9c8ec8319bff48c7de528082a1486.

- Reapply "Set CentOS 10 integration tests to use dnf4 explicitly"
  This reverts commit 9fe29d9925fd3f0866e7c89c6a9573b1fc310a63.

- Identify the correct binary for DNF4
  This is pretty much the same solution we used back when we supported
  YUM and had to deal with yum vs yum-deprecated.

- Revert "Set CentOS 9 integration tests to use dnf4 explicitly"
  This causes the environment to not have /usr/bin/dnf.
  This reverts commit b2c4760e2f6ae9ac4fa71a622a89445c572217b4.

- Revert "Set CentOS 10 integration tests to use dnf4 explicitly"
  This causes the environment to not have /usr/bin/dnf.
  This reverts commit df77cba989eb80be66fad5c3ce5630287a72e7ea.

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=306
2026-01-26 11:11:38 +00:00
0b019b8e4b - Bump version: 10.2.35 → 10.2.36
- Update CA target distribution name
  Instead of rhel better name it redhat

- Bump version: 10.2.34 → 10.2.35

- Add dracut to strip list
  Make sure legacy image builds which uses kiwi to create
  an initrd keeps dracut such that the initrd format detection
  continuous to work with the new dracut --printconfig option

- Update Fedora integration test
  Use custom partition IDs for the Virtual profiles with
  and without an extra boot partition

- Add documentation about new attributes
  Add information about eficsmpart_id

- Add support for eficsmpart_id attribute
  Allow custom partition number also for the
  EFI CSM (legacy BIOS) partition

- Add documentation about new attributes
  Add information about part_id, efipart_id, rootpart_id
  and bootpart_id

- Added test-image-amazon-linux-layout build test
  This Fixes #2848

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=305
2026-01-07 14:16:48 +00:00
701a038c81 - Bump version: 10.2.33 → 10.2.34
- Minor typo

- Add console setup for Fedora integration test
  Update fedora/test-image-live-disk and setup two output
  consoles and one input console

- Improve grub console setup
  The console attribute in the bootloader section was used to
  target both, output and input console setup using a space separator.
  However, there can be multiple consoles specified for output
  and input consoles and that turns the idea to handle both in
  one attribute into a mess. This commit drops the console attribute
  and offers two new attributes output_console and input_console which
  can define multiple consoles each using space as a separator.
  For example:
  <bootloader ... output_console="console serial" input_console="console"/>
  This change comes with a schema version bump to v8.4
  An automatic XSL transformation template for the old console
  attribute into the new output_console and input_console
  attributes is also part of this commit.
  This Fixes #2886

- Fixed spec file requires
  The package requirement for binutils was set to TW (>=1650)
  only but is also required for SLES16/Leap16 which is 1600
  This commit fixes the condition to match with all required
  distributions and fixes bsc#1253637

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=304
2025-11-25 08:04:48 +00:00
792a4053b5 - Bump version: 10.2.32 → 10.2.33
- Run grub mkconfig with os-prober disabled
  Set GRUB_DISABLE_OS_PROBER=true to the caller environment
  such that it gets consumed via /etc/grub.d/30_os-prober
  This Fixes #2883

- Fixed typo in documentation
  Invalid XML syntax, missing end tag. This Fixes #2882

- References #2474 and #2475 poweroff instead of halt on oem shutdown

- Fix rawhide integration test
  The package shim-ia32 got dropped

- Add test for profiled overlays
  kiwi supports overlay files per profile, but we didn't had a
  proper integration test for it. This commit adds one

- Mount proc when needed
  Using cp -a might lookup in proc/self/.. under certain conditions.
  Make sure to mount proc for config/function that might trigger
  this condition. This Fixes #2876

- Update test-image-custom-partitions test build
  Fix patch files to match with new dracut module dirs

- Update dracut version compat runtime check
  Update check_dracut_module_versions_compatible_to_kiwi to match
  with new dracut module dirs which have changed due to recommended

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=303
2025-09-11 10:28:11 +00:00
15dd46d1b2 Accepting request 1298900 from Virtualization:Appliances:Builder
- 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
2025-08-13 14:22:54 +00:00
0711fcfe9e Accepting request 1298900 from Virtualization:Appliances:Builder
- 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
2025-08-13 14:22:54 +00:00
2b1724e2b4 - 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

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=302
2025-08-11 15:46:57 +00:00
69ebc84f7b - Bump version: 10.2.30 → 10.2.31
- Consolidate device lock into its own method
  Add set_device_lock method which uses udevadm lock preferable
  but also supports an flock fallback in case there is no lock
  command provided via systemd/udev

- Fix bug in shell condition
  The shell code test ... || warn A; warn B will always
  print the warning for B despite the test result. This lead
  to the warning message "Settings from the kiwi description will be ignored"
  to be printed always. This commit fixes it with a clean if/then
  condition

- Fix documentation rendering
  There was an indentation bug which caused the docs to
  render wrong. This commit fixes it

- solver/repository: Handle zstd-compressed metadata files
  `_create_solvables` assumes metadata files are gzip-compressed,
  but modern Fedora ones are not, they are zstd-compressed.
  Signed-off-by: Adam Williamson <awilliam@redhat.com>

- uri: If we fail to resolve the metalink URI, log it
  It's rather useful to know *what* the URI is when something goes
  wrong, after all.
  Signed-off-by: Adam Williamson <awilliam@redhat.com>

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=301
2025-08-01 09:56:13 +00:00
45461c77a3 Accepting request 1296359 from Virtualization:Appliances:Builder
- 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
2025-07-31 15:44:55 +00:00
5f541e7f0d Accepting request 1296359 from Virtualization:Appliances:Builder
- 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
2025-07-31 15:44:55 +00:00
7e828c66ba - 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/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=300
2025-07-29 17:23:00 +00:00
77e65d369f Accepting request 1295613 from Virtualization:Appliances:Builder
- 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
2025-07-26 11:39:41 +00:00
69cf4ef3a8 Accepting request 1295613 from Virtualization:Appliances:Builder
- 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
2025-07-26 11:39:41 +00:00
3dd750a25c - 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/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=299
2025-07-24 17:45:44 +00:00
686de1e0a5 Accepting request 1294365 from Virtualization:Appliances:Builder
- 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
2025-07-20 13:28:14 +00:00
66d55c3256 Accepting request 1294365 from Virtualization:Appliances:Builder
- 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
2025-07-20 13:28:14 +00:00
bd3da389c5 - 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/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=298
2025-07-18 12:02:19 +00:00
9286531a5d - Fix centos/test-image-live-disk-v10
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
2025-07-17 07:36:46 +00:00
7e6df47f0b Accepting request 1291451 from Virtualization:Appliances:Builder
- 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
2025-07-10 21:14:50 +00:00
30aa5fb0a4 Accepting request 1291451 from Virtualization:Appliances:Builder
- 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
2025-07-10 21:14:50 +00:00
781615f6c3 - 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.

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=296
2025-07-09 09:30:16 +00:00
a4322768e4 Accepting request 1288814 from Virtualization:Appliances:Builder
- 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
2025-06-27 21:00:07 +00:00
ca26caddbc Accepting request 1288814 from Virtualization:Appliances:Builder
- 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
2025-06-27 21:00:07 +00:00
b3b5ce1eeb - 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/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=295
2025-06-27 09:22:26 +00:00
f6af6b60ae Accepting request 1288533 from Virtualization:Appliances:Builder
- 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
2025-06-26 12:05:33 +00:00
9a3a0b868a Accepting request 1288533 from Virtualization:Appliances:Builder
- 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
2025-06-26 12:05:33 +00:00
9efb75b0d4 - 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/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=294
2025-06-25 12:24:01 +00:00
f441699eb7 - Allow /boot to be a btrfs subvolume
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
2025-06-04 07:43:39 +00:00
9533fb3cf4 - Bump version: 10.2.23 → 10.2.24
- 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
2025-05-27 09:03:01 +00:00
e95f3e0502 - Bump version: 10.2.22 → 10.2.23
- 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
2025-05-19 11:09:54 +00:00
0e600bffa3 - Bump version: 10.2.21 → 10.2.22
- 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
2025-05-15 12:40:41 +00:00
b061e4aae7 - Bump version: 10.2.20 → 10.2.21
- 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
2025-05-09 09:49:32 +00:00
4d788c5e45 - Bump version: 10.2.19 → 10.2.20
- Fix reencryption master key passphrase
  Make sure to use the correct passphrase for the master
  key such that it can be decrypted with the same credentials
  as before. The credentials reset is a subsequent task
  after reencryption.

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=288
2025-05-05 08:22:13 +00:00
0e2aeeb50b - Bump version: 10.2.18 → 10.2.19
- 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
2025-05-01 18:43:24 +00:00
0ff3d5468b - Bump version: 10.2.17 → 10.2.18
- 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
2025-04-28 14:52:23 +00:00
45888e7ed6 Accepting request 1266167 from Virtualization:Appliances:Builder
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1266167
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=133
2025-04-02 15:09:00 +00:00
54ae93b30a Accepting request 1266167 from Virtualization:Appliances:Builder
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1266167
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=133
2025-04-02 15:09:00 +00:00
a2a4c93595 - Bump version: 10.2.15 → 10.2.16
- Support sourcetype setting on the commandline
  Allow to specifiy the sourcetype(metalink|baseurl|mirrorlist)
  also on the commandline via --set-repo/--add-repo options. So
  far this was only possible as part of the kiwi description file

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=285
2025-03-25 12:20:33 +00:00
3c692e401b - Bump version: 10.2.14 → 10.2.15
- 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
2025-03-25 08:38:06 +00:00
5bb8e8b49d Accepting request 1251687 from Virtualization:Appliances:Builder
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1251687
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=132
2025-03-11 19:43:46 +00:00
c95deb100f Accepting request 1251687 from Virtualization:Appliances:Builder
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1251687
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kiwi?expand=0&rev=132
2025-03-11 19:43:46 +00:00
a67324f333 - Bump version: 10.2.12 → 10.2.13
- Lookup CHRP loader instead of using a static name
  On ppc the CHRP loader name can vary between distributions.
  This commit adds a search method to lookup different ELF
  loader names. In addition an integration test image for
  Fedora was added. This Fixes #2741

OBS-URL: https://build.opensuse.org/package/show/Virtualization:Appliances:Builder/python-kiwi?expand=0&rev=283
2025-03-03 08:42:56 +00:00
cb68bc5421 Accepting request 1248862 from Virtualization:Appliances:Builder
- 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
2025-02-28 16:38:17 +00:00