Compare commits

...

1129 Commits
el8 ... main

Author SHA1 Message Date
Marcus Schäfer
cb58e03024
Update documentation
Delete duplicate information. Stick with the information
provided on the main page and drop the same information
from the overview page. Also fix a typo in the table
of supported distributions
2026-03-11 15:52:25 +01:00
Marcus Schäfer
c87094e425
Bump version: 10.2.43 → 10.2.44 2026-03-11 15:41:20 +01:00
Neal Gompa (ニール・ゴンパ)
8223f68a1c
Merge pull request #2966 from OSInside/verity_support_for_live_images
Add support for verity baked live ISO images
2026-03-11 10:36:52 -04:00
Marcus Schäfer
e941a2db3a
Add support for verity baked live ISO images
Allow to build verity checked live ISO images by setting
verity_blocks in combination with optional rd.kiwi.verity_options
kernel boot options
2026-03-10 22:32:39 +01:00
Neal Gompa (ニール・ゴンパ)
504e8fd843
Merge pull request #2967 from OSInside/fix_spec_file_for_suse
Fix spec file requirements for SUSE
2026-03-10 14:34:56 -04:00
Marcus Schäfer
323f7ddd7f
Fix spec file requirements for SUSE
The suse_version macro changes for code 16.1 to 1610.
Matches based on <= 1600 are going to fail. This commit
adapts the places where the spec uses the macro in this
way. This Fixes jira#PCT-899
2026-03-10 19:29:51 +01:00
Neal Gompa (ニール・ゴンパ)
7e6a28a710
Merge pull request #2965 from OSInside/fix_selinux_context_for_live_images
Fixed missing selinux context setup for live ISOs
2026-03-10 09:00:46 -04:00
Marcus Schäfer
8a11be7523
Fixed missing selinux context setup for live ISOs
When building live ISO images the selinux context was not created
for eventually new created files during the live ISO creation
process. This Fixes OSInside/kiwi-boxed-plugin#99
2026-03-06 16:21:06 +01:00
Neal Gompa (ニール・ゴンパ)
6a1028da25
Merge pull request #2964 from OSInside/add_runtime_check_for_mediacheck_on_non_mbr_tables
Add check_checkmedia_used_with_msdos_table
2026-03-05 05:00:09 -08:00
Marcus Schäfer
e5b14c8953
Add check_checkmedia_used_with_msdos_table
Add check_checkmedia_used_with_msdos_table runtime check
to check if the used partition table type is compatible
with the selected checkmedia/tagmedia tool. So far only
plain MBR tables are supported bei checkmedia.
This Fixes #2722
2026-03-03 15:50:37 +01:00
Neal Gompa (ニール・ゴンパ)
8beae9f913
Merge pull request #2963 from OSInside/fix_ovftype_docs_and_values
OVA support has been moved to open-vmdk
2026-03-02 08:45:41 -08:00
Marcus Schäfer
1172ed6e5e
OVA support has been moved to open-vmdk
With the move to open-vmdk the only ovftype supported is
vmware. Should there be support for other OVA platforms
in the open-vmdk project we are going to add them on
demand. This Fixes #2627
2026-03-02 17:33:54 +01:00
Marcus Schäfer
33ebb4a54a
Merge pull request #2962 from OSInside/aws_isolated_compute_image
Add confidential compute image for AWS
2026-03-02 17:20:02 +01:00
Marcus Schäfer
9387737714
Add confidential compute image for AWS
Add a Trusted Execution Environment in form of an image as
a read-only system that is also dm-verity baked. The image
build provides PCR measuerd UKI image (kernel+initrd+bootloader).
The PCR values can be checked against the attestation document
and can also serve as AWS KMS key to enforce boot restrictions.
The image includes an example workflow in form of an enclave
image also build via kiwi using the native eif_build tool from
AWS. The enclave runs a little server/client example application
which creates the attestion document and sends the enclave
PCR measurements as response back to the Trusted Execution
instance. The image serves as example into the AWS Nitro TPM
Attestation and AWS Nitro Enclaves services to establish a
confidential compute workflow.
2026-03-02 17:14:28 +01:00
Marcus Schäfer
5d08d681ad
Bump version: 10.2.42 → 10.2.43 2026-03-02 13:03:56 +01:00
Neal Gompa (ニール・ゴンパ)
09101e70e2
Merge pull request #2961 from OSInside/fix_resolve_package_list_for_metalink
Update image info --add-repo option argument
2026-03-02 03:30:53 -08:00
Marcus Schäfer
e8489b9303
Update documentation
Add table of supported distributions with better visibility
on the main page
2026-03-02 12:26:16 +01:00
Marcus Schäfer
7513b86d91
Update image info --add-repo option argument
Update the --add-repo argument for image info to work
in the same way as it can be specified in the system prepare/build
commands. This now also allows for using metalink repos from
the commandline as follows:

    kiwi-ng image info \
        --description build-tests/x86/rawhide/test-image-erofs/ \
        --resolve-package-list \
        --ignore-repos \
        --add-repo 'https://mirrors.fedoraproject.org/metalink?repo=rawhide&arch=x86_64,,,,,,,,,,metalink'

This Fixes #2908
2026-03-02 10:47:18 +01:00
Frank Schreiner
eaba7e1055
retry postinst configure with second parameter '0'
retry `postinst configure` with second parameter '0'

As described in #2956 some newer postinst scripts like the one of
libselinux1 fail when called without the second parameter. On the other
hand it turned out that older versions like libgcrypt20 in Debian 12
fail installation if the get a second paramter because of faulty
implmentation.

With this patch kiwi calls it the old way without a second parameter and
retries with 0 as old version if it fails on the first attempt.

* Update unit tests

---------

Co-authored-by: Marcus Schäfer <marcus.schaefer@gmail.com>
2026-02-26 17:33:27 +01:00
Neal Gompa (ニール・ゴンパ)
6d954a4a21
Merge pull request #2958 from OSInside/fix_setup_of_rootpart_uuid_in_profile
Fixed setup of kiwi_rootpartuuid in profile
2026-02-25 05:23:34 -05:00
Marcus Schäfer
acafda96fe
Merge pull request #2957 from M0ses/fix_issue_2956
pass version 0 to `postinst configure`
2026-02-25 11:04:47 +01:00
Marcus Schäfer
40178c979f
Fixed setup of kiwi_rootpartuuid in profile
The PARTUUID value for the root partition is expected
to be present in the profile for any build time.
However, due to a bug certain layouts e.g LUKS or
RAID did try to retrieve the partition UUID from
the wrong device. This commit fixes it.
This Fixes #2949
2026-02-24 16:59:42 +01:00
Frank Schreiner
86151ddb4d
pass version 0 to postinst configure
Fixes: #2956

This patch avoids problems when building images for current Debian Sid
which currently is raising the following error:

```
[   59s] [ ERROR   ]: 08:20:03 | KiwiDebianBootstrapError: KiwiCommandError: chroot: stderr: /kiwi_debpost.rhgtuuvo/libselinux1.deb/postinst: 4: 2: parameter not set
```
2026-02-24 11:47:13 +01:00
Neal Gompa (ニール・ゴンパ)
ae738e3969
Merge pull request #2955 from OSInside/fix_apt_pacman_repo_instances_for_use_with_unsupported_arguments
Fix RepositoryApt and RepositoryPacman instances
2026-02-22 18:54:23 -05:00
Neal Gompa (ニール・ゴンパ)
48c4c28efb
Merge pull request #2954 from OSInside/add_arch_attribute_to_profile_requires
Add support for arch attribute in profile requires
2026-02-22 18:53:52 -05:00
Marcus Schäfer
d31556e74e
Fix RepositoryApt and RepositoryPacman instances
Some arguments are not supported/implemented with these
repository classes. Make sure to sort them out and log
a warning that their use has no effect.
This Fixes #2953
2026-02-22 21:38:55 +01:00
Marcus Schäfer
512b86d8c0
Add support for arch attribute in profile requires
Allow to specify the arch attribute in the <requires>
sub section of a <profile> definition.
This Fixes #2948
2026-02-22 20:58:34 +01:00
Neal Gompa (ニール・ゴンパ)
8b45eedf7b
Merge pull request #2952 from OSInside/fix_repo_alias_setup_from_cmdline
Fix repo alias setup when set from cmdline
2026-02-18 10:44:04 -05:00
Marcus Schäfer
a5758425f7
Fix repo setup for rawhide integration tests
Use OBS project config repos instead of a static
list in the kiwi file
2026-02-18 15:17:19 +01:00
Marcus Schäfer
0449534a2a
Fix repo alias setup when set from cmdline
Using --add-repo/--set-repo options on the commandline
allows to skip the repo alias setting by passing in an empty
value. That empty value however caused the alias attribute
in a repository section to be set to an empty string which
is not allowed by the schema. Instead an empty alias should
lead to no alias attribute set at all. This commit fixes it
2026-02-18 13:19:55 +01:00
Marcus Schäfer
031a839f95
Fixed leap/test-image-embedded integration test
No need to install dkms
2026-02-18 10:52:16 +01:00
Marcus Schäfer
7b7a630c1a
Fix shellcheck for MicroOS build test
Make sure shellcheck is happy for test-image-MicroOS/config.sh
2026-02-18 10:42:21 +01:00
Marcus Schäfer
ee0b2113db
Add Micro Build with extra data partition 2026-02-18 10:28:52 +01:00
Marcus Schäfer
72128e61b9
Update TW integration tests
zypper no longer provides /etc/zypp/zypp.conf. Instead the
concept of /etc/zypp/zypp.conf.d/*.conf was introduced. This
broke all integration tests which modified the former zypp.conf.
I dropped all this modifications from the integration tests
as they seem to be obsolete anyway.
2026-02-16 17:46:37 +01:00
Marcus Schäfer
94079a41e2
Update documentation per review by Sean Marlow
Rephrase the note where to find help or how to get in contact
2026-02-16 13:05:43 +01:00
Marcus Schäfer
4fa7487149
Merge pull request #2951 from OSInside/fix_archlinux_integration_tests
Added cpio to archlinux integration test
2026-02-16 09:52:26 +01:00
Marcus Schäfer
856e56d3ad
Added cpio to archlinux integration test
dracut requires cpio to be installed
2026-02-16 09:44:22 +01:00
Marcus Schäfer
6eb0f9c9ea
Merge pull request #2947 from lmue-inno/feature/add-smallestdisk-kernel-param
Add rd.kiwi.oem.smallest_disk deployment option
2026-02-16 09:38:18 +01:00
Neal Gompa (ニール・ゴンパ)
e2fcf7fddd
Merge pull request #2950 from OSInside/fix_dracut_printconfig_for_readonly_systems
Fix dracut --printconfig for readonly systems
2026-02-15 13:30:51 -05:00
Marcus Schäfer
e60001c56c
Fix dracut --printconfig for readonly systems
When calling dracut --printconfig it creates a temporary directory
and some dracut template in it below /var/tmp. On readonly systems
this location is not writable. As such make sure that the location
is a writable tmpfs during call time
2026-02-15 18:15:21 +01:00
Marcus Schäfer
d260599d23
Add mktemp and findmnt to strip list
For legacy kiwi initrd builds the new dracut version
uses mktemp and findmnt. As such this tool must not be dropped
from the kiwi initrd
2026-02-15 17:31:13 +01:00
Marcus Schäfer
f8d4f08ed4
Add realpath to strip list
For legacy kiwi initrd builds the new dracut version
uses realpath. As such this tool must not be dropped
from the kiwi initrd
2026-02-15 17:09:15 +01:00
Marcus Schäfer
0bb9a7d4d9
Update leap/.repos for local test builds
Leap integration tests has been switched from Leap15 to Leap16.
Therefore the .repos setup for local building needs to be
adapted as well.
2026-02-06 10:03:39 +01:00
Marcus Schäfer
a0d607c8db
Fix doc setup
Add missing exc_image_base_name placeholder
2026-02-04 16:09:08 +01:00
lmue-inno
eb65cbfd59
Update customize_the_boot_process.rst 2026-02-04 12:27:55 +01:00
lmue-inno
f70695e99e dracut: add support for new kernel parameter smallest_disk 2026-02-04 12:13:05 +01:00
Marcus Schäfer
8e10fbe426
Bump version: 10.2.41 → 10.2.42 2026-02-04 10:27:07 +01:00
Neal Gompa (ニール・ゴンパ)
8cfa245e8b
Merge pull request #2946 from OSInside/fix_verity_on_squashfs
Fixed veritytab if root is on squashfs
2026-02-03 11:19:54 -05:00
Marcus Schäfer
934624a1b3
Fixed veritytab if root is on squashfs
squashfs does not support UUID or LABEL, as such the PARTUUID
device assignment is used for the veritytab in this case
2026-02-03 17:13:40 +01:00
Marcus Schäfer
3c6508b502
Merge pull request #2945 from OSInside/better_error_message_from_command_capabilities
Improve error message from CommandCapabilities
2026-02-03 17:09:18 +01:00
Marcus Schäfer
79ce9f4ad2
Update documentation
Clarify on confusing warning message
2026-02-03 11:54:18 +01:00
Marcus Schäfer
3da66330ce
Improve error message from CommandCapabilities
In case CommandCapabilities is called from a command
that does not exist and raise_on_error is requested
make sure to provide a better error message pointing
out that the command does not exist instead of the
misleading "Could not parse ... output" error message
2026-02-03 10:07:20 +01:00
Marcus Schäfer
a799aeaf64
Merge pull request #2943 from AdamWill/option-in-help-correct-error
Make error logged/raised from has_option_in_help more accurate
2026-02-03 10:03:28 +01:00
Neal Gompa (ニール・ゴンパ)
5ce3d282c3
Merge pull request #2944 from AdamWill/dracut-printconfig-reallyoptional
initrd format detection: make dracut --printconfig optional
2026-02-03 00:53:46 -05:00
Adam Williamson
e952763aae initrd format detection: make dracut --printconfig optional
In https://github.com/OSInside/kiwi/pull/2921 , based on the
commit message and the fact that the code uses an `if`, it's
pretty clear the use of `dracut --printconfig` is meant to be
optional. But setting the misleadingly-named `raise_on_error`
to `True` means it isn't. `raise_on_error` makes
`has_option_in_help` raise an exception if it *fails* - doesn't
find the specified flag - not if it *errors*. Since it does not
handle the exception, this code crashes if dracut does not have
the argument:
https://koji.fedoraproject.org/koji/taskinfo?taskID=141808928

DEBUG util.py:459:  [ ERROR   ]: 06:03:28 | KiwiCommandCapabilitiesError: Could not parse dracut output

I've sent https://github.com/OSInside/kiwi/pull/2943 to make the
message less of a lie, and this makes us stop crashing if the
arg isn't available.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2026-02-02 16:12:06 -08:00
Adam Williamson
80cab8b287 Make error logged/raised from has_option_in_help more accurate
If I'm following this code correctly, we're not raising here
because we "could not parse" the output. We're raising because
we parsed it and it did not have the flag we were looking for.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2026-02-02 15:50:38 -08:00
Marcus Schäfer
52906c981a
Fix leap integration test 2026-02-02 18:41:31 +01:00
Marcus Schäfer
75f908e3a2
Fix leap builds
Adaptions from Leap 15 to Leap 16 required
2026-02-02 18:33:33 +01:00
Marcus Schäfer
1178572249
Drop openSUSE-release from leap integration tests
This package no longer exists
2026-02-02 18:00:49 +01:00
Neal Gompa (ニール・ゴンパ)
c69f675662
Merge pull request #2942 from OSInside/fix_extended_attr_warning
Fix checked for extended attributes
2026-02-02 09:27:12 -05:00
Marcus Schäfer
ee4438870e
Fix checked for extended attributes
Make sure the check only issues a warning message if the
call for the extended attributes really states that the
target doesn't support extended attributes. In any other
case do not warn as it causes misleading error information
which is not an error we care for in this scope
2026-02-02 15:21:15 +01:00
Marcus Schäfer
d2d514b56b
Drop SUSE SLE specific installation section
The provided information is SUSE Linux Enterprise
specific and is documented via the SUSE specific
documentation process and workflow. To avoid conflicting
information this chapter gets dropped from the upstream
docs
2026-02-02 11:14:01 +01:00
Marcus Schäfer
8ace89cfae
Bump version: 10.2.40 → 10.2.41 2026-02-02 11:06:20 +01:00
Marcus Schäfer
e0683c545d
Add information about supported markups
Add more visible information that kiwi supports
XML, YAML and TOML markups to write an image description
2026-02-02 11:05:50 +01:00
Marcus Schäfer
f514600780
Update concept and workflow diagram 2026-02-02 11:01:53 +01:00
Marcus Schäfer
1095389822
Update documentation start page
Rewrite the start page to improve clarity and focus of
the project. Also point out how to get started in a more
visible way.
2026-02-02 10:33:09 +01:00
Marcus Schäfer
29c52aad9d
Fix documentation for language errors and wording 2026-01-31 18:59:43 +01:00
Marcus Schäfer
225ff2544e
Bump version: 10.2.39 → 10.2.40 2026-01-30 10:39:38 +01:00
Marcus Schäfer
cd31a7686b
Merge pull request #2941 from OSInside/separate_api_from_main_docs
Separate API docs from main documentation
2026-01-30 10:26:25 +01:00
Marcus Schäfer
ce04c62e57
Merge pull request #2940 from OSInside/fix_doc_issues
Fix doc issues
2026-01-30 10:25:52 +01:00
Marcus Schäfer
827238f4b7
Separate API docs from main documentation
Build the API documentation via pdoc and reference it from
the main documentation. This has the advantage that new code
will be automatically included into the pdoc generated result.
Another advantage is that the search field on the main page
is not primarily hitting search results from the big API
documentation and that the search field on the API page
only searches within the API documentation.
2026-01-28 16:08:56 +01:00
Marcus Schäfer
e58759efa6
Fix doc: Setting Up YaST at First Boot
The firstboot wizzard in YaST which allowed to run AutoYaST
from a specific trigger setup no longer exists and now
executes the yast-firstboot service. However, firstboot.xml
is something completely different than AutoYaST.xml which
obsoletes the documentation we wrote in kiwi about it and
also confuses our users. I was not able to find a proper
utility which allows an easy setup of firstboot.xml in
the same way as it existed for "yast autoyast". As SUSE
also obsoleted and dropped YaST from their products the
only stable move is to drop this chapter from the documentation.
2026-01-28 14:29:30 +01:00
Marcus Schäfer
170c3f100b
Fix doc: Booting a Live ISO Images from Grub2
The chapter described the setup of a menu entry for grub
to loop boot a kiwi live ISO. The information was outdated
and did not longer apply to the current state of the art.
This commit updates the documentation to be correct again.
2026-01-28 14:29:30 +01:00
Marcus Schäfer
f3c2d9425e
Bump version: 10.2.38 → 10.2.39 2026-01-28 13:17:35 +01:00
Neal Gompa (ニール・ゴンパ)
ff02a18bb4
Merge pull request #2939 from Vogtinator/livenoluks
Fix booting non-encrypted live images
2026-01-28 11:09:40 +01:00
Fabian Vogt
9b81a9ccfc Fix booting non-encrypted live images
activate_luks returned true if the passed blockdev was not luks.
2026-01-28 10:20:59 +01:00
Dan Čermák
d1ce885ee0
Merge pull request #2938 from OSInside/fix_pytest_6_type_hint_issue
Fix pytest type hint issue
2026-01-27 12:14:14 +01:00
Marcus Schäfer
0cbdf2099e
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
2026-01-27 12:01:58 +01:00
Marcus Schäfer
824f5bc5bf
Bump version: 10.2.37 → 10.2.38 2026-01-26 17:23:38 +01:00
Neal Gompa (ニール・ゴンパ)
6100ea00ba
Merge pull request #2937 from OSInside/fix_s390_unit_test
Fix s390 unit test
2026-01-26 08:50:40 -05:00
Marcus Schäfer
40f8da5f5b
Fix platform mock for kis builder unit testing 2026-01-26 14:14:13 +01:00
Marcus Schäfer
b522bae980
Fix s390 unit test
Forgot to mock the architecture properly. This commit fixes it
2026-01-26 13:10:08 +01:00
Marcus Schäfer
620e258b50
Bump version: 10.2.36 → 10.2.37 2026-01-26 12:08:10 +01:00
Neal Gompa (ニール・ゴンパ)
356821cc8c
Merge pull request #2936 from OSInside/dnf4-binary-name
Identify the correct binary for DNF4
2026-01-26 06:07:15 -05:00
Marcus Schäfer
039240cbb2
Move fedora arm build test to dnf5 2026-01-26 12:02:59 +01:00
Marcus Schäfer
617c29d5d4
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
2026-01-26 11:52:49 +01:00
Marcus Schäfer
e8c14507d5
Move fedora container build test to dnf5 2026-01-26 11:42:04 +01:00
Marcus Schäfer
7552b33433
Move remaining fedora build tests to dnf5 2026-01-26 11:00:21 +01:00
Neal Gompa (ニール・ゴンパ)
163f7a4f9a
Merge pull request #2932 from OSInside/support_grub_env_variable_setup
Allow to setup the environment blob for grub
2026-01-26 04:46:29 -05:00
Neal Gompa
1a8bf27ead Reapply "Set CentOS 9 integration tests to use dnf4 explicitly"
This reverts commit 31a0171bbb.
2026-01-23 10:22:51 -05:00
Neal Gompa
830398422b Reapply "Set CentOS 10 integration tests to use dnf4 explicitly"
This reverts commit 9fe29d9925.
2026-01-23 10:22:51 -05:00
Neal Gompa
46b041d112 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.
2026-01-23 10:22:51 -05:00
Neal Gompa
31a0171bbb Revert "Set CentOS 9 integration tests to use dnf4 explicitly"
This causes the environment to not have /usr/bin/dnf.

This reverts commit b2c4760e2f.
2026-01-23 09:21:39 -05:00
Neal Gompa
9fe29d9925 Revert "Set CentOS 10 integration tests to use dnf4 explicitly"
This causes the environment to not have /usr/bin/dnf.

This reverts commit df77cba989.
2026-01-23 09:21:20 -05:00
Neal Gompa
b2c4760e2f Set CentOS 9 integration tests to use dnf4 explicitly 2026-01-23 09:19:02 -05:00
Neal Gompa
df77cba989 Set CentOS 10 integration tests to use dnf4 explicitly
Also, fix the description of the tests to state it's for CentOS 10.
2026-01-23 09:18:07 -05:00
Neal Gompa
38c1070383 Revert "Switch centos v10 integration tests to dnf5"
DNF5 does not exist in CentOS 10 yet.

This reverts commit a722acedc5.
2026-01-23 09:17:08 -05:00
Marcus Schäfer
a722acedc5
Switch centos v10 integration tests to dnf5 2026-01-23 12:09:04 +01:00
Marcus Schäfer
53c2b0b2af
Fix agama integration test
Service agama-proxy-setup no longer exists
2026-01-23 09:53:07 +01:00
Marcus Schäfer
4448735bd4
Fix fedora integration test build
Explicitly add shadow package
2026-01-22 18:28:59 +01:00
Marcus Schäfer
83137abef6
Fix fedora integration test build
Explicitly add shadow package
2026-01-22 17:31:01 +01:00
Marcus Schäfer
186c5bb4fa
Allow to setup the environment blob for grub
Added new <environment> section to the existing <bootloadersettings>
section which allows to specify environment variables for setting
up an environment blob for the selected loader. With this commit
we add support for grub by using grub2-editenv. Other loaders
do not yet have an implementation or does not support environment
blobs. Settings will be ignored for unsupported loaders.
This Fixes #2922

Co-authored-by: Rhys Oxenham <rhys.oxenham@suse.com>
2026-01-22 16:05:21 +01:00
Marcus Schäfer
d43c53d2a7
Add staging box build to build_status helper 2026-01-22 16:05:21 +01:00
Marcus Schäfer
e797c1136f
Add missing base class method
The BootLoaderInstallBase class was missing the default
implementation for the set_disk_password API
2026-01-22 16:05:21 +01:00
Neal Gompa (ニール・ゴンパ)
137777a84f
Merge pull request #2934 from Conan-Kudo/rejigger-dnf-support
package/spec: Reorganize supported DNF variants in packaging
2026-01-22 04:38:27 -05:00
Neal Gompa
a9ebd4615f package/spec: Reorganize supported DNF variants in packaging
DNF5 has replaced DNF4 and MicroDNF since Fedora Linux 41, and this
replacement will take effect with CentOS Stream/RHEL 11 onward.

Furthermore, openSUSE Tumbleweed is switching to DNF5 for its support
of DNF, so switch things so that DNF5 is available for openSUSE.
2026-01-21 09:25:29 -05:00
Neal Gompa (ニール・ゴンパ)
bef163d8b2
Merge pull request #2933 from OSInside/ovf_via_open_vmdk
Move OVA support to open-vmdk
2026-01-21 08:38:21 -05:00
Marcus Schäfer
4a259aaaea
Move OVA support to open-vmdk
Finally this commit drops the use of the VMware ovftool
and moves to the real opensource alternative open-vmdk
This Fixes #2292
2026-01-21 11:45:04 +01:00
Neal Gompa (ニール・ゴンパ)
af810cacc3
Merge pull request #2931 from OSInside/conditional_setup_for_btrfs_relative_path
Set btrfs_relative_path conditional
2026-01-14 19:26:10 -05:00
Marcus Schäfer
9608445540
Set btrfs_relative_path conditional
The early boot script and also the ISO template should only
set this option if the conditions to set it are met. Conditions
for this option are if btrfs is in use and a default subvolume
and/or a snapper based snapshot is requested by the image
description. This Fixes #2919
2026-01-13 18:04:31 +01:00
Marcus Schäfer
28c98f58f6
Merge pull request #2930 from OSInside/fix_ramdisk_generator
Fixed ramdisk sysroot generator
2026-01-12 11:56:41 +01:00
Marcus Schäfer
75e4eba104
Fixed ramdisk sysroot generator
Do not use a custom _dev name and stick with the UUID representation
of the disk image in RAM after deployment. Former versions of udev
did not create a by-uuid device representation which now seems to
have changed. This then leads to the device name RamDisk_rootfs
not being created the and respective .device unit times out.
In addition the timer unit for the standard device representation
changed to infinity. This fixes bsc#1254116
2026-01-09 12:12:07 +01:00
Marcus Schäfer
6674171c60
Fix integration tests
Tests using btrfs snapshots with snapper has to
install snapper
2026-01-07 15:36:26 +01:00
Marcus Schäfer
3d1c2b0717
Bump version: 10.2.35 → 10.2.36 2026-01-07 15:12:41 +01:00
Neal Gompa (ニール・ゴンパ)
8f9bfcf69e
Merge pull request #2929 from OSInside/fix_ca_dist_naming
Update CA target distribution name
2026-01-07 08:59:59 -05:00
Marcus Schäfer
4129dbbf1f
Update CA target distribution name
Instead of rhel better name it redhat
2026-01-07 14:51:10 +01:00
Neal Gompa (ニール・ゴンパ)
2fc91ae417
Merge pull request #2697 from davidcassany/adapt_to_latest_snapper
Adapt to latest snapper
2026-01-07 07:48:06 -05:00
Marcus Schäfer
62e7cc8c0a
Bump version: 10.2.34 → 10.2.35 2026-01-07 10:45:16 +01:00
Marcus Schäfer
df12edb6e6
Merge pull request #2913 from rdoxenham/ca-certificates
Adding support for Custom CA Certificates during system build
2026-01-07 10:44:41 +01:00
Rhys Oxenham
88107398f5
Adding support for import of custom certificates
This commit adds support for providing custom CA certificates
during the build process. It allows a user to specify one ore
more CA file(s) via the new <certificates> section and/or
via the command line. The certificate files will be imported
directly after the image bootstrap has finished (where the
required CA update tools are available), but before any
further packages are retrieved, solving for situations where
the chroot environment needs certificates, e.g. when there's
a proxy server in the build environment.

Co-authored-by: Marcus Schaefer <marcus.schaefer@gmail.com>
2026-01-06 17:01:36 +01:00
David Cassany
9bd8fdcbb9
Refactor snapshots logic in a new SnapshotManager factory
This commit introduces the SnapshotManager factory to abstract Snapper
specific logic into its own class.

It also updates unit tests to reach full coverage. It essentially
adds a new snapper unit tests suite and it refactors the volume manager
tests suite.

Signed-off-by: David Cassany <dcassany@suse.com>
2026-01-05 17:02:17 +01:00
David Cassany
7c7e4a5e85
Use a NamedTuple for chroot bind mounts
Signed-off-by: David Cassany <dcassany@suse.com>
2026-01-05 17:02:17 +01:00
David Cassany
101416bc2e
Adding support for new snapper helpers
This commit makes use of snapper helpers to install a new
system where frist root is already a snapshot. Requires snapper
higher or equal to v0.12.1.

It also keeps old logic for backward compatibility with OSes including
older versions of snapper. The execution path is split based on the
snapper version included within the image being built.

Signed-off-by: David Cassany <dcassany@suse.com>
2026-01-05 17:02:17 +01:00
David Cassany
0873b22a49
Little refactor to group the logic the new snapper helper provides
Signed-off-by: David Cassany <dcassany@suse.com>
2026-01-05 17:02:16 +01:00
David Cassany
a5aeaab586
Adding the ChrootManager class
Chroot manager class can be used to setup
a chroot enviroment including an arbitrary
list of bind mounts. The provided paths to bind
are mounted in the chroot to the same actual root
path they are bound from.

This class is useful to setup a chroot envirment
based on the root-tree created on prepare step.

Signed-off-by: David Cassany <dcassany@suse.com>
2026-01-05 17:02:16 +01:00
Marcus Schäfer
52f8415c84
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
2026-01-03 21:54:16 +01:00
Neal Gompa (ニール・ゴンパ)
4f5f98b3b0
Merge pull request #2921 from OSInside/read_dracut_dist_config
Fix initrd outputfile format detection
2026-01-03 15:20:00 -05:00
Marcus Schäfer
19e3c631e0
Fix initrd outputfile format detection
With dracut-ng the output file format is a configuration
option. The detection mechanics must be extended by also
looking at the combined configuration settings which can
be obtained via the new --printconfig dracut option.
This commit adds the additional check if the used dracut
command supports that option. This Fixes #2918
2026-01-03 21:00:18 +01:00
Neal Gompa (ニール・ゴンパ)
aeac2ca0d7
Merge pull request #2927 from OSInside/add_custom_partition_id_to_schema
Add custom partition id to schema
2025-12-31 20:04:57 -05:00
Marcus Schäfer
66bb1c3a44
Update Fedora integration test
Use custom partition IDs for the Virtual profiles with
and without an extra boot partition
2026-01-01 01:39:42 +01:00
Marcus Schäfer
c06ef691bc
Add documentation about new attributes
Add information about eficsmpart_id
2026-01-01 01:39:42 +01:00
Marcus Schäfer
8b4d124878
Add support for eficsmpart_id attribute
Allow custom partition number also for the
EFI CSM (legacy BIOS) partition
2026-01-01 01:39:42 +01:00
Marcus Schäfer
bc08dc8ca0
Add documentation about new attributes
Add information about part_id, efipart_id, rootpart_id
and bootpart_id
2026-01-01 01:39:42 +01:00
Marcus Schäfer
4430e6aa82
Added test-image-amazon-linux-layout build test
This Fixes #2848
2026-01-01 01:39:42 +01:00
Marcus Schäfer
7cae923cae
Add support for custom part id attributes
efipart_id, rootpart_id, bootpart_id in <type> and
part_id in <partition>. Allow to specify a custom partition
number instead of the default numbering schema 1-N
2026-01-01 01:39:42 +01:00
Neal Gompa (ニール・ゴンパ)
e7063224a4
Merge pull request #2925 from OSInside/support_custom_partition_id
Support custom partition IDs in Partitioner and Disk API
2025-12-31 04:49:12 -05:00
Marcus Schäfer
4b31f99ff7
Add support for custom partition ID to Disk
Allow to specify a custom partition ID in the Disk
class interface and API. As of today the new parameter
partition_id in the ptable_entry_type record is not
in use by the current kiwi image description schema.
This change will be a followup to the API change and
needs further conversation upstream first. The code
changes here are based on the work from:

Co-authored-by: Caleb Wolfe <cwolfe651@gmail.com>
Co-authored-by: Caleb Wolfe (Amazon) <xcawolfe@amazon.com>
Assisted-by: Claude Opus 4.5 <noreply@anthropic.com>

This is related to #2917
2025-12-17 16:38:29 +01:00
Marcus Schäfer
13c5a57def
Add support for custom partition ID to Partitioner
Allow to specify a custom partition ID in the Partitioner
class interface and API. The code changes here are based
on the work from:

Co-authored-by: Caleb Wolfe <cwolfe651@gmail.com>
Co-authored-by: Caleb Wolfe (Amazon) <xcawolfe@amazon.com>
Assisted-by: Claude Opus 4.5 <noreply@anthropic.com>

This is related to #2917
2025-12-17 16:38:29 +01:00
Marcus Schäfer
d70a59fb62
Merge pull request #2914 from OSInside/script_hook_root_is_mountpoint
Run disk.sh script hook with / being a mountpoint
2025-12-17 16:38:06 +01:00
Neal Gompa (ニール・ゴンパ)
e5ab2dd5c4
Merge pull request #2923 from OSInside/set_root_permissons
Set fixed permissions for image root directory
2025-12-15 05:34:45 -05:00
Marcus Schäfer
9d21a2c3b3
Set fixed permissions for image root directory
The new root directory (/) for an image build is created
by taking the current system umask into account. However,
if that umask setting is not appropriate for the needs
of the image root directory some hard to debug after
effects can appear on the later run of the image binary.
As such this commit changes the permissions for the root
directory explicitly to the expected value.
This Fixes #2920
2025-12-15 11:08:14 +01:00
Neal Gompa (ニール・ゴンパ)
24e884dca3
Merge pull request #2916 from OSInside/fix_source_date_epoch_unit_tests
Fix unit tests when SOURCE_DATE_EPOCH is set
2025-12-08 10:52:13 -05:00
Marcus Schäfer
28d902c79b
Fix unit tests when SOURCE_DATE_EPOCH is set
There are some unit tests which failed when the call environment
has SOURCE_DATE_EPOCH set. This commit fixes it. This Fixes #2912
2025-12-07 19:53:55 +01:00
Marcus Schäfer
06ea4731f4
Fixed btrfs mount procedure
If root is not a snapshot and the root volume is
not (/) we forgot to self bind mount the root volume.
This must happen in the volume manager because if
done later it would shadow any other mountpoint
2025-12-05 22:54:27 +01:00
Marcus Schäfer
0cd2a0b30a
Update integration tests
Update and extend integration tests with disk.sh examples.
Add a call to check that it knows about (/) and provide
proper output such that it can be checked by reading
the build logs
2025-12-05 18:26:49 +01:00
Marcus Schäfer
526a689792
Run disk.sh script hook with / being a mountpoint
Add optional root_is_mountpoint parameter to the _call_script
method. When set the provided root path is turned into a bind
mount such that it appears as / being a mountpoint in the
chrooted call. Apply the argument to the call_disk_script
method such that is becomes effective for the disk.sh
script hook.
2025-12-05 18:26:49 +01:00
Neal Gompa (ニール・ゴンパ)
e2e45c936a
Merge pull request #2915 from OSInside/fix_unit_tests
Fix unit tests
2025-12-05 07:22:58 -05:00
Marcus Schäfer
358d5b76bb
Fix time mock when no SOURCE_DATE_EPOCH is present 2025-12-05 12:39:55 +01:00
Marcus Schäfer
1e00766624
Fix unit tests
Missing os.path.getsize mock when called on an non existing file
This is related to Issue #2912
2025-12-05 12:24:12 +01:00
Marcus Schäfer
714b275a5a
Merge pull request #2907 from work-robot/keymap
Warn if keymap is unsupported via systemd
2025-12-01 10:51:15 +01:00
Robert Schneider
845b5270b8 Warn if keymap is unsupported via systemd
Some OS don't support the way systemd is dealing with keymaps (e.g.
Debian, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=790955).
If we try to set the keymap using `systemd-firstboot --keymap`, this
will fail, and the error message from `systemd-firstboot` is misleading:
it states that the keymap is not installed.

I couldn't find out how to reliably detect if systemd's keymap
management is supported, so instead, we provide a hint in the error
message if `systemd-firstboot --keymap` fails that the reason could be
that it's unsupported.

Fixes #2904

More generic keymap/systemd error message + dedent

Adds test of warning if keymap setting unsupported

Fix linter complaints about formatting

Run keymap check under chroot

We're interested in the capabilities of the target system, since we also
run `systemd-firstboot --keymap` in there.

Fixup for setup_test after chroot'ing localectl

Remove localectl call

It talks to systemd.

Fix tests for keymap
2025-11-28 16:25:59 +01:00
Dmitri Popov
b19aa0a892
Add brd driver note (#2906) 2025-11-27 06:44:14 -05:00
Marcus Schäfer
6ec7157d7d
Merge pull request #2911 from OSInside/ibm_se_leap_integration_test
Added IBM secure execution test build for leap
2025-11-26 11:59:33 +01:00
Marcus Schäfer
21b2e0ef09
Add registration utility 2025-11-26 10:41:06 +01:00
Marcus Schäfer
425f0eb56e
Added IBM secure execution test build for leap
Simple disk build enabling secure execution and attestation
for testing in the IBM Cloud and the SUSE s390 Infra.
Please note: UV attestation only works on z16, as long as
the SUSE infra is z15 based you won't be able to test
attestation
2025-11-25 11:02:00 +01:00
Marcus Schäfer
eee6591889
Bump version: 10.2.33 → 10.2.34 2025-11-25 09:02:07 +01:00
Neal Gompa (ニール・ゴンパ)
123ffc74ef
Merge pull request #2909 from OSInside/better_output_input_console_handling
Improve grub console setup
2025-11-24 12:02:30 -05:00
Marcus Schäfer
4f6b103c2f
Add console setup for Fedora integration test
Update fedora/test-image-live-disk and setup two output
consoles and one input console
2025-11-24 17:50:11 +01:00
Marcus Schäfer
9292a84d20
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
2025-11-24 17:50:11 +01:00
Marcus Schäfer
6419cee29a
Merge pull request #2910 from e-minguez/patch-1
Minor typo
2025-11-24 17:36:26 +01:00
Eduardo Mínguez
60da3e218a
Minor typo 2025-11-24 17:06:46 +01:00
Neal Gompa (ニール・ゴンパ)
eb15aee659
Merge pull request #2905 from OSInside/luks_for_live
Add support for encryped live images
2025-11-23 05:01:00 -05:00
Marcus Schäfer
cce59eea28
Add support for encryped live images
So far setting the luks= attribute on a live image build had
no impact to the generated ISO image. This commit adds the
encryption capability also for live ISO images. The read-only
part of the rootfs gets encrypted using the provided luks
passphrase. An eventual persistent storage area gets encrypted
at boot time if the rd.live.encrypt kernel cmdline parameters
is passed. encryption/decryption requires to interactively
set/provide passhphrase information at boot time. Please note
due to the read-only restrictions of an ISO image there is no
way to apply the standard re-encryption process as it is
usually performed by kiwi encrypted systems. As such the
specified luks passphrase in the kiwi image descriptions
becomes sensitive information that needs to be protected
2025-11-19 11:20:22 +01:00
Neal Gompa (ニール・ゴンパ)
9ad2ee6ff8
Merge pull request #2901 from OSInside/fix_versioned_requires
Fixed spec file requires
2025-11-18 03:58:41 -05:00
Marcus Schäfer
2c49b0851f
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
2025-11-18 09:49:24 +01:00
Marcus Schäfer
b51594c1fa
Merge pull request #2899 from OSInside/s390_attestation_request_data
Add support for s390 UV-attestation
2025-11-16 20:01:06 +01:00
Neal Gompa (ニール・ゴンパ)
888b56514a
Merge pull request #2900 from OSInside/fix_repo_type_setup_from_cmdline
Fix repo type setup when set from cmdline
2025-11-14 08:33:05 -05:00
Marcus Schäfer
146774d2c3
Fix repo type setup when set from cmdline
Using --add-repo/--set-repo options on the commandline
allows to skip the repotype setting by passing in an empty
value. That empty value however caused the type attribute
in a repository section to be set to an empty string which
is not allowed by the schema. Instead an empty type should
lead to no type attribute set at all. This commit fixes it
2025-11-14 14:04:27 +01:00
Marcus Schäfer
0313b7b90b
poetry doesn't seem to work with py3.9 anymore 2025-11-10 16:34:40 +01:00
Marcus Schäfer
497e7ecda9
Add support for s390 UV-attestation
To run pvattest perform an attestation request binary as
well as the corresponding attestation key and the secure
execution header is required. This data should be created
as part of the image build. In this commit we are adding
support for creating the attestation data when building
a secure execution enabled image
2025-11-10 16:29:14 +01:00
Marcus Schäfer
2577806bd5
Merge pull request #2895 from OSInside/retain_spare_part
Add rd.kiwi.install.retain_last deployment option
2025-10-31 11:27:54 +01:00
Marcus Schäfer
1c7639d014
Drop unused recreate_last_partition 2025-10-31 09:52:41 +01:00
Marcus Schäfer
076b70c2f0
Update slfo/test-image-disk-simple test build
Activate selinux for testing transparent containers
2025-10-29 12:35:03 +01:00
Marcus Schäfer
b46fe779d8
Drop root only resize restriction
The current kiwi-resize code was restricted to the root
partition for historical reasons. As in a partition table
only the last partition can resize, this should be the only
limitation for the resize code to perform its job. In
connection with the rd.kiwi.install.retain_last feature
it is also very likely that the last partition is not
the root partition but it should be properly restored by
the resize code after deployment
2025-10-29 09:55:25 +01:00
Marcus Schäfer
d4d26556f4
Add integration test build for retain feature 2025-10-29 08:56:44 +01:00
Marcus Schäfer
293828e3e7
Add rd.kiwi.install.retain_last deployment option
Instructs an OEM installation to retain the contents of the
last partition on the target disk. This setting is only useful
if the last partition does not belong to the main OS e.g. an
extra data partition added via the spare_part attribute in
the type setup of the image description. The implementation
also checks if the start address of the last partition on the
target disk matches with the start adress of the image to be
deployed. Only if they match the data on the last partition
can be retained.
2025-10-29 08:56:44 +01:00
Marcus Schäfer
e3aeeccb6d
Merge pull request #2896 from OSInside/allow_setting_oem_systemsize_on_cmdline
Add rd.kiwi.install.systemsize kernel boot option
2025-10-28 14:51:29 +01:00
Marcus Schäfer
da84c2eb71
Add rd.kiwi.install.systemsize kernel boot option
In a kiwi repart process the <oem-systemsize> element allows to
control the size of the partition to hold the rootfs. This commit
allows to dynamically overwrite the static value, or set it via
a kernel cmdline parameter
2025-10-28 14:46:03 +01:00
Marcus Schäfer
203da3d513
Added az-cli-cmd to SLFO integration test 2025-10-21 18:05:58 +02:00
Marcus Schäfer
e0730cde37
Merge pull request #2893 from fnordic/fix-raid-root-repart
fix: Installation with mdraid mirroring with oem-resize and oem-systemsize set
2025-10-14 17:01:14 +02:00
Josef Ottl
9c5bb4324d fix: root repartitioning for root on raid: do not device lock not yet started RaidDev, set partition type to fd for raid, assemble once after repart with devicesize update 2025-10-07 17:38:44 +02:00
Marcus Schäfer
8b360ce4e9
Merge pull request #2892 from alexandrevicenzi/reproducible-containers
Support SOURCE_DATE_EPOCH for OCI containers
2025-10-01 14:49:51 +02:00
Alexandre Vicenzi
f0f116eb19 Support SOURCE_DATE_EPOCH for OCI containers
If SOURCE_DATE_EPOCH is available, use it for the container creation
time and history.
2025-10-01 12:10:08 +02:00
Marcus Schäfer
12af5bdfb6
Merge pull request #2891 from OSInside/stale_issues_and_prs_handling
Add handling for stale issues and PRs
2025-10-01 11:47:57 +02:00
Marcus Schäfer
78bd04c74e
Fix ci-config-functions.yml workflow
Pip as root has issues installing modules already present on the
system. Thus let's perform actions that are not required to run
as root to be done by the standard user.
2025-10-01 11:38:44 +02:00
Marcus Schäfer
26d5ffae03
Add handling for stale issues and PRs
As discussed in the community meeting stale issues and PRs
will be warned and stale labeled after 60 days. In the
community meeting we will go over all stale PRs and close
them on agreement. We will also look on stale issues and
decide if closing them is useful or not. There will never
be an auto-close.
2025-10-01 11:38:07 +02:00
Neal Gompa (ニール・ゴンパ)
57b7a06778
Merge pull request #2890 from OSInside/troubleshoothing_btrfs
Update documentation
2025-09-27 11:49:05 -04:00
Marcus Schäfer
d8841f4f06
Update documentation
Add information about btrfs sector size and its dependency
to the kernel page size for the autodetected value
2025-09-27 17:43:44 +02:00
Marcus Schäfer
fcfcb63f8c
Fix test-image-azure integration test
Do not delete /etc/resolv.conf
2025-09-17 09:53:11 +02:00
Marcus Schäfer
94d0d2ee5f
Bump version: 10.2.32 → 10.2.33 2025-09-11 12:23:00 +02:00
Neal Gompa (ニール・ゴンパ)
7e8b52fa6a
Merge pull request #2885 from OSInside/disable_os_prober
Run grub mkconfig with os-prober disabled
2025-09-11 04:43:44 -04:00
Marcus Schäfer
6218bb8e50
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
2025-09-10 17:42:23 +02:00
Neal Gompa (ニール・ゴンパ)
05474c1785
Merge pull request #2880 from OSInside/fix_rawhide_integration_test
Fix rawhide integration test
2025-09-10 10:39:44 -04:00
Neal Gompa (ニール・ゴンパ)
726282d4a2
Merge pull request #2884 from OSInside/fix_doc_typo
Fixed typo in documentation
2025-09-10 10:29:26 -04:00
Marcus Schäfer
f024b0e09a
Fixed typo in documentation
Invalid XML syntax, missing end tag. This Fixes #2882
2025-09-10 16:10:13 +02:00
Marcus Schäfer
9a8cef438e
Merge pull request #2881 from Klaas-/Klaas-fix_oem_shutdown
References #2474 and #2475 poweroff instead of halt on oem shutdown
2025-09-04 10:42:51 +02:00
Klaas Demter
39ddd218e2
References #2474 and #2475 poweroff instead of halt on oem shutdown 2025-09-02 19:30:05 +02:00
Neal Gompa (ニール・ゴンパ)
e8ee7bf66a
Merge pull request #2878 from OSInside/fix_cp
Mount proc when needed
2025-09-01 10:32:25 -04:00
Neal Gompa (ニール・ゴンパ)
9b5b8d1ae9
Merge pull request #2879 from OSInside/add_test_for_profiled_overlays
Add test for profiled overlays
2025-09-01 09:53:04 -04:00
Marcus Schäfer
e62330f54e
Fix rawhide integration test
The package shim-ia32 got dropped
2025-09-01 15:42:33 +02:00
Marcus Schäfer
0c9ffa489f
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
2025-09-01 15:33:49 +02:00
Marcus Schäfer
8409f4519c
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
2025-09-01 10:51:56 +02:00
Marcus Schäfer
5bfce21f60
Update test-image-custom-partitions test build
Fix patch files to match with new dracut module dirs
2025-09-01 10:24:51 +02:00
Marcus Schäfer
946e91383e
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
dracut module ordering for out-of-tree modules.
2025-09-01 10:22:32 +02:00
Marcus Schäfer
9f4d7b9a73
Fix dracut Makefile install target
module dir names have changed due to recommended dracut
module ordering for out-of-tree modules.
2025-09-01 10:11:11 +02:00
Marcus Schäfer
72501112d1
Update pacman spec to dract changed module dirs
Follow up change for the fix of the recommended dracut
module ordering for out-of-tree modules.
2025-09-01 09:58:41 +02:00
Marcus Schäfer
510ca97dec
Update spec file due to dract changed module dirs
Follow up change for the fix of the recommended dracut
module ordering for out-of-tree modules.
2025-09-01 09:52:24 +02:00
Marcus Schäfer
777cf8f80f
Merge pull request #2877 from jozzsi/3495
Follow the recommended dracut module ordering for out-of-tree modules
2025-09-01 09:45:50 +02:00
Jo Zzsi
24d4631f39 Follow the recommended dracut module ordering for out-of-tree modules
In dracut release v108 or later the recommended ordering
for out out of tree modules is 50-59 range. The following is a section from dracut documentation:

> Not using the 50-59 range for out of tree dracut modules will likely
> lead to unintended errors in the initramfs generation process as your
> dracut module will either run too early or too late in the generation process.
> You have been warned.
2025-08-31 01:49:32 -04:00
Marcus Schäfer
71feb2dbf0
Fix agama integration test
Disable no longer existing agama-auto.service
2025-08-22 11:15:59 +02:00
Marcus Schäfer
f5c8f12a8a
Fixed agama integration test
nothing provides agama-auto anymore
2025-08-22 10:53:48 +02:00
Marcus Schäfer
eba2177c1c
Update SLFO integration test
Make sure ps tool is installed
2025-08-19 15:54:00 +02:00
Neal Gompa (ニール・ゴンパ)
0443435d6e
Merge pull request #2874 from OSInside/fix_exclude_list_for_live_images
Fix exclude list for live image builds
2025-08-15 03:14:02 -07:00
Marcus Schäfer
e3994fb078
Fix exclude list for live image builds
When specifying a filesystem attribute for a live image build,
the rootfs gets build directly into this filesystem instead of
being a squashfs wraped ext4 which is the default layout for
compatibility reasons. In this direct filesystem mode the
exclude list was not passed along to the filesystem creation
and causes unwanted metadata to be part of the final image.
This Fixes #2873
2025-08-15 10:02:17 +02:00
Marcus Schäfer
9b287e88f5
Fix test-image-custom-partitions integration test
Same fix as for the Tumbleweed test now also applied
to the Leap test. Patching of the new root device did
no longer apply
2025-08-11 22:26:40 +02:00
Marcus Schäfer
5f11002295
Fix test-image-custom-partitions integration test
Patching of the new root device did no longer apply
2025-08-11 22:18:54 +02:00
Marcus Schäfer
09ca57be9f
Bump version: 10.2.31 → 10.2.32 2025-08-11 17:44:15 +02:00
Marcus Schäfer
f1a0829082
Merge pull request #2872 from fnordic/fix-raid-repart
fix: resize for raid device, ensure vars like kiwi_RaidDev are loaded…
2025-08-11 17:43:57 +02:00
Marcus Schäfer
0f756f3f65
Merge pull request #2871 from OSInside/omit_kiwi_repart_for_affected_builders
Skip kiwi-repart module in install ISOs
2025-08-11 17:38:00 +02:00
Marcus Schäfer
29119fb009
Merge pull request #2870 from uecasm/patch-1
Skip repart when booting install/live iso
2025-08-11 17:37:24 +02:00
Josef Ottl
4aaaf183e6 fix: resize for raid device, ensure vars like kiwi_RaidDev are loaded before setting disk variable 2025-08-11 13:09:28 +02:00
Marcus Schäfer
5e03e05696
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.
2025-08-08 12:49:26 +02:00
Marcus Schäfer
3a9c46433f
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
2025-08-05 16:03:17 +02:00
Gavin Lambert
7c2132c8fa
Skip repart when booting install/live iso 2025-08-05 16:27:49 +12:00
Marcus Schäfer
c175b3bbb2
Update leap test-image-disk integration test
Add test for alternative volume ID in install ISO
2025-08-04 11:30:12 +02:00
Marcus Schäfer
6de420b4f1
Bump version: 10.2.30 → 10.2.31 2025-08-01 11:53:18 +02:00
Neal Gompa (ニール・ゴンパ)
d50f73ff7e
Merge pull request #2869 from OSInside/consolidate_lock_method
Consolidate device lock into its own method
2025-07-31 09:44:21 -07:00
Neal Gompa (ニール・ゴンパ)
ad9706227b
Merge pull request #2868 from OSInside/fix_conditional_logic
Fix bug in shell condition
2025-07-31 09:43:56 -07:00
Marcus Schäfer
588f8881cd
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
2025-07-31 10:22:27 +02:00
Marcus Schäfer
3176bbb498
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
2025-07-31 10:00:06 +02:00
Neal Gompa (ニール・ゴンパ)
c7d37f88d8
Merge pull request #2867 from AdamWill/solver-fixes
Log metalink URI when resolve fails, handle zstd-compressed repo metadata
2025-07-30 08:20:45 -04:00
Marcus Schäfer
6f350bf560
Fix documentation rendering
There was an indentation bug which caused the docs to
render wrong. This commit fixes it
2025-07-30 10:55:22 +02:00
Adam Williamson
894459ed61 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>
2025-07-29 16:42:47 -07:00
Adam Williamson
91cdd9aed4 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>
2025-07-29 14:58:13 -07:00
Marcus Schäfer
5ca17a382a
Bump version: 10.2.29 → 10.2.30 2025-07-29 19:20:30 +02:00
Marcus Schäfer
d299135e54
Merge pull request #2866 from Vogtinator/fix390
Fix repartitioning with parted
2025-07-29 19:19:49 +02:00
Fabian Vogt
04c92f090d Fix repartitioning with parted
parted does locking itself already. Wrapping it in udevadm lock results
in a deadlock, breaking boot.
2025-07-29 16:21:10 +02:00
Marcus Schäfer
5b528f9f2d
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
2025-07-28 16:23:38 +02:00
Neal Gompa (ニール・ゴンパ)
e40799bf69
Merge pull request #2865 from OSInside/handle_pathlib_mkdir_errors_better
Catch potential exceptions from pathlib.Path.mkdir
2025-07-25 07:20:02 -04:00
Marcus Schäfer
9a8818ac8f
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
2025-07-25 12:57:40 +02:00
Marcus Schäfer
672a538c52
Bump version: 10.2.28 → 10.2.29 2025-07-24 19:42:56 +02:00
Neal Gompa (ニール・ゴンパ)
5dd32d19a4
Merge pull request #2864 from OSInside/fix_return_from_dracut
Fix return from repart stage
2025-07-24 13:36:04 -04:00
Marcus Schäfer
2a06e463e1
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
2025-07-24 19:25:58 +02:00
Marcus Schäfer
764e7f9b3c
Bump version: 10.2.27 → 10.2.28 2025-07-18 13:59:31 +02:00
Marcus Schäfer
b1116bdac6
Merge pull request #2861 from OSInside/repart_fixes
dracut kiwi-repart fixes
2025-07-18 13:58:59 +02:00
Marcus Schäfer
050bca00fc
Merge pull request #2862 from OSInside/fix_code_not_posix_compliant
Fix dracut code to be POSIX compliant
2025-07-18 13:58:33 +02:00
Marcus Schäfer
e911bd6861
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
2025-07-18 10:35:32 +02:00
Marcus Schäfer
1b495aaff4
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
2025-07-17 15:24:09 +02:00
Marcus Schäfer
db0fcd0894
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
2025-07-17 12:33:17 +02:00
Marcus Schäfer
e5fbbcc8ab
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
2025-07-17 11:30:43 +02:00
Marcus Schäfer
b74ebbb183
Do not strictly require config.partids in repart
The kiwi-repart implementation requires a metadata file
named config.partids which holds information about
partition ids and more stored at the time the image was
built. Depending on the complexity of the image and the
resize request some of the information can be rebuilt
in case the metadata file is missing. This commit adds
the rebuild of the minimum required information to run
a standard resize and therefore allows the kiwi-repart
dracut module to work also without config.partids to be
present in the system
2025-07-17 10:42:34 +02:00
Marcus Schäfer
261716e401
Do not drop /config.partids
The partition id metadata file is used in the kiwi-repart
module. If a user wants to use the kiwi repart module
permanently, this metadata file needs to stay in the system.
Therefore it should not be automatically deleted by the
cleanup. A disk.sh hook script can be used to force the
deletion of the file though. This is related #2851
2025-07-17 10:37:34 +02:00
Marcus Schäfer
6ecd63948d
Fix centos/test-image-live-disk-v10
There is no package named iprutils
2025-07-16 16:10:07 +02:00
Marcus Schäfer
72725c87b7
Fix centos/test-image-live-disk-v10
Update package names
2025-07-16 16:04:15 +02:00
Marcus Schäfer
8700cd68fa
Added centos/test-image-live-disk-v10 build test 2025-07-16 15:59:23 +02:00
Marcus Schäfer
96750733f3
Fix tumbleweed/test-image-gce integration test
Drop obsolete growpart
2025-07-16 11:07:05 +02:00
Robert Schneider
3b40799020
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
2025-07-16 10:54:54 +02:00
Marcus Schäfer
2668fc25a6
Fixed integration test builds
Next round of fixes for integration tests. Missing
or wrong service activations
2025-07-16 10:36:41 +02:00
Marcus Schäfer
6b2e8fa144
Fix arm/tumbleweed/test-image-rpi
Fix snapper setup for this integration test
2025-07-16 10:22:11 +02:00
Marcus Schäfer
d8c3426060
Fixed test-image-live-disk
Added missing openssh-server package
2025-07-15 16:28:45 +02:00
Marcus Schäfer
8fca4243ba
Fixed test-image-azure
Add missing python-azure-agent-config-default package
2025-07-15 15:54:51 +02:00
Marcus Schäfer
25da1bae4e
Fixed debian integration test builds
secure shell service is named ssh and not sshd there
2025-07-15 15:50:10 +02:00
Marcus Schäfer
7e0ae4f18c
Fixed integration test builds
Second round of fixes for integration tests. Again errors
now became visible due to the refactoring of the script code
2025-07-15 15:37:10 +02:00
Marcus Schäfer
3ae74dc30e
Fixed integration test builds
Errors from scripts were no longer ignored due to the last
cleanup of the integration test script code. This commit
fixes the now exposed build errors
2025-07-15 15:03:59 +02:00
Neal Gompa (ニール・ゴンパ)
b0137bc38b
Merge pull request #2856 from OSInside/cleanup_integration_tests
Cleanup integration tests config.sh script code
2025-07-15 07:57:40 -04:00
Neal Gompa (ニール・ゴンパ)
cedd7a8358
Merge pull request #2859 from OSInside/fix_runtime_check
Fix check_target_dir_on_unsupported_filesystem
2025-07-15 07:57:16 -04:00
Marcus Schäfer
5061f907c1
Fix check_target_dir_on_unsupported_filesystem
Find the first existing path in the target path and
check the filesystem capabilities for this path.
This Fixes #2858
2025-07-15 12:12:39 +02:00
Marcus Schäfer
75f2138f19
Merge pull request #2855 from andreabolognani/riscv64
defaults: Add patterns for shim/grub2 on riscv64
2025-07-15 11:06:35 +02:00
Andrea Bolognani
612c5840f1 defaults: Add patterns for shim/grub2 on riscv64
A recent commit changed the way these are looked up and
accidentally broke image building on riscv64, with

  KiwiBootLoaderGrubSecureBootError: Signed grub2 efi loader not found

now being raised for kiwi recipes that worked just fine
before that moment.

Fixes: 197572378c
Thanks: David Abdurachmanov <davidlt@rivosinc.com>
Thanks: Marcus Schäfer <marcus.schaefer@gmail.com>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-07-15 10:13:45 +02:00
Marcus Schäfer
47d9a6d477
Cleanup integration tests config.sh script code
Add script code to shellcheck and fix all reported issues.
Get rid of suseXX and baseXX methods as much as possible.
Add set -ex for all script code. Do not allow any script
code to fail.
2025-07-14 18:24:23 +02:00
Neal Gompa (ニール・ゴンパ)
49ba8a9ccd
Merge pull request #2852 from OSInside/add_slfo_integration_test
Add SLFO integration test
2025-07-14 12:00:34 -04:00
Marcus Schäfer
eefb0daf15
Add SLFO test-image-disk-simple integration test
Add simple disk test and allow for testing the new
transparent container idea for the aws toolchain. also
add SLFO builds to the helper script
2025-07-14 14:37:38 +02:00
Neal Gompa (ニール・ゴンパ)
a53c495595
Merge pull request #2851 from OSInside/fix_disk_has_unallocated_space_check
Fixed check for unallocated space on disk
2025-07-09 09:43:09 -04:00
Marcus Schäfer
b40829db88
Fixed check for unallocated space on disk
So far the check for unallocated space was only working for GPT
and there it was also not really stable. The check was based on
verifying if the backup GPT table is really at the end of the
disk. Depending on which tool was used to dump the image on the
target this "mistake" often got corrected by the tools that
dumped the image. In this case the check no longer worked.
This commit improves the check by another test which looks
for the real free bytes on disk compared to the current
partition geometry.
2025-07-09 15:39:07 +02:00
Marcus Schäfer
356a7b7cc7
Move to neutral directory for calling osc
When calling the helper/build_status.sh script to get an
overview about the results of the integration tests, there
is a stupid new behavior from the osc tool that it assumes
a package name according to the name of the directory you
are in probably connected to the fact that the data in this
directory is a git checkout or some other strange assumption.
This commit moves to a neutral directory where none of the
osc internal assumptions applies and it just does what it
should do... showing results of the given project.
2025-07-09 12:50:06 +02:00
Marcus Schäfer
dd05ad2af5
Bump version: 10.2.26 → 10.2.27 2025-07-09 11:26:31 +02:00
Marcus Schäfer
7b39c1a6fe
Merge pull request #2850 from OSInside/device_persistency_selectable_for_install_media
Add rd.kiwi.install.devicepersistency
2025-07-09 11:25:09 +02:00
Neal Gompa (ニール・ゴンパ)
3fb15c53bf
Merge pull request #2847 from OSInside/custom_filesystem_uuid
Seed filesystem UUIDs with SOURCE_DATE_EPOCH + offset
2025-07-08 10:47:03 -04:00
Marcus Schäfer
f9fb77e93e
Add global option --setenv
Allow to set environment variables in the caller environment
via the commandline, e.g --setenv SOURCE_DATE_EPOCH=42
2025-07-08 16:37:38 +02:00
Marcus Schäfer
8038ccfbef
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
2025-07-08 16:37:38 +02:00
Marcus Schäfer
d3283644aa
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.
2025-07-08 16:37:38 +02:00
Marcus Schäfer
25d54fdd33
Improve log message in SystemIdentifier
Add some scope information such that we know from where
this log information originates from.
2025-07-08 16:37:38 +02:00
Gavin Lambert
ca746a3cbe
Fix regression in get_partition_node_name
backwards compat for lsblk before 2.38
if START column not supported, fall back to default sort
2025-07-08 16:06:26 +02:00
Marcus Schäfer
282a4e1491
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.
2025-07-07 16:45:40 +02:00
Marcus Schäfer
09e49ad68d
Update test-image-disk
Add NetworkManager for better remote debugging capabilities
2025-07-04 16:15:45 +02:00
Marcus Schäfer
804beab07c
Merge pull request #2846 from bmwiedemann/rbmbrid
Make mbr-id deterministic
2025-07-02 09:47:39 +02:00
Bernhard M. Wiedemann
66a0a4c3d5 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>
2025-07-02 08:49:43 +02:00
Marcus Schäfer
9a5a788860
Merge pull request #2845 from bmwiedemann/reproducibledracut
Ensure dracut initrd is reproducible
2025-07-01 15:49:29 +02:00
Bernhard M. Wiedemann
4640c183ea 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>
2025-07-01 11:31:16 +02:00
Marcus Schäfer
ae1328d3c0
Merge pull request #2844 from aale24/verity_runtime_options
Add kernel parameter support for dm-verity options
2025-06-27 14:58:15 +02:00
Marcus Schäfer
4f510e39a7
Bump version: 10.2.25 → 10.2.26 2025-06-27 11:19:27 +02:00
Neal Gompa (ニール・ゴンパ)
09f6076473
Merge pull request #2843 from OSInside/fix_suse_arm_shim
Fix shim lookup for arm on SUSE
2025-06-27 05:12:52 -04:00
Marcus Schäfer
272245b490
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
2025-06-27 11:08:44 +02:00
Alejandro Perez Pestana
2006b4c9fe
Add kernel parameter support for dm-verity options
Implement rd.kiwi.verity_options= parameter to allow runtime customization of veritysetup options

Closes #2837
2025-06-27 09:07:30 +00:00
Marcus Schäfer
f9312b95c1
Merge pull request #2840 from OSInside/add-container-snap
Add support for container-snap as a container-image engine
2025-06-26 11:08:50 +02:00
Dan Čermák
5372049c29
Add container_import template test 2025-06-25 16:03:09 +02:00
Dan Čermák
01ef41f3b1
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
2025-06-25 16:03:08 +02:00
Marcus Schäfer
d59309cc5b
Bump version: 10.2.24 → 10.2.25 2025-06-25 14:21:01 +02:00
Neal Gompa (ニール・ゴンパ)
a98ccc07dc
Merge pull request #2841 from OSInside/fix_get_partition_node_name
Fixed get_partition_node_name
2025-06-25 06:24:43 -04:00
Marcus Schäfer
7794a2fb72
Merge pull request #2838 from OSInside/fix_root_reference_in_snapshot_root
Fix mount system for root_is_snapper_snapshot
2025-06-25 10:35:45 +02:00
Neal Gompa (ニール・ゴンパ)
1c3e764307
Merge pull request #2839 from OSInside/fix_error_output
Fix logging of stderr data in command calls
2025-06-25 03:50:52 -04:00
Marcus Schäfer
246a478d49
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
2025-06-25 09:36:58 +02:00
Marcus Schäfer
29bb3d3c45
Update test-image-MicroOS for local build
Fix bootstrap setup such that micro-os patterns can resolve
2025-06-24 17:05:51 +02:00
Marcus Schäfer
37627d659c
Update test-image-MicroOS/disk.sh
Add a findmnt for / to check if there is a proper root
device reference
2025-06-24 17:05:51 +02:00
Marcus Schäfer
deda49c05a
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
bsc#1244668
2025-06-24 17:05:51 +02:00
Marcus Schäfer
24bef17f0e
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
2025-06-24 15:30:49 +02:00
Neal Gompa (ニール・ゴンパ)
4bc5ae1a12
Merge pull request #2836 from OSInside/multi_efi_arch
Allow multiple EFI arch binaries/modules
2025-06-23 06:17:48 -04:00
Marcus Schäfer
36044a1262
There is no shim for aarch64 on SUSE
Fix integration test for standard EFI (no secure boot)
setup on arm
2025-06-23 10:30:57 +02:00
Marcus Schäfer
197572378c
Allow multiple EFI arch binaries/modules
Allow to lookup and included EFI binaries/modules for
multiple architectures. For testing the integration
test in rawhide/test-image-live-disk has been adapted
accordingly to install 32bit and 64bit EFI binaries.
This Fixes #2822
2025-06-23 10:30:57 +02:00
Alejandro Perez
b57dbd2d9a
Add driver configuration support for dracut initrd
Add driver configuration support for dracut initrd

Add support for specifying kernel drivers to be included or omitted
in the dracut initrd configuration. This extends the existing dracut
configuration capabilities like in the following example

<initrd action="add">
    <dracut driver="erofs"/>
</initrd>
2025-06-16 12:12:06 +02:00
Neal Gompa (ニール・ゴンパ)
80f5b27b98
Merge pull request #2834 from OSInside/fix_spare_part_setup
Fixed rootfs size calculation with spare part
2025-06-10 12:04:40 +02:00
Marcus Schäfer
cdd8277523
Fixed rootfs size calculation with spare part
In case a spare_part setup is combined with the root_clone feature,
the size calculation for the rootfs did not take the cloning into
account and lead to the wrong value. In addition when requesting
the spare part to be last and no size information was given, the
partition was not created at all. This commit fixes both defects
and Fixes #2831
2025-06-10 11:48:14 +02:00
Marcus Schäfer
a91a3f5c18
Merge pull request #2833 from OSInside/fix-mediacheck-kiwiboxes
Add dependency for isomd5sum for iso images and set in kiwi-settings
2025-06-10 09:40:22 +02:00
Neal Gompa
1f41f2f3f7 Add dependency for isomd5sum for iso images and set in kiwi-settings
This ensures that isomd5sum is pulled into the environment for ISO image
builds, and the updated settings makes it so that kiwi boxes will use it.
2025-06-08 08:15:34 -04:00
Neal Gompa (ニール・ゴンパ)
c0da0c2215
Merge pull request #2830 from OSInside/allow_boot_volume
Allow /boot to be a btrfs subvolume
2025-06-03 13:00:52 +02:00
Marcus Schäfer
33df475d0f
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
2025-06-03 12:34:59 +02:00
Marcus Schäfer
b4389ac024
Merge pull request #2829 from dirkmueller/fstrings
Use f-strings where feasible
2025-06-03 11:21:08 +02:00
Dirk Müller
28ed67e456
Use f-strings where feasible
This is a slightly shorter and easier to read syntax
2025-06-02 22:59:11 +02:00
Marcus Schäfer
f4b569c187
Merge pull request #2826 from dirkmueller/overlayfs_supported
Add overlayfs  as supported
2025-06-02 22:25:20 +02:00
Marcus Schäfer
13ff00bb2b
Log warning message for disabled runtime checks
Complete type hints for RuntimeConfig class and log
a warning message for each disabled runtime check
2025-06-02 22:23:28 +02:00
Dirk Müller
896bf372e6
Move it inside the context that actually uses it
also rename it to "supported" as that seems to closer match
what it resembles
2025-06-02 17:54:35 +02:00
Dirk Müller
88db1f3cf0
Add overlayfs as supporting xattr/ACLs as well 2025-06-02 17:54:35 +02:00
Neal Gompa (ニール・ゴンパ)
0b36d14228
Merge pull request #2825 from OSInside/fix_s390_GPT_disk_type
Fix disk_type validation for zipl loader
2025-06-02 08:07:48 -04:00
Marcus Schäfer
266430ad4d
Fix static type argument int vs. str 2025-06-02 13:51:05 +02:00
Marcus Schäfer
e0e91f2c4e
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
2025-06-02 12:27:18 +02:00
Marcus Schäfer
29400c8a5a
Fixup overlay unit enablement 2025-05-28 21:11:16 +02:00
Marcus Schäfer
72a5a7ad98
Fixup overlay mount dependencies 2025-05-28 18:27:22 +02:00
Marcus Schäfer
25a8774a21
Update test-image-overlayroot integration test
Use proper systemd mount units to setup the custom overlay.
The handling of fstab entries by systemd is limited and
should be better handled by self managed mount units
2025-05-28 17:54:31 +02:00
Marcus Schäfer
16affb7227
Use proper mount units for overlay setup
Instead of manual mounting create a proper systemd mount
unit. This allows to manage mount dependencies and the order
of nested mounts in a clean way
2025-05-28 17:52:21 +02:00
Marcus Schäfer
149b5dba11
Merge pull request #2818 from OSInside/targeted_root
Update overlay integration test for partial write
2025-05-28 10:05:47 +02:00
Marcus Schäfer
c12c735d83
Bump version: 10.2.23 → 10.2.24 2025-05-27 10:58:12 +02:00
Neal Gompa (ニール・ゴンパ)
28c3bc8981
Merge pull request #2819 from OSInside/cleanup_build_metadata
Cleanup build metadata
2025-05-26 12:16:19 -04:00
Marcus Schäfer
14c5143973
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
2025-05-26 16:14:17 +02:00
Marcus Schäfer
28da24a25f
Update overlay integration test for partial write
Update the sdboot_uki_verity_erofs profile of the
test-image-overlayroot integration test with a custom
fstab example to overlay only parts of the system
for writing. This Fixes #2815
2025-05-26 10:42:53 +02:00
Marcus Schäfer
87512684c8
Merge pull request #2817 from OSInside/fix_rd.root.overlay.readonly
Fixed rd.root.overlay.readonly overlay mode
2025-05-26 10:41:39 +02:00
Marcus Schäfer
85183efa77
Merge pull request #2816 from OSInside/drop_setuptools_requirement
Drop use of setuptools
2025-05-26 10:41:17 +02:00
Marcus Schäfer
2ed3a410eb
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.
2025-05-25 19:28:43 +02:00
Marcus Schäfer
95aa43cc97
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
2025-05-25 19:18:40 +02:00
Marcus Schäfer
05540fb101
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.
There was a bug in the dracut code which prevented this mount
from succeeding when the read-only rootfs is different from
squashfs. This commit changes the mount to be a simple bind
mount, independent of the origin filesystem. This works because
the read-only mount is performed in the dracut overlay code
anyway. This is related to Issue #2815
2025-05-23 15:59:23 +02:00
Marcus Schäfer
2c92441600
The way we build debs requires setuptools
debbuild doesn't work when setuptools is not there
2025-05-21 11:39:10 +02:00
Marcus Schäfer
d5cf99e37f
Drop use of setuptools
Since we moved to poetry and no code using setuptools anymore,
this requirement can be dropped. The commit also updates the
plugin documentation which was still based on setup.py
2025-05-21 10:09:10 +02:00
Marcus Schäfer
28158c7820
Merge pull request #2814 from OSInside/support_live_http
Update live boot remote boot features
2025-05-21 09:43:43 +02:00
Marcus Schäfer
49f3320133
Merge pull request #2813 from OSInside/uki_setup_grub
Add UKI support for the grub bootloader
2025-05-21 09:43:28 +02:00
Marcus Schäfer
49a8d25ae0
Update live boot remote boot features
Like the upstream module also support the root=live:http://...
remote boot options. The kiwi-live dracut module is scheduled
to become obsolete, but it's still in use and should support
remote boot not only for AoE. As we got more issue reports than
working AoE remote boot success, this commit also updates the
documentation and switches to the capabilities of this PR.
2025-05-20 21:31:54 +02:00
Marcus Schäfer
54454d1b8f
Add UKI support for the grub bootloader
In addition to systemd_boot also add support for UKI creation
when grub is used. This includes the creation of a UKI image
via dracut in the same way as it's done for systemd_boot.
In addition an earlyboot grub script chainloads the UKI and
bypasses any written grub configuration. In Theory this should
also allow to use the shim loader for chainloading an UKI.
However I haven't done testing in this direction and I also
expect security issues with this approach because loading
any non signed data by shim is not expected to work. A new
profile named grub_uki_verity_erofs has been added to the
integration test that experiments with UKIs
2025-05-19 19:21:56 +02:00
Marcus Schäfer
298b990d5b
Bump version: 10.2.22 → 10.2.23 2025-05-19 13:06:52 +02:00
Marcus Schäfer
233663375f
Merge pull request #2812 from OSInside/uki_support
Add support for <initrd> section as part of <type>
2025-05-19 13:04:04 +02:00
Marcus Schäfer
b3181f177b
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
2025-05-19 11:55:36 +02:00
Neal Gompa (ニール・ゴンパ)
098ba31d4a
Merge pull request #2811 from OSInside/fix_unconditional_deletion_of_loader_entries
Fix systemd-boot loader setup
2025-05-18 09:56:47 -04:00
Marcus Schäfer
c838e40e47
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
2025-05-16 09:04:53 +02:00
Marcus Schäfer
72676fc1ec
Bump version: 10.2.21 → 10.2.22 2025-05-15 14:37:57 +02:00
Marcus Schäfer
a25fb7f6bc
Merge pull request #2810 from OSInside/fix_use_of_setfiles_on_read_only_root
Apply security context on writable root only
2025-05-15 14:37:19 +02:00
Marcus Schäfer
aafd752bf3
Merge pull request #2807 from areif-dev/doc-fixes
Docs: minor punctuation and grammar fixes
2025-05-15 14:36:28 +02:00
Marcus Schäfer
6be96e0321
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
2025-05-15 09:45:14 +02:00
areif-dev
e2f85e8d68
Docs: fix typo in users.rst 2025-05-14 19:48:37 -04:00
areif-dev
78622a0d49
Docs: minor punctuation and grammar fixes 2025-05-14 12:27:36 -04:00
Marcus Schäfer
861778d757
Give test-image-overlayroot enough space 2025-05-14 18:18:18 +02:00
Marcus Schäfer
fa8f4af51e
Allow ext2/ext3 as valid build target
stat reports the value 'ext2/ext3' which is a valid target
2025-05-14 12:37:20 +02:00
Neal Gompa (ニール・ゴンパ)
be85fda004
Merge pull request #2806 from OSInside/target_fs_runtime_check
Added check_target_dir_on_unsupported_filesystem
2025-05-14 06:05:06 -04:00
Marcus Schäfer
cdd3ba3445
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,
ACLs or xattrs.
2025-05-14 11:15:04 +02:00
Neal Gompa (ニール・ゴンパ)
cb6b9c8e2d
Merge pull request #2803 from OSInside/fix_resize_with_new_random_key
Fix rd.kiwi.oem.luks.reencrypt_randompass workflow
2025-05-13 07:33:05 -04:00
Marcus Schäfer
d277f84728
Fix rd.kiwi.oem.luks.reencrypt_randompass workflow
When requesting a new random key prior reencryption, make
sure that this new key is referenced in the current in
memory initrd crypttab such that all subsequent
tasks e.g. luks resize have permissions to complete while
inside of this initrd instance
2025-05-13 11:31:05 +02:00
Neal Gompa (ニール・ゴンパ)
1917cd540f
Merge pull request #2802 from OSInside/new_wsl_format
Add support for new tarball-based WSL format
2025-05-12 14:17:09 -04:00
Marcus Schäfer
a2f4ca00d3
Add support for new tarball-based WSL format
With the new image="wsl" type one can build a WSL container
image that uses the new tarball format. This Fixes #2678
2025-05-12 16:22:01 +02:00
Marcus Schäfer
247142463c
Update SL-Micro build test
For details see: https://build.opensuse.org/request/show/1272418
2025-05-12 09:36:42 +02:00
Marcus Schäfer
ab76408155
Required read-only-root-fs for SL-Micro test build
Changes from the SL-Micro team requires adaptions to the
integration test description
2025-05-12 09:27:57 +02:00
Marcus Schäfer
8d9986e2e5
Delete fstab.script from SL-Micro test build
This was only needed when /var was an extra partition, but
it's a volume with copy-on-write disabled for some time
2025-05-12 09:13:41 +02:00
Marcus Schäfer
f4d227070b
Add systemd-resolved to TW integration tests
For some reason it's not longer part of the systemd standard
installation
2025-05-12 08:49:44 +02:00
Marcus Schäfer
a46f26b385
Bump version: 10.2.20 → 10.2.21 2025-05-09 11:43:48 +02:00
Neal Gompa (ニール・ゴンパ)
7d6d4a7994
Merge pull request #2800 from OSInside/support_erofs_overlaydisk
Support erofs overlaydisk
2025-05-08 16:13:19 -04:00
Marcus Schäfer
69dafcdd3c
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
2025-05-08 22:07:04 +02:00
Marcus Schäfer
1a1829d9b0
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.
2025-05-08 22:07:04 +02:00
Marcus Schäfer
bae760ed16
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.
2025-05-08 22:07:04 +02:00
Marcus Schäfer
12fc1dfeaf
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
2025-05-08 22:07:04 +02:00
Marcus Schäfer
bea1223d50
Allow initrd updates on read-only devices
Move initrd to ESP for boot loaders that reads data
from there
2025-05-08 22:07:04 +02:00
Marcus Schäfer
a0f768febc
Fix ordering issue for device assignment
wrong assignment of a boot partition in overlayroot setup
without boot partition
2025-05-08 22:07:04 +02:00
Marcus Schäfer
4238293513
Switch to dracut-kiwi-verity
So far no luck with the systemd verity generator. This
commit adds the parsing of /etc/veritytab in the existing
kiwi-verity dracut module and uses it in the overlayroot
integration test.
2025-05-08 22:07:04 +02:00
Marcus Schäfer
6b62fe5d1b
Update test-image-overlayroot integration test
Switch to erofs for overlay testing. Additionally split the build
into two profiles. The first one just builds a simple overlayroot
oem disk based on erofs. The second one adds a veritysetup layer
and configures the systemd-veritysetup-generator for use in dracut.
This Fixes #2799
2025-05-08 22:07:04 +02:00
Marcus Schäfer
3963e56c91
Add documentation for new attribute
Add details how to use the new overlayroot_readonly_filesystem attribute
2025-05-08 22:07:04 +02:00
Marcus Schäfer
1753b85e12
Add support for selecting the overlay read-only fs
Add new overlayroot_readonly_filesystem attribute which allows
to select for either squashfs or erofs as the read-only filesystem
in an OEM overlay disk setup.
2025-05-08 22:07:04 +02:00
Marcus Schäfer
d5a4715a71
Fixed root setup for verity overlay disk
When building an image with overlayroot set to true and
activated verity data, the root= parameter must be
set to root=overlay:MAPPER=verityroot instead of the standard
overlay:PARTUUID mapping.
2025-05-08 22:07:04 +02:00
Marcus Schäfer
a9ce5324f9
Make sure the verity record has a superblock 2025-05-08 22:07:04 +02:00
Marcus Schäfer
d086c50adf
Drop distro specific runtime check
The check_efi_mode_for_disk_overlay_correctly_setup exists because
shim-install does not work on read-only devices. However, shim-install
is a SUSE only tool that runs a SUSE specific secure boot setup.
For other secure boot processes this runtime check is not useful.
As runtime checks aims to be generally useful, this one gets
dropped.
2025-05-08 22:07:04 +02:00
Marcus Schäfer
9e7d54b284
Add dkms to test-image-embedded integration test 2025-05-08 21:53:34 +02:00
Marcus Schäfer
486a45fa50
Add kiwi-settings package for TW
de-blacklist erofs to allow building integration tests
with this filesystem
2025-05-07 23:34:16 +02:00
Marcus Schäfer
f67a728147
Merge pull request #2691 from glaubitz/loongarch64
Add support for loongarch64
2025-05-06 16:12:31 +02:00
Neal Gompa (ニール・ゴンパ)
93146845c4
Merge pull request #2798 from OSInside/size_for_root_clones
Fix root clone size setup
2025-05-06 06:28:34 -04:00
Marcus Schäfer
e9c1568904
Fix root clone size setup
If the root_clone attribute is specified without providing a
fixed size for the system, kiwi estimates the size needed for
the root part and assigns the rest to the clone. This leads to
different partition sizes for the root clones. As per definition
of a clone the expectation is that the size is the same, this
commit changes the behavior such that the calculated size for
the system is applied to the origin root and all its clones.
As a consequence this can leave unpartitioned space free in
the image. This Fixes #2463
2025-05-06 09:25:06 +02:00
Marcus Schäfer
dd9f991de6
Bump version: 10.2.19 → 10.2.20 2025-05-05 10:19:10 +02:00
Marcus Schäfer
43ea22c9fd
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.
2025-05-02 21:28:53 +02:00
Marcus Schäfer
a3d10cd6b0
Bump version: 10.2.18 → 10.2.19 2025-05-01 20:40:39 +02:00
Marcus Schäfer
63b180db83
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
2025-04-30 15:39:00 +02:00
Marcus Schäfer
cb80c65ff3
Fixed s390 integration test
targettype attribute in wrong section
2025-04-30 15:02:06 +02:00
Neal Gompa (ニール・ゴンパ)
34130b8ffa
Merge pull request #2797 from OSInside/support_gpt_on_s390
Add support for GPT targettype on s390
2025-04-30 06:52:10 -04:00
Neal Gompa (ニール・ゴンパ)
7e937cbc06
Merge pull request #2793 from OSInside/fix_bls_default_setting
Fixed default bls value setup
2025-04-30 06:51:53 -04:00
Marcus Schäfer
2c9409f765
Fixed default bls value setup
Fixed get_build_type_bootloader_bls behavior in case the bls
attribute is not set. In this case get_bls() returns a None value
which was returned. However in this case the attribute value
should not be taken into account and the method defined default
value for bls should be returned. This Fixes #2542
2025-04-30 12:47:59 +02:00
Neal Gompa (ニール・ゴンパ)
f728109c8b
Merge pull request #2796 from OSInside/compress_option_for_bundler
Add --no-compress option to bundler
2025-04-30 06:34:42 -04:00
Marcus Schäfer
2111bb567d
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
2025-04-30 12:34:27 +02:00
Marcus Schäfer
7bf437956d
Add --no-compress option to bundler
Allow to skip the compression for bundle files marked
to become compressed. This Fixes #2736
2025-04-30 12:12:51 +02:00
Marcus Schäfer
f85b1ac4af
Merge pull request #2795 from traylenator/retire_basesystem
Rawhide (F43) has removed basesystem package
2025-04-30 11:29:28 +02:00
Marcus Schäfer
8a5b3ffc03
Merge pull request #2794 from traylenator/usermod
rawhide install shadow-utils for usermod
2025-04-30 11:28:43 +02:00
Steve Traylen
1eccac08a0 Rawhide (F43) has removed basesystem package
The basesystem package was retired with rawhide (F43).

https://src.fedoraproject.org/rpms/filesystem/pull-request/20
2025-04-30 11:13:51 +02:00
Steve Traylen
dad985bf41 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
```

This fails with:

```
[ INFO    ]: 09:46:38 | Setting up user root
[ INFO    ]: 09:46:38 | --> Modifying user: root
[ INFO    ]: 09:46:38 | --> Primary group for user root: root
[ ERROR   ]: 09:46:38 | KiwiCommandError: chroot: stderr: /sbin/chroot: failed to run command ‘usermod’: No such file or directory
```

Install the package `shadow-utils` to provide `usermod`.
2025-04-30 10:04:17 +02:00
Marcus Schäfer
4ea1c2e7ea
Bump version: 10.2.17 → 10.2.18 2025-04-28 16:48:09 +02:00
Neal Gompa (ニール・ゴンパ)
5f368bd8ea
Merge pull request #2792 from OSInside/fix_use_disk_password_for_random_keys
Fix setup of use_disk_password for random secret
2025-04-28 05:45:08 -04:00
Neal Gompa (ニール・ゴンパ)
7ff82b04ab
Merge pull request #2791 from OSInside/drop-inst-grub2-mod-uefi
Drop copying GRUB2 modules to /boot with Secure Boot UEFI images
2025-04-28 04:05:52 -04:00
Marcus Schäfer
944998b239
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
2025-04-28 10:04:08 +02:00
Neal Gompa
76dedc5532 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
2025-04-27 17:14:23 -04:00
Marcus Schäfer
01a057312a
Merge pull request #2789 from OSInside/distro-support-matrix
doc: overview: Add list of supported Linux distributions
2025-04-27 21:16:49 +02:00
Marcus Schäfer
6309726927
Make sure editbootinstall runs offline
editbootinstall expects the system to be umounted
2025-04-27 20:58:19 +02:00
Marcus Schäfer
8deb229917
Make sure post sync actions are in scope 2025-04-27 20:16:20 +02:00
Marcus Schäfer
8d51426817
Follow up fix for overlayroot builds for EFI path
Only perform the boot overlay if there is an extra boot partition
2025-04-27 20:00:52 +02:00
Marcus Schäfer
3fb2756802
Only remove entries from exclude list if present 2025-04-27 19:34:13 +02:00
Marcus Schäfer
d4324cebff
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
2025-04-27 19:14:19 +02:00
Neal Gompa
15469e305f doc: overview: Add list of supported Linux distributions
These are the Linux distributions that are developed and actively
tested for with the latest kiwi releases.

This should offer greater clarity about what we're able to support
as an upstream project.
2025-04-27 12:04:27 -04:00
Marcus Schäfer
82622eff68
Fixed mount of image system for volume managers
The ImageSystem.mount() method implemented its own handling
for mounting the volumes of a volume manager based system.
First and foremost this duplicates code that already exists
in the respective VolumeManager implementation and second
the code behaved wrong in case of btrfs when there is no
default subvolume configured
2025-04-27 16:46:14 +02:00
Marcus Schäfer
37dc3d85ff
Handle grub fix functions less strict
If called on full read-only systems, log the information
that the files can't be modified but do not fail. On
such systems the expectation is that no fix code must
be applied and as such the fix function can be considered
an optional step.
2025-04-27 16:36:56 +02:00
Neal Gompa (ニール・ゴンパ)
eeea9e6405
Merge pull request #2787 from OSInside/fix_root_setup_for_encrypted_overlay
Fixed root setup for encrypted overlay disk
2025-04-25 08:27:09 -04:00
Marcus Schäfer
f80b9df5a1
Fixed root setup for encrypted overlay disk
When building an image with overlayroot set to true and
activated luks encryption, the root= parameter must be
set to root=overlay:MAPPER=luks instead of the standard
overlay:PARTUUID mapping. This Fixes #2776
2025-04-25 14:22:41 +02:00
Neal Gompa (ニール・ゴンパ)
7f2199b43c
Merge pull request #2786 from OSInside/workaround_dracut_bug
Change suffix for package manager config files
2025-04-25 07:06:39 -04:00
Marcus Schäfer
1e9dced1a1
Change suffix for package manager config files
Use .config instead of .conf for the temporary package
manager config files. Reason for this change is a bug in
dracut which reads and executes all /*.conf files from
the system. This Fixes #2780
2025-04-25 12:52:12 +02:00
Neal Gompa (ニール・ゴンパ)
1969c51008
Merge pull request #2785 from OSInside/security_context_after_sync
Set security context after root sync
2025-04-25 06:16:42 -04:00
Marcus Schäfer
34a2a0db50
Set security context after root sync
On selinux enabled image builds we call setfiles initially
after the root tree is complete and after each script invocation
that might change the system. However the security context
also applies to mount points e.g volumes which only exists
at the time when the root tree gets synced to the actual image
binary. Thus this commit also calls setfiles on the mounted
root tree after data sync. This Fixes rh#2333743
2025-04-25 11:26:01 +02:00
Marcus Schäfer
66c21076a0
Merge pull request #2784 from OSInside/fix_doc_link
Fix broken doc link
2025-04-25 09:37:02 +02:00
Marcus Schäfer
bea7599dc8
Fix broken doc link
Rephrase chapter pointing to a documentation side at VMware.
They are constantly changing their documentation URLs that
I'm tired of fixing this. This Fixes #2782
2025-04-25 09:22:13 +02:00
Neal Gompa (ニール・ゴンパ)
11c69bff04
Merge pull request #2774 from OSInside/fix_grub_loader_type_for_bls
Update LOADER_TYPE setup for grub
2025-04-24 07:30:17 -04:00
Marcus Schäfer
cf5f01a8be
Update LOADER_TYPE setup for grub
If the bootloader attribute: bls is set to true, make sure
the LOADER_TYPE changes to grub2-bls. This is related to
Issue #2773
2025-04-24 12:50:11 +02:00
Marcus Schäfer
ff0f885ad0
Bump version: 10.2.16 → 10.2.17 2025-04-22 16:03:39 +02:00
Neal Gompa (ニール・ゴンパ)
8208be9b09
Merge pull request #2781 from OSInside/fix_key_slot_handling_for_reencrypt
Fix key slot selection for luks reencrypt
2025-04-22 09:36:54 -04:00
Marcus Schäfer
67ab6b3a2d
Fix key slot selection for luks reencrypt
Depending on the type setup for a luks encrypted image, there
might be one or two key slots available. When kiwi is requested
to perform the reencryption process at least one key-slot and
the proper keyfile/passphrase must be provided. This commit
stores the information about the key-slot number for which
a decryption information exists in the initrd. In addition to
the code change also the corresponding integration test image
was updated.
2025-04-22 14:53:39 +02:00
Marcus Schäfer
4dd497c285
Fixed test-image-gce integration test
python3-gcemetadata was renamed to python-gcemetadata
2025-04-22 09:42:00 +02:00
Marcus Schäfer
d51f0c3923
Fixed integration test builds for TW
Request dracut explicitly when needed
2025-04-21 20:39:16 +02:00
Neal Gompa (ニール・ゴンパ)
bd6d1b471d
Merge pull request #2778 from OSInside/efifatfileimage-filter
Add support for filtering out files from the ESP image for GRUB
2025-04-16 16:04:01 -04:00
Neal Gompa
22190cfb74 Add support for filtering out files from the ESP image for GRUB
Prior to this change, KIWI blindly synced the ESP directory into the
embedded ESP image. Depending on the distribution and packages included
for the created image, this can have undesirable side-effects.

For image builds that need some more fine-grained control over the
creation of the embedded ESP image (particularly for ISO images),
this change introduces the ability to inject an exclusion list
similar to what is used to filter out files for the root filesystem.

Fixes: https://github.com/OSInside/kiwi/issues/2008
Fixes: https://github.com/OSInside/kiwi/issues/2777
2025-04-16 15:59:30 -04:00
Neal Gompa (ニール・ゴンパ)
aa0adc7ff6
Merge pull request #2775 from OSInside/oci-prefix-bundle-extension
Fix bundle extension for container types
2025-04-15 16:21:45 -04:00
Neal Gompa
cdd0b28531 Fix bundle extension for container types
When building result files that use container types like oci or docker,
kiwi creates them as archive tarballs with an extension prefix to
indicate the special nature of the archive. However, the bundler
code does not retain the prefix, which results in the wrong file
extension for these archives.

This change adds exceptions for these types and refactors the
exception handling to unify it with the Vagrant image filename
handling, which operates similarly.

Fixes: https://github.com/OSInside/kiwi/issues/2628
2025-04-13 12:12:22 -04:00
Marcus Schäfer
463a79c078
Fix Agama PXE build
A bootloader setup is needed to create config.bootoptions
Even though a ramdisk deployment does not require a bootloader
setup we need it because part of the setup is the root device
reference which is still needed to pivot root into the
system
2025-04-10 12:05:13 +02:00
Marcus Schäfer
031dde55bc
Fix firmware setting for Agama PXE image 2025-04-10 11:41:21 +02:00
Marcus Schäfer
c310015b35
Added obs BUILD_FLAVOR for agama
Required for multibuild (multiple profiles) build
2025-04-10 11:34:06 +02:00
Marcus Schäfer
10c15bb92b
Merge pull request #2771 from OSInside/allow_ramdisk_size_as_oem_option
Added <oem-ramdisk-size> element
2025-04-10 11:30:36 +02:00
Marcus Schäfer
2e417b8760
Merge pull request #2772 from OSInside/prevent_loading_unused_data
Prevent loading unused data in oem deployment
2025-04-10 11:29:47 +02:00
Marcus Schäfer
c010b50e64
Update Agama integration test
Split the build into two profiles ISO and PXE to differentiate
the build results into a small Agama for remote installations
and a standard Agama for iso based installations
2025-04-10 09:14:53 +02:00
Marcus Schäfer
b889a11766
Update Agama integration test
Make use of <oem-ramdisk-size> in the Agama integration test
2025-04-09 18:17:32 +02:00
Marcus Schäfer
313f296587
Added <oem-ramdisk-size> element
So far it was only possible to specify the size of the ramdisk
via the kernel commandline option: ramdisk_size. In a remote
deployment it was therefore required to carry this size as a
mandatory information to the deployment server. With this commit
we allow to specify the size for the ramdisk to be configured as
part of the image configuration which makes this information
also available inside of the initrd. If provided the ramdisk_size
kernel commandline option still takes precedence over the
<oem-ramdisk-size> setting to avoid any behavior change and to
still allow dynamic overrides of the ramdisk size.
2025-04-09 18:17:32 +02:00
Marcus Schäfer
2f92bdf067
Prevent loading unused data in oem deployment
In case rd.kiwi.ramdisk is used as part of a remote deployment
setup, it's not needed to load the system kernel and initrd
because it's not used as kexec is not called with the system
deployed into memory. For ramdisk deployments the system is
booted using the currently active kernel and initrd and as
such we can avoid loading an extra kernel and initrd for
booting the system via kexec.
2025-04-09 17:04:48 +02:00
Neal Gompa (ニール・ゴンパ)
a8dc8c3329
Merge pull request #2770 from OSInside/fix_apt_inconsistent_metadata
reinstall bootstrap packs in image phase for apt
2025-04-09 07:01:47 -04:00
Marcus Schäfer
9b6c121957
reinstall bootstrap packs in image phase for apt
Due to the special bootstrap process, the packages unpacked
during bootstrap are not properly listed in the apt index.
Therefore the bootstrap packages are added to the install
phase which causes an install of this packages again to
fix the apt index and provide a consistent system from
an apt perspective. This Fixes #2768
2025-04-08 20:04:58 +02:00
Marcus Schäfer
866bbddb06
Merge pull request #2769 from OSInside/fix_restore_of_keyfile
Fixed restore of keyfile after reencryption
2025-04-08 14:55:22 +02:00
Marcus Schäfer
3f297df013
Fixed restore of keyfile after reencryption
When kiwi runs the reencryption it also restores an eventual
existing keyfile. However if the option rd.kiwi.oem.luks.reencrypt_randompass
is specified no former keyfile should be restored. The purpose
of reencrypt_randompass is to make sure only this in memory
passphrase can access the luks pool such that tooling at boot
time gets the opportunity to work with the luks pool for e.g.
setting up a TPM key or set a passphrase only known to the user.
2025-04-07 12:24:43 +02:00
Marcus Schäfer
db104a8d2b
Update dracut kiwi-lib module setup
Make sure all tools used in code are requested for inclusion
2025-04-04 10:04:07 +02:00
Marcus Schäfer
43f2dec3fa
Merge pull request #2767 from bugfinder/main
keep /usr/bin/sha256sum
2025-04-04 09:36:36 +02:00
Rüdiger Oertel
7a69b04d97
keep /usr/bin/sha256sum
dropping md5sum was okay, but now we need
the current tool to verify the checksum
2025-04-04 00:23:13 +02:00
Neal Gompa (ニール・ゴンパ)
bcf865f967
Merge pull request #2766 from OSInside/file_permissions_random_keyfile
Restrict keyfile permissions
2025-04-03 09:14:23 -04:00
Marcus Schäfer
f1fe46c8f2
Restrict keyfile permissions
For reencrypt in combination with rd.kiwi.oem.luks.reencrypt_randompass
make sure that the temporary random pass keyfile has 0400 root
owned access permissions set
2025-04-03 12:16:39 +02:00
Marcus Schäfer
9765c87bea
Merge pull request #2765 from OSInside/kiwi-image-oci-provides
package: Add kiwi-image:oci Provides to -systemdeps-containers
2025-04-02 15:00:15 +02:00
Neal Gompa
8992c94579 package: Add kiwi-image:oci Provides to -systemdeps-containers
This allows the Open Build Service to correctly resolve dependencies
when building OCI images.
2025-04-02 08:12:05 -04:00
Neal Gompa (ニール・ゴンパ)
7ffd39ec40
Merge pull request #2764 from OSInside/better_logging_of_config_file
Better logging which kiwi file is read
2025-04-02 07:04:33 -04:00
Marcus Schäfer
6c3dadd2b5
Merge pull request #2763 from bugfinder/master
also keep the ts binary, might be needed to provide timestamped logfiles
2025-04-02 11:12:14 +02:00
Marcus Schäfer
42532441fa
Better logging which kiwi file is read
Improve the log message that tells about reading the
kiwi config file to actually show the file path that
is read in. This is especially an issue if more than
one kiwi file is read in during the build process.
2025-04-02 11:09:45 +02:00
Rüdiger Oertel
6f91e754fe also keep the ts binary, might be needed to provide timestamped logfiles 2025-04-02 10:56:02 +02:00
Marcus Schäfer
72f2237bde
Update documentation
Add information about new apk (Alpine) support
2025-04-01 15:10:12 +02:00
Neal Gompa (ニール・ゴンパ)
e122384a58
Merge pull request #2762 from OSInside/add_alpine_support
Add support for Alpine
2025-04-01 06:22:28 -04:00
Marcus Schäfer
5018b58e86
Add support for Alpine
Add apk repository and package manager support and provide
an integration test build for the Alpine distribution
2025-04-01 10:44:41 +02:00
Neal Gompa (ニール・ゴンパ)
1994c715cb
Merge pull request #2760 from OSInside/use_metalink_repos_for_local_build
Use metalink repos for local test builds
2025-03-31 10:26:34 -04:00
Marcus Schäfer
fe26b49795
Fix F824 flake check for global assignments 2025-03-31 16:22:10 +02:00
Marcus Schäfer
1b4cefda1b
Use metalink repos for local test builds 2025-03-31 16:09:11 +02:00
Neal Gompa (ニール・ゴンパ)
1c3cc8db55
Merge pull request #2759 from OSInside/allow-c-utf8
schema: Allow C as a valid locale
2025-03-31 03:29:03 -04:00
Neal Gompa
e1534c508c schema: Allow C as a valid locale
It should be permitted to set the "C.UTF-8" locale for minimal images
that are not preloaded with locales. The "C.UTF-8" locale has been
supported in Linux distributions for many years.
2025-03-29 10:46:07 -04:00
Marcus Schäfer
5af510aacf
Bump version: 10.2.15 → 10.2.16 2025-03-25 13:13:00 +01:00
Neal Gompa (ニール・ゴンパ)
1a27b45e3c
Merge pull request #2755 from OSInside/allow_sourcetype_on_commandline
Support sourcetype setting on the commandline
2025-03-25 06:53:50 -04:00
Marcus Schäfer
48d3ccfd05
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
2025-03-25 11:35:09 +01:00
Marcus Schäfer
807aa36eca
Bump version: 10.2.14 → 10.2.15 2025-03-25 08:40:22 +01:00
Marcus Schäfer
747dc51fea
Fix gh-pages deployment
poetry install was not called, thus sphinx was not present
2025-03-25 08:39:18 +01:00
Marcus Schäfer
d84c39f5c1
Bump version: 10.2.13 → 10.2.14 2025-03-25 08:30:11 +01:00
Marcus Schäfer
15a187aae7
Merge pull request #2745 from OSInside/reencrypt_wipe_insecure_passphrase
Add rd.kiwi.oem.luks.reencrypt_randompass
2025-03-25 08:29:30 +01:00
Neal Gompa (ニール・ゴンパ)
8491f40d20
Merge pull request #2753 from OSInside/command_call_channels
Allow stderr data in CommandProcess
2025-03-24 14:39:19 -04:00
Marcus Schäfer
265b0d8e76 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
2025-03-24 14:29:51 -04:00
Neal Gompa (ニール・ゴンパ)
a41b8b7693
Merge pull request #2754 from OSInside/get_rid_of_travis_sphinx
Drop use of travis-sphinx
2025-03-24 14:17:59 -04:00
Marcus Schäfer
b76429ed01
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
2025-03-24 19:10:07 +01:00
Neal Gompa (ニール・ゴンパ)
065477ad97
Merge pull request #2752 from OSInside/arch_support_for_users
Support arch attribute for <users> section
2025-03-24 10:42:39 -04:00
Marcus Schäfer
fdfa3b7494
Support arch attribute for <users> section
Allow to setup users per arch. This Fixes #2737
2025-03-24 15:06:02 +01:00
Marcus Schäfer
f0a275dd68
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
repo for Debian 12 and added it to the integration test
description
2025-03-24 09:35:57 +01:00
Marcus Schäfer
14fefdbe48
Fixed python3_sitelib for debbuild in OBS 2025-03-21 21:18:08 +01:00
Marcus Schäfer
5e9f2f3ec9
Fixed test-image-agama
Service setup-systemd-proxy-env.path no longer exists
2025-03-21 08:46:32 +01:00
Marcus Schäfer
9c0e0472c5
Explicitly request shadow-utils
Make sure shadow-utils gets installed for rawhide
integration tests
2025-03-12 10:22:46 +01:00
Marcus Schäfer
61ea4ee593
Drop test-image-suse-on-dnf test
This was just a "can this work" test but has no real
relevance for users since nobody would use dnf to build
a suse image, there is also no help when it does not
work. So let's drop this test build
2025-03-12 09:12:36 +01:00
Marcus Schäfer
490700c181
Merge pull request #2746 from OSInside/fix_build_tests_to_run_outside_of_obs
Make integration tests to build outside of OBS
2025-03-12 08:50:56 +01:00
Marcus Schäfer
15470b5337
Make integration tests to build outside of OBS
Update and extend all integration tests such that they also
build outside of the Open Build Service. Along with the changes
on the descriptions a simple build-tests.sh script was added
to drive the build process. The build is based on the kiwi
boxbuild plugin in container mode to build the tests
from a given build-tests directory. A new chapter to document
how to Build the Build Tests is also provided and referenced
on the github main page.
2025-03-09 20:14:46 +01:00
Neal Gompa (ニール・ゴンパ)
80529c63ec
Merge pull request #2747 from OSInside/distutils_sysconfig_deprecated
distutils sysconfig is deprecated
2025-03-06 12:38:26 -05:00
Marcus Schäfer
8474085b81
distutils sysconfig is deprecated
Move to sysconfig module
2025-03-06 11:32:25 +01:00
Marcus Schäfer
88930d3f3d
Add rd.kiwi.oem.luks.reencrypt_randompass
For OEM LUKS2 encrypted disk images in combination
with rd.kiwi.oem.luks.reencrypt. Reset insecure built time
passphrase with a random onetime passphrase
2025-03-03 12:55:17 +01:00
Marcus Schäfer
03b05601f7
Bump version: 10.2.12 → 10.2.13 2025-03-03 09:40:13 +01:00
Neal Gompa (ニール・ゴンパ)
04269e1288
Merge pull request #2744 from OSInside/fix_ppc_live_iso
Lookup CHRP loader instead of using a static name
2025-02-28 08:55:44 -05:00
Marcus Schäfer
8223834da8
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
2025-02-28 11:52:08 +01:00
Marcus Schäfer
fdcc309e15
Bump version: 10.2.11 → 10.2.12 2025-02-26 17:39:37 +01:00
Marcus Schäfer
33ae02bd43
Merge pull request #2740 from OSInside/fix_env_regression
Fix profile env variable name regression
2025-02-26 17:38:56 +01:00
Marcus Schäfer
786faf44f6
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
2025-02-26 16:17:40 +01:00
Neal Gompa (ニール・ゴンパ)
aaa9380e8b
Merge pull request #2739 from OSInside/fix_grub_ppc_module_list
Fix grub mkimage call for the ppc platform
2025-02-25 12:48:56 +01:00
Marcus Schäfer
d0e58643c5
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
2025-02-25 11:51:49 +01:00
Marcus Schäfer
207ad8203d
Bump version: 10.2.10 → 10.2.11 2025-02-16 17:41:04 +01:00
Marcus Schäfer
8f3fa76343
Update box plugin documentation
Add chapter about new container build feature. The
box plugin can now also run the build in containers
2025-02-16 17:21:14 +01:00
Neal Gompa (ニール・ゴンパ)
47ea103a80
Merge pull request #2734 from OSInside/github_runner_closing_down
The ubuntu 20.04 github runner is closing down
2025-02-12 01:59:18 +01:00
Marcus Schäfer
cfa34c14d2
The ubuntu 20.04 github runner is closing down
Make sure to move to another runner for workloads which
still uses ubuntu 20.04
2025-02-11 18:29:44 +01:00
Marcus Schäfer
236381191e
Bump version: 10.2.9 → 10.2.10 2025-02-09 20:16:13 +01:00
Neal Gompa (ニール・ゴンパ)
95e6f03fef
Merge pull request #2732 from OSInside/poetry_messes_with_epoch
Poetry build sdist timestamps set to epoch 0
2025-02-09 20:05:02 +01:00
Marcus Schäfer
9ac7a9c202
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
2025-02-09 19:36:28 +01:00
Marcus Schäfer
d3f25324f9
Bump version: 10.2.8 → 10.2.9 2025-02-01 23:13:22 +01:00
Marcus Schäfer
04d05f80d0
Merge pull request #2727 from OSInside/allow_dialog_timeout
Add rd.kiwi.dialog.timeout option
2025-01-31 17:25:48 +01:00
Marcus Schäfer
08b36058b5
Merge pull request #2729 from OSInside/chkstat_status_is_debug
Classify missing chkstat as debug message
2025-01-31 10:12:24 +01:00
Marcus Schäfer
a9fe90add1
Classify missing chkstat as debug message
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
2025-01-30 23:55:51 +01:00
Neal Gompa (ニール・ゴンパ)
30356e2317
Merge pull request #2728 from OSInside/parallel_setfiles
Allow to run setfiles multi threaded
2025-01-30 16:56:49 -05:00
Marcus Schäfer
92cd8fc793
Allow to run setfiles multi threaded
Use option -T0 for newer setfiles version.
This Fixes #2719
2025-01-30 22:50:28 +01:00
Neal Gompa (ニール・ゴンパ)
af9272fe18
Merge pull request #2725 from OSInside/fix_loosing_label_of_grub2-install
Make sure copy actions does not drop context
2025-01-30 16:48:22 -05:00
Neal Gompa (ニール・ゴンパ)
97792736b8
Merge pull request #2724 from OSInside/fix_archive_import
Improve unit test for archive target_dir
2025-01-30 16:42:44 -05:00
Neal Gompa (ニール・ゴンパ)
5a134bb3d7
Merge pull request #2723 from OSInside/fix_profiled_overlay_import
Fixed profiled overlay imports
2025-01-30 16:41:59 -05:00
Marcus Schäfer
c90c1c11c3
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
2025-01-30 22:39:12 +01:00
Marcus Schäfer
5e8fd3e3b2
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
2025-01-30 22:10:39 +01:00
Marcus Schäfer
60becf931f
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
78238a993c
This Fixes #2701
2025-01-30 21:26:00 +01:00
Marcus Schäfer
29012c7056
Fixed profiled overlay imports
When building an image for profile: SOME and providing
an overlay directory named SOME/... kiwi will sync the
contents of this overlay directory to the root tree.
However it took the toplevel name SOME/ into account
which is unwanted because only the sub data structure
should be synced into the new root tree. This
Fixes #2690
2025-01-30 20:56:53 +01:00
Marcus Schäfer
21221cc24e
Merge pull request #2720 from aaannz/multipath_dracut
Use multipath child instead of parent device
2025-01-27 14:46:35 +01:00
Marcus Schäfer
6b59804ebf
Bump version: 10.2.7 → 10.2.8 2025-01-27 11:47:55 +01:00
Marcus Schäfer
a2c4b9cddd
Merge pull request #2713 from OSInside/duplicate_deployment_detection
Added disk validation for duplicate installs
2025-01-27 11:47:26 +01:00
Ondrej Holecek
c8b8b4a743
Use multipath child instead of parent device
On multipath systems we need to find underlying child device
instead of using parent device.
This prevents listing all parent devices for a multipath device
2025-01-27 11:46:48 +01:00
Marcus Schäfer
d8045dc215
Increase size for agama integration test build
Agama needs more space to build now
2025-01-25 17:55:15 +01:00
Marcus Schäfer
379d4aaff2
Fixed agama integration test
rubygem-byebug and rubygem-agama-yast seems to
no longer exist
2025-01-25 17:41:59 +01:00
Marcus Schäfer
4af400736e
Update TW integration tests
Package nscd was dropped from TW
2025-01-25 17:38:01 +01:00
Neal Gompa (ニール・ゴンパ)
414b791e28
Merge pull request #2715 from OSInside/fix_unexpected_error_condition
Fix return value of grub helper methods
2025-01-22 04:49:45 -05:00
Neal Gompa (ニール・ゴンパ)
a247e519a0
Merge pull request #2717 from OSInside/fix_docs_for_iso_use
Fix documentation regarding URI styles
2025-01-22 04:49:08 -05:00
Marcus Schäfer
c9beec2ea7
Fix documentation regarding URI styles
In reference to commit 760a65558f
the support for iso:// URI types was dropped some time ago.
However, the documentation was not properly updated. This
commit fixes it
2025-01-22 10:38:09 +01:00
Marcus Schäfer
8c8981f01f
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
2025-01-21 10:44:55 +01:00
Marcus Schäfer
0eb2d2713e
Added disk validation for duplicate installs
Installing the same image to different storage disks on the
same machine creates device conflicts with unexpected side
effects. This commit adds a validation based on the PTUUID
of the disk image to check if another device on the system
has the same ID and if yes, does not allow to install the
image again including a message which device takes the same
identifier. This references bsc#1228741
2025-01-20 18:13:02 +01:00
Neal Gompa (ニール・ゴンパ)
d2799e87e2
Merge pull request #2712 from OSInside/fix_source_locator_for_key_attributes
Fixed documentation for signing key attribute
2025-01-20 07:34:24 -05:00
Marcus Schäfer
35af7b1d3b
Fixed documentation for signing key attribute
The source locator name for local files was incorrect
2025-01-20 09:16:14 +01:00
Marcus Schäfer
cf1f137d47
Bump version: 10.2.6 → 10.2.7 2025-01-18 17:58:02 +01:00
Marcus Schäfer
0486fad9eb
Update documentation
Added a new troubleshooting chapter as subsection to
the Build Host Constraints named Package Manager Behavior.
It serves the purpose to describe options for the customer
to change the default package manager behavior which
we from the kiwi side do not influence intentionally.
This is a followup change to bsc#1235448
2025-01-18 17:53:07 +01:00
Neal Gompa (ニール・ゴンパ)
42fa10c984
Merge pull request #2708 from OSInside/delete_tox_artifacts
Drop still present tox artifacts
2025-01-14 08:13:07 -05:00
Marcus Schäfer
8949fce5e1
Drop still present tox artifacts
There were still some left over tox files and the
documentation contribution chapter was also wrong at
several places
2025-01-14 10:52:43 +01:00
Neal Gompa (ニール・ゴンパ)
9a526edd68
Merge pull request #2706 from OSInside/allow_to_specify_zypp_env_variables
Add support for reading optional package manager env file
2025-01-13 10:03:57 -05:00
Marcus Schäfer
5c217afa00
Add support for reading optional pkgmgr env file
If there is a file .kiwi.package_manager.env in the root of
the image tree it will be read and put into the caller environment for
the selected package and repository manager. There are features
in e.g zypper which can only be used via env variables.
This Fixes bsc#1235448
2025-01-13 15:53:54 +01:00
Marcus Schäfer
12c4c8fae3
Merge pull request #2705 from OSInside/rename_btrfs_root_is_snapshot
Rename btrfs root is snapshot
2025-01-13 11:55:21 +01:00
Marcus Schäfer
927b24f598
Auto convert unit test XML data to schema v8.3 2025-01-13 10:24:04 +01:00
Marcus Schäfer
2edcfed120
Rename btrfs_root_is_snapshot
Rename btrfs_root_is_snapshot to btrfs_root_is_snapper_snapshot.
This happens in preparation for the changes suggested in #2697
where we want to get rid of snapper specific btrfs code which
will be available in snapper natively soon. To make sure a btrfs
layout specific to snapper(and SUSE), the implicitly used attribute
named btrfs_root_is_snapshot now becomes explicit and its new
name will indicate that snapper sits behind it. Along with the
rename a XSLT stylesheet to automatically convert the old name
into the new name for schema v8.3 will be performed.
2025-01-13 10:22:55 +01:00
Marcus Schäfer
719686d3c1
Bump version: 10.2.5 → 10.2.6 2025-01-13 09:25:29 +01:00
Marcus Schäfer
8c82847528
Merge pull request #2703 from OSInside/re_encrypt_support
Added LUKS reencryption support
2025-01-13 09:25:01 +01:00
Marcus Schäfer
5d0419cc15
Fixed donate button target 2025-01-10 16:49:03 +01:00
Marcus Schäfer
2252087593
Added LUKS reencryption support
Added rd.kiwi.oem.luks.reencrypt boot option consumed by the
kiwi-repart dracut module. For OEM LUKS2 encrypted disk images.
If set, reencrypts the disk prior an eventual resize and therefore
creates a new key pool and master key. The reencryption is advisable
if the image binary is not protected. With access to the image
binary it's possible to extract the luks header which then allows to
decrypt the data unless it was reencrypted. The reencryption process
only runs if the checksum of the luks header still matches the one
from the original disk image. Be aware that the reencryption will
ask for the passphrase if the image has been built with an initial
luks passphrase.
2025-01-10 15:12:24 +01:00
Marcus Schäfer
6a10983e07
Fixed arm/tumbleweed/test-image-rpi
No ruby required for this integration test build
2025-01-08 09:51:06 +01:00
Marcus Schäfer
1bfa6f45f5
Plain zipl loader needs boot partition
If the rootfs is something zipl cannot read, we need an
extra boot partition using a supported filesystem
2025-01-07 09:58:22 +01:00
Marcus Schäfer
233aa77f9c
Fixed IBM-Cloud-Standard profile
The test-image-MicroOS integration test builds an IBM-Cloud-Standard
profile as encrypted variant with a random key that is not protected
by an encrypted boot image. This doesn't make sense. Thus the
encryption setup for the IBM cloud standard build got removed.
Use the IBM-Cloud-Secure-Execution profile to test encrypted
secure linux builds
2025-01-07 09:44:06 +01:00
Marcus Schäfer
8ba1eb8cff
Fixed test-image-qcow-openstack
rsh package was dropped from TW
2025-01-07 09:18:55 +01:00
Neal Gompa (ニール・ゴンパ)
fd5303613e
Merge pull request #2702 from OSInside/fix_s390_genprotimg_signing
Fix genprotimg for s390 builds
2025-01-06 06:18:12 -05:00
Marcus Schäfer
d2062872e0
Fix genprotimg for s390 builds
A recent change on genprotimg now forbids to use --cert in
combination with --no-verify, even though this was allowed
before.
2024-12-31 13:02:55 +01:00
Neal Gompa (ニール・ゴンパ)
d4ca89e3f9
Merge pull request #2700 from OSInside/fix_zypper_repo_and_pkg_gpgcheck_setup
Fix documentation for repo and pkg gpgcheck flags
2024-12-20 16:03:36 -05:00
Marcus Schäfer
0109686c8f
Fix documentation for repo, package gpg settings
In contrast to the documentation, kiwi sets default values
for any gpg setting if not explicitly specified differently.
We want to avoid to inherit a behavior from how the distribution
packages the package manager. This commit fixes the documentation
to be in line with the implementation
2024-12-20 21:59:38 +01:00
Neal Gompa (ニール・ゴンパ)
7102f91cd1
Merge pull request #2698 from OSInside/fix_config_functions_action
Fix config functions action
2024-12-19 10:20:43 -05:00
Neal Gompa (ニール・ゴンパ)
220533c986
Merge pull request #2699 from OSInside/drop_insecure_md5_usage
Drop insecure and unsupported md5 digest
2024-12-19 10:19:30 -05:00
Marcus Schäfer
d4d39e481a
Drop insecure and unsupported md5 digest
Decommission the Checksum.md5() method and move all places
in code to sha256(). The md5 digest is considered insecure
and has also been removed from hashlib as a supported digest.
This Fixes #2696
2024-12-19 11:26:07 +01:00
Marcus Schäfer
97a6534863
Fix config functions action
The action failed on the setup of the runtime because the upgrade
of pip failed.
2024-12-19 10:48:43 +01:00
Marcus Schäfer
f32190ff21
Bump version: 10.2.4 → 10.2.5 2024-12-19 10:35:24 +01:00
Marcus Schäfer
9c7fbe0774
Changed systemfiles provider
Instead of providing a static list of filenames, provide a list
of package names. It is expected that the pilot of flake-pilot
resolves this list against the local package database to build
up the filelist for provisioning
2024-12-16 11:36:07 +01:00
Marcus Schäfer
5ebf22e772
Bump version: 10.2.3 → 10.2.4 2024-12-14 20:59:03 +01:00
Neal Gompa (ニール・ゴンパ)
8b14c13806
Merge pull request #2695 from AdamWill/live-gpt-test
xorriso: respect efiparttable and gpt_hybrid_mbr
2024-12-13 20:30:00 +01:00
Adam Williamson
75c9939f84 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
instead of an MBR (msdos) one. If it's building an image that is not
UEFI-compatible it will always write an MBR label, regardless of
this setting.

If 'gpt_hybrid_mbr' is set, xorriso will write an Ubuntu-style
MBR/GPT hybrid partition table, where the MBR partition table
includes a partition with type 00 and the bootable flag, as well
as the partition with type ee required by the UEFI spec. This
mildly violates the UEFI spec but may make the image bootable on
native BIOS or CSM firmwares which refuse to boot from a disk with
no partition marked 'bootable' in the MBR. If 'gpt_hybrid_mbr' is
not set, xorriso will write a strictly UEFI-spec compliant label,
with just the 'protective MBR' required by the UEFI spec (no
bootable partition) and the correct GPT partition table. Note
this is somewhat different from what gpt_hybrid_mbr does for
disk images.

Also, we now pass -compliance no_emul_toc when building ISOs, as
recommended by upstream in
https://lists.gnu.org/archive/html/bug-xorriso/2024-11/msg00012.html
This tool is generally always going to be building ISOs intended
for write-once use, not multi-session use (and which are rarely,
these days, written to physical discs at all anyway).

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-12-13 11:13:27 -08:00
Marcus Schäfer
b1da972438
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
2024-12-13 10:44:39 +01:00
89959df7e9
Merge pull request #2692 from OSInside/revert-pr2687
Drop /dev/pts from bind mount locations
2024-12-11 17:01:55 +01:00
Neal Gompa
7d0edaa5c7 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 daf1323c5d.
2024-12-10 13:14:52 -05:00
Marcus Schäfer
5b22e2589c
Fixed unit test 2024-12-09 11:04:03 +01:00
Marcus Schäfer
c5d7b4aa95
Don't take ghost files into account
When creating the system files information do not
take ghost files and artifact files into account
2024-12-08 20:35:42 +01:00
Marcus Schäfer
479021dc34
Bump version: 10.2.2 → 10.2.3 2024-12-03 14:58:40 +01:00
Marcus Schäfer
a9c4d7ad17
Update STYLEROOT to SUSE 2022 2024-12-03 14:56:47 +01:00
Tom Schraitle
ac2359926b
Merge pull request #2689 from OSInside/fix_doc_links
Fix broken links in the documentation
2024-12-03 08:09:08 +01:00
Neal Gompa (ニール・ゴンパ)
28a94c662b
Merge pull request #2687 from OSInside/dev_pts
Added /dev/pts to bind mount locations
2024-12-02 18:48:23 +01:00
Neal Gompa (ニール・ゴンパ)
08ee679178
Merge pull request #2688 from OSInside/fix_legacy_bios_check
Fix legacy_bios_mode detection
2024-12-02 18:47:40 +01:00
John Paul Adrian Glaubitz
1d02e1661c Add support for loongarch64
This Fixes #2684
2024-12-02 18:24:00 +01:00
Marcus Schäfer
e73d627c4b
Fix broken links in the documentation 2024-12-02 14:57:30 +01:00
Marcus Schäfer
f6f21fec16
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.
2024-12-02 13:33:00 +01:00
Marcus Schäfer
daf1323c5d
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
2024-12-02 09:48:50 +01:00
Marcus Schäfer
2e9550382e
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
all data from the runtime should be provisioned from the
host. Using this feature tightly couples the flake to the
host OS distribution and version.
2024-11-28 15:22:47 +01:00
Marcus Schäfer
3fa135e64c
Bump version: 10.2.1 → 10.2.2 2024-11-27 09:59:27 +01:00
Marcus Schäfer
d12c59c466
Fix scope issue
Increase livetime of the the compressor instances
to the livetime of RootImportOCI. They create temporary
files which are referenced later and need to live longer
than the block they got created in
2024-11-27 09:49:05 +01:00
Marcus Schäfer
fcc9b20c69
Bump version: 10.2.0 → 10.2.1 2024-11-26 13:14:19 +01:00
Marcus Schäfer
4de048bc56
Merge pull request #2682 from OSInside/multi_derived_from
Allow to derive from multiple containers
2024-11-26 09:56:27 +01:00
Neal Gompa (ニール・ゴンパ)
154aa8e079
Merge pull request #2683 from OSInside/fix_use_of_create_options_in_live_builder
Fixed use of fscreateoptions for iso type
2024-11-25 16:47:53 +01:00
Marcus Schäfer
71608c1122
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
2024-11-25 16:30:53 +01:00
Marcus Schäfer
f4a7237374
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
2024-11-25 15:21:25 +01:00
Marcus Schäfer
c50183f220
Bump version: 10.1.18 → 10.2.0 2024-11-21 11:52:53 +01:00
Marcus Schäfer
aa0c4f7f74
Add selinux test build to TW
Also update derived docker integration test to latest Leap
2024-11-21 11:43:33 +01:00
Marcus Schäfer
231c3db62c
Merge pull request #2528 from OSInside/confidental_compute_s390
Confidential compute s390
2024-11-21 11:26:50 +01:00
Marcus Schäfer
43cd86dfaf
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
2024-11-21 10:24:04 +01:00
Marcus Schäfer
1d9f2d7ff2
Added development group in pyproject setup
generateDS and other tools are needed and were forgotten
to be added when we deleted the tox dependency
2024-11-21 10:24:04 +01:00
Marcus Schäfer
b922d8ba2d
Added IBM Secure Execution support on s390
IBM SEL(Secure Execution for Linux) is supported for s390
KVM guests. SEL images used to start a confidential computing
protected guest contain an encrypted boot image which encapsulates
the kernel the initrd and the bootparams. The encrypted Image is
provided by the KVM/hypervisor to the Embedded zFirmware of the
system (the ultravisor device). The decryption keys are hardware
based and each system has an individual keypool unique to that
system. The root filesystem is LUKS encrypted with a random key
produced by kiwi at build time and kept inside of the initrd which
exists only inside of the encrypted boot image and the encrypted
rootfs to allow kernel updates. The commit to support secure
execution also comes with an integration test that provides
profiled image builds to target SUSE's LinuxONE as well
as IBM Cloud systems.
2024-11-21 10:24:04 +01:00
Neal Gompa (ニール・ゴンパ)
8ab85d3d47
Merge pull request #2618 from OSInside/fix-application-id-schema
kiwi/schema: Fix allowed value type for ISO publisher and application ID
2024-11-20 17:21:43 +01:00
Neal Gompa
1c0d1dd98a 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.
2024-11-19 20:14:58 -05:00
Neal Gompa (ニール・ゴンパ)
2faacfbb95
Merge pull request #2677 from OSInside/fix_profile_setup
Fix setup of kiwi environment variables
2024-11-19 17:39:22 +01:00
Marcus Schäfer
e44c7f0e55
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.
2024-11-17 23:40:29 +01:00
Marcus Schäfer
cade4b4cb0
Merge pull request #2674 from OSInside/containers_sections_obs_integration
Added containers integration with OBS
2024-11-13 11:24:18 +01:00
Marcus Schäfer
24f32d1bce
Added containers integration with OBS
When building in the Open Build Service (OBS) there is no way
to create outgoing connections from the build workers. To allow
the <containers> section to fetch containers from the SUSE
registry we need to apply an OCI URI translation into a local
path. The actual OCI container image is expected to be provided
by the obs backend on the worker. Along with this commit also an
integration test named test-image-disk-containers is provided.
This Fixes jira#OBS-351
2024-11-11 16:35:59 +01:00
Marcus Schäfer
463f044df6
Merge pull request #2673 from OSInside/remove_tox
Remove tox dependency
2024-11-06 09:26:49 +01:00
Marcus Schäfer
50c96d4dba
Fix rendering of SUSE docs
The SUSE documentation is produced through a conversion
of the ReST source into docbook. The name kiwi is reserved
in the index and needs to be referenced as kiwi-ng when
used as command.
2024-11-05 18:03:25 +01:00
Marcus Schäfer
1ec3b25e91
Remove tox dependency
tox was used as sort of a make target to run unit tests
and more in a python virtualenv. However, since we switched
everything to poetry it's no longer needed to let tox create
the python virtual environments. This commit moves the tox
targets into the Makefile and adapts the github workflow
files accordingly. In addition the scripts container based
tests were re-activated and fixed such that they succeed
again.
2024-11-05 18:03:25 +01:00
Marcus Schäfer
eade3d4d26
Fix make build target
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.
2024-11-01 13:31:20 +01:00
Marcus Schäfer
41dee12bba
Bump version: 10.1.17 → 10.1.18 2024-11-01 13:08:12 +01:00
Marcus Schäfer
43bb97c621
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
2024-10-31 23:33:45 +01:00
Marcus Schäfer
3780b52186
Fix s390 test-image-disk build
Add missing kernel links used by suse tools
2024-10-31 17:46:31 +01:00
Marcus Schäfer
0e986a9121
Bump version: 10.1.16 → 10.1.17 2024-10-31 10:01:54 +01:00
Marcus Schäfer
26a6f66367
Merge pull request #2672 from OSInside/fix_project_dependencies
Add pytest-container as optional dependency
2024-10-31 09:57:00 +01:00
Marcus Schäfer
7e0cd766c3
Merge branch 'erofs_testing' 2024-10-31 09:54:34 +01:00
Marcus Schäfer
72f2e7ae91
Fix networking in erofs integration test
The network setup was systemd-networkd based but
the provided network config was not for systemd
2024-10-31 09:52:32 +01:00
Marcus Schäfer
5042d331c4
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
tests for the shell helper methods. For building the package
this dependency should not be pulled in
2024-10-30 16:16:50 +01:00
Marcus Schäfer
2780685666
Fix coloring of build_status.sh flags
Depending on the place of the status flag the color
setup might fail. This commit fixes it
2024-10-30 13:49:02 +01:00
Marcus Schäfer
99ba0f27a0
Merge pull request #2605 from OSInside/py3.13-testing
CI: Add testing against Python 3.13
2024-10-23 15:45:40 +02:00
Neal Gompa
0e87fe5fa9
CI: Add testing against Python 3.13
Python 3.13 is shipping in Fedora Linux for Fedora Linux 41, so we
should ensure kiwi is tested against it. The testing setup is
based on the latest development version of 3.13 as it is not
yet released.
2024-10-23 15:40:21 +02:00
Marcus Schäfer
c98ec19142
Bump version: 10.1.15 → 10.1.16 2024-10-23 12:21:32 +02:00
Marcus Schäfer
3a4b1b157c
Merge pull request #2671 from OSInside/fix_erofs_requirement
Fix erofs requires in spec
2024-10-23 12:20:58 +02:00
Marcus Schäfer
7cfcb93c0f
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
2024-10-23 10:23:36 +02:00
Neal Gompa (ニール・ゴンパ)
f525c0f21f
Merge pull request #2669 from OSInside/vagrantconfig_required_with_vagrant_disk_format
Add vagrantconfig rule for vagrant format
2024-10-22 14:14:50 -04:00
Marcus Schäfer
96cda0dd5d
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
2024-10-22 10:53:25 +02:00
Marcus Schäfer
5416ae8f60
Bump version: 10.1.14 → 10.1.15 2024-10-21 15:01:08 +02:00
Neal Gompa (ニール・ゴンパ)
0bfbb62ed2
Merge pull request #2664 from OSInside/container_import
Add new registry section
2024-10-21 08:41:44 -04:00
Marcus Schäfer
a349c055c4
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"/>
</containers>

During the kiwi process the containers are fetched into a
temporary location and a systemd service is configured to
one time load the containers into the local registry at
first boot of the system. This Fixes #2663
2024-10-19 18:30:45 +02:00
Marcus Schäfer
eca8201508
Merge pull request #2665 from OSInside/simplify-DiskFormat
Turn DiskFormat into an ordinary class
2024-10-18 15:41:52 +02:00
Neal Gompa (ニール・ゴンパ)
8f4dc32124
Merge pull request #2667 from OSInside/debian_bootstrap_and_csm_fixes
Debian bootstrap and csm fixes
2024-10-17 15:21:31 -04:00
Dan Čermák
6cfc3912ab
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
2024-10-17 21:14:42 +02:00
Marcus Schäfer
dc713212f2
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.
2024-10-17 21:02:31 +02:00
Marcus Schäfer
cbdddefcff
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
2024-10-17 21:02:31 +02:00
Marcus Schäfer
0e24761929
Fixed sphinx_rtd_theme setup
Delete obsolete display_version attribute
2024-10-17 21:01:46 +02:00
Marcus Schäfer
519d15d40b
Update TW integration tests
The package x86info was dropped from TW
2024-10-17 18:30:36 +02:00
Marcus Schäfer
72d7860c4c
Bump version: 10.1.13 → 10.1.14 2024-10-04 16:21:36 +02:00
Neal Gompa (ニール・ゴンパ)
0fdd55817f
Merge pull request #2661 from OSInside/apt_bootstrap_package_scripts
Run package scripts in apt bootstrap phase
2024-10-04 08:42:01 -04:00
Marcus Schäfer
15b4bbcd8d
Support older apt versions for bootstrap
This Fixes #2660
2024-10-04 11:32:56 +02:00
Marcus Schäfer
ad50bc7d32
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.
2024-10-04 11:32:56 +02:00
Marcus Schäfer
d1645a7f66
Revert "Install usrmerge for Debian integration test"
This reverts commit 95ac861741.
Solution needs to be provided in code
2024-10-04 11:14:38 +02:00
Marcus Schäfer
95ac861741
Install usrmerge for Debian integration test 2024-10-04 10:10:10 +02:00
Marcus Schäfer
d79e183e80
Bump version: 10.1.12 → 10.1.13 2024-09-26 14:12:25 +02:00
Neal Gompa (ニール・ゴンパ)
9215ac55b8
Merge pull request #2657 from OSInside/volume_quotas
Add quota attribute to volume section
2024-09-26 08:08:18 -04:00
Neal Gompa (ニール・ゴンパ)
fb32551fa0
Merge pull request #2658 from OSInside/fix_vagrant_bundle_format
Fix bundle extension for vagrant type
2024-09-26 08:06:37 -04:00
Marcus Schäfer
3c68244fd0
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
2024-09-26 14:00:42 +02:00
Marcus Schäfer
8a087f870a
Use simple quotas (squota) for volumes 2024-09-26 13:28:12 +02:00
Marcus Schäfer
f986570313
Add quota attribute to volume section
Allow to set quota per volume for the btrfs filesystem
This Fixes #2651
2024-09-26 11:49:02 +02:00
Marcus Schäfer
d8bc2f70a4
Merge pull request #2654 from alyssarosenzweig/bug/exclude-erofs
Fix globbing with exclude with regex
2024-09-25 10:31:21 +02:00
Alyssa Rosenzweig
504343fbd6 Fix globbing with exclude with regex
This fixes a collection of bugs when producing erofs images.

On one hand, this ensures that an exclude of `/sys` doesn't accidentally
match `/lib/libsystemd.so`, only `/sys/whatever`.

On the other hand, this ensures that `/dev/*` does match `/dev/vda` and
not just `/dev///////////`.

This fixes libsystemd.so getting dropped in Kiwi-built FEX images.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-09-24 16:19:26 -04:00
Neal Gompa (ニール・ゴンパ)
ddc7ad0825
Merge pull request #2653 from alyssarosenzweig/bug/custom-exclude-fs
Honour custom exclude for filesystem builds
2024-09-24 15:32:26 -04:00
Alyssa Rosenzweig
230ada9f8e Honour custom exclude for filesystem builds
All other call sites honour the custom exclude file, it's just this one
that needs to be fixed. This unblocks use of Kiwi for generating FEX
rootfs.

Closes: #2652
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-09-24 15:22:15 -04:00
Isaac True
8c805d1e1a
Merge pull request #2650 from IsaacJT/increase-dd-block-size
storage: clone_device: increase dd block size
2024-09-24 10:58:34 +02:00
Isaac True
ed64dcfa25
test: storage: update clone_device tests with new block size
Signed-off-by: Isaac True <isaac@is.having.coffee>
2024-09-23 10:05:14 +02:00
Isaac True
1e3e9964cb
storage: clone_device: increase dd block size
Increasing the block size used for dd reduces the time needed to clone a
device.

Signed-off-by: Isaac True <isaac@is.having.coffee>
2024-09-20 16:08:05 +02:00
Neal Gompa (ニール・ゴンパ)
27517fe602
Merge pull request #2646 from OSInside/xsl_comments
Include PI and comments in XSL stylesheets
2024-09-17 14:04:15 -04:00
Marcus Schäfer
42e72d5e96
Bump version: 10.1.11 → 10.1.12 2024-09-17 15:58:27 +02:00
Neal Gompa (ニール・ゴンパ)
285e9d0f47
Merge pull request #2648 from OSInside/fix_erofs_compression_setting_in_filesystem_builder
Add missing erofscompression validation
2024-09-17 09:45:12 -04:00
Marcus Schäfer
21056fa55d
Add missing erofscompression validation
In the filesystem builder I forgot to evaluate the
erofscompression attribute. This Fixes #2647
2024-09-17 15:07:49 +02:00
Marcus Schäfer
993f0dd9f3
Include PI and comments in XSL stylesheets
So far comments and processing instructions (PI) were
ignored when applying the XSL stylesheets. This commit
updates all stylesheets to take them into account
2024-09-16 16:01:07 +02:00
Marcus Schäfer
0c75349f10
Bump version: 10.1.10 → 10.1.11 2024-09-13 16:33:19 +02:00
Neal Gompa (ニール・ゴンパ)
d8f4c13bf1
Merge pull request #2645 from OSInside/erofs
Add support for erofs
2024-09-13 10:22:04 -04:00
Marcus Schäfer
0209b13818
Add support for erofs
erofs is an alternative readonly filesystem that can be
used as alternative to squashfs. This Fixes #2633
2024-09-13 15:04:45 +02:00
Marcus Schäfer
be61740300
doc: Add login information test build test images 2024-09-13 10:42:38 +02:00
Marcus Schäfer
55425f0b9b
Bump version: 10.1.9 → 10.1.10 2024-09-13 10:23:39 +02:00
Neal Gompa (ニール・ゴンパ)
b6194e8a70
Merge pull request #2644 from hramrach/main
bootloader: Fix up ppc64 bootinfo again
2024-09-12 16:45:59 -04:00
Michal Suchanek
301cd1a189 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.
2024-09-12 19:15:43 +02:00
Marcus Schäfer
08f6e1bb6d
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
2024-09-12 10:57:33 +02:00
Marcus Schäfer
7077e5e8ac
limit eif_build requires to fedora >= 42 2024-09-11 14:15:07 +02:00
Marcus Schäfer
e3f4e03ab2
Bump version: 10.1.8 → 10.1.9 2024-09-11 13:07:29 +02:00
Neal Gompa (ニール・ゴンパ)
c44eca3b0a
Merge pull request #2642 from OSInside/enclave_provides
Add new build type provides for enclave
2024-09-11 07:06:15 -04:00
Neal Gompa (ニール・ゴンパ)
5eab80c13a
Merge pull request #2643 from OSInside/fix_oci_security_sync_filters
Fix oci security sync filters
2024-09-11 07:05:58 -04:00
Marcus Schäfer
4a1dc97cdf
Added sshd to nitro-enclave integration test 2024-09-11 12:48:43 +02:00
Marcus Schäfer
d9b396058c
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
2024-09-11 12:32:18 +02:00
Marcus Schäfer
7ace6fe0c3
Fixed container sync options
Do not exclude/filter any security/xattr capabilities.
2024-09-11 12:21:08 +02:00
Marcus Schäfer
ea0b0e1437
Update container integration test
Add getcap to check on filesystem capabilities
2024-09-11 12:20:34 +02:00
Marcus Schäfer
2e3cdd53a4
Update enclave documentation
Fixup repo setup in the build documentation
2024-09-10 15:51:58 +02:00
Marcus Schäfer
b007d9fa0b
Bump version: 10.1.7 → 10.1.8 2024-09-10 15:35:15 +02:00
Marcus Schäfer
83257ca5c2
Fixed enclave documentation
Path to the build test was not correct
2024-09-10 15:31:45 +02:00
Marcus Schäfer
4bd97eaa66
Update test-image-nitro-enclave package list
Fixup package list to match Fedora rawhide
2024-09-10 15:14:10 +02:00
Marcus Schäfer
4e20273f8a
Move test-image-nitro-enclave to rawhide 2024-09-10 15:06:32 +02:00
Marcus Schäfer
23c67da9e3
Merge pull request #2586 from OSInside/nitro_enclaves
Add new builder for enclaves
2024-09-10 14:50:13 +02:00
Marcus Schäfer
30c9eaf112
Merge pull request #2641 from hramrach/main
Fix ppc64 chrp bootinfo generation.
2024-09-10 14:45:50 +02:00
Michal Suchanek
473657e82a Fix ppc64 chrp bootinfo generation 2024-09-10 11:29:05 +02:00
Marcus Schäfer
5ed7593318
Fixed documentation header
Fixed double H1 headers from the boxbuild tweaks chapter.
2024-09-09 16:05:28 +02:00
Marcus Schäfer
67d7481896
Bump version: 10.1.6 → 10.1.7 2024-09-09 15:32:14 +02:00
Marcus Schäfer
1a0d0452aa
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.
2024-09-09 15:26:15 +02:00
Marcus Schäfer
11c2c23f6a
Merge pull request #2640 from OSInside/allow_debian_repo_architectures
Add support for architectures in deb source file
2024-09-09 15:24:46 +02:00
Marcus Schäfer
3e5023e84b
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
2024-09-09 11:03:15 +02:00
Marcus Schäfer
0506844986
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.
2024-09-07 22:23:59 +02:00
Marcus Schäfer
322eb33426
Bump version: 10.1.5 → 10.1.6 2024-09-06 10:41:00 +02:00
Marcus Schäfer
1e248da18b
Merge pull request #2634 from OSInside/fix_ramdisk_size_setup
Fixed ramdisk size setup
2024-09-06 10:40:30 +02:00
Marcus Schäfer
01e4114038
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.
2024-09-06 08:48:21 +02:00
Kostiantyn Astakhov
3fc6bd9145
add allowExtraConfig and exportFlags to ovftool options
Add allowExtraConfig and exportFlags to ovftool options
2024-09-05 15:50:42 +02:00
Marcus Schäfer
1b9d58cdb1
Bump version: 10.1.4 → 10.1.5 2024-09-05 14:42:30 +02:00
Neal Gompa (ニール・ゴンパ)
8c869442cd
Merge pull request #2635 from OSInside/fix_initrd_permissions
Fix initrd permissions
2024-09-05 07:16:51 -04:00
Marcus Schäfer
64adf2b19e
Merge pull request #2638 from OSInside/chrp_boot
CHRP boot
2024-09-05 12:50:02 +02:00
Steffen Winterfeldt
926c6615f5
create EFI/BOOT only if UEFI boot is intended 2024-09-05 12:40:23 +02:00
Steffen Winterfeldt
d3d0cce94a
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
2024-09-05 12:39:17 +02:00
Marcus Schäfer
111e457c73
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
2024-09-03 10:11:52 +02:00
Marcus Schäfer
12fccc2b8c
Bump version: 10.1.3 → 10.1.4 2024-09-03 08:31:43 +02:00
Marcus Schäfer
01f5dba272
Merge pull request #2631 from OSInside/fix_s390_fcp_resize
Fixed resize of dos table type on s390
2024-09-03 08:30:58 +02:00
Marcus Schäfer
a0536bd73d
Merge pull request #2632 from kastakhov/guestos-vmware
Documentation: Add note about guestOS
2024-09-03 08:30:38 +02:00
Marcus Schäfer
366d3b25c3
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
2024-09-02 20:56:46 +02:00
kastakhov
d621b2b7bb
Add note about guestOS values for vmware ovftools. 2024-09-02 17:08:51 +03:00
kastakhov
a059eafb32
Add note about guestOS values for vmware platform. 2024-09-02 17:04:15 +03:00
Marcus Schäfer
52f0574200
Revert "remove dependency on /usr/bin/python"
This reverts commit 15b4501884.
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'
2024-09-02 09:08:05 +02:00
Marcus Schäfer
f9730fac05
Bump version: 10.1.2 → 10.1.3 2024-09-02 07:45:26 +02:00
Neal Gompa (ニール・ゴンパ)
a4e84b8652
Merge pull request #2630 from OSInside/fix_bundle_extension_for_archive_types
Fix bundle extension for archive types
2024-09-01 11:12:41 -04:00
Marcus Schäfer
9bea24a417
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
2024-09-01 16:26:29 +02:00
Neal Gompa (ニール・ゴンパ)
53d4b905cc
Merge pull request #2629 from OSInside/mount_custom_partition_in_system_mount
Fix ImageSystem mount procedure
2024-09-01 10:20:01 -04:00
Marcus Schäfer
a2134f0835
Fix ImageSystem mount procedure
The mount() method did not take custom partitions into account.
This commit fixes it. This Fixes #2619
2024-09-01 15:53:29 +02:00
Neal Gompa (ニール・ゴンパ)
08e736b8c8
Merge pull request #2625 from pgajdos/main
remove dependency on /usr/bin/python
2024-08-28 07:30:51 -04:00
Petr Gajdos
15b4501884 remove dependency on /usr/bin/python 2024-08-27 11:35:17 +02:00
Marcus Schäfer
a62bcdbee0
Merge pull request #2614 from hrfried/add_boxtweaks_documentation
Add documentation for boxbuild tweaks
2024-08-26 18:03:25 +02:00
Marcus Schäfer
bf5dfb4644
Merge pull request #2608 from OSInside/remove-remove-and-rename
Remove Path.remove, Path.rename and refactor Path.which & Path.create
2024-08-26 17:30:50 +02:00
Neal Gompa (ニール・ゴンパ)
aa908ae4ae
Merge pull request #2615 from OSInside/isomd5support
Add support for isomd5sum for tagging iso files
2024-08-26 07:26:24 -04:00
Neal Gompa
7a53e1bd8b
Add support for isomd5sum for tagging iso files
The isomd5sum tool suite is used and available on all supported
distributions except SUSE distributions, and is necessary to produce
conformant ISOs for most Linux distributions.

This change adds support for isomd5sum tool suite for kiwi, though
it does not extend the kiwi-live dracut module to use it. The upstream
dracut dmsquash-live module must be used instead.

Co-authored-by: Dan Čermák <dcermak@suse.com>
2024-08-26 11:49:55 +02:00
Neal Gompa (ニール・ゴンパ)
11ce3a5571
Merge pull request #2623 from OSInside/various-live-fixes
kiwi/builder/live: Cleanup leftover dracut config file and log correct application id
2024-08-25 17:40:01 -04:00
Neal Gompa
13af4621e6 kiwi/builder/live: Log the correct value for Application ID
Since it is now possible to set a custom application ID, we want
to see this when it is being used for the image.
2024-08-24 08:34:03 -04:00
Neal Gompa
eb39120ea1 kiwi/builder/live: Clean up leftover dracut configuration file
The existence of this file breaks installers on live media that
sync the full filesystem to disk and are not aware of this configuration
before generating the target system initramfs.
2024-08-24 08:34:03 -04:00
Neal Gompa (ニール・ゴンパ)
d5bff98d6e
Merge pull request #2622 from OSInside/results-bundleformat-handling
Allow string versions and test "word" versions
2024-08-23 10:25:15 -04:00
Neal Gompa
c29518626a Allow string versions and test "word" versions
There are descriptions out in the wild that use "non-numeric" versions
in their descriptions, particularly without separators for splitting.

This change switches all of this to strings rather than assuming
numbers and gracefully handles the single word case.
2024-08-23 10:01:27 -04:00
Holden R. Fried
d9c605b0dc Add documentation for boxbuild tweaks 2024-08-17 15:13:08 -04:00
Dan Čermák
17e3d50719
Use shutil.which for Path.which 2024-08-16 18:11:55 +02:00
Dan Čermák
df147cf316
Drop Path.remove & Path.rename
Both methods were only used in one place each and it makes much more sense to
use the pathlib builtin methods instead
2024-08-16 18:11:55 +02:00
Dan Čermák
eac164dd3a
Replace Path.create implementation with pathlib builtin 2024-08-16 18:11:55 +02:00
Neal Gompa (ニール・ゴンパ)
a919bdf8f9
Merge pull request #2613 from OSInside/full_log_info_with_logfile_option
Fixed wrong log level on --logfile
2024-08-16 07:07:54 -04:00
Marcus Schäfer
3c07603f71
Fixed wrong log level on --logfile
When using --logfile, the log generated there matches the
stdout log (which without --debug, does not include any debug info).
This is in contrast to the automatically generated one in the
output directory, which always does and also not following the
way how it is documented. This Fixes #2503
2024-08-16 12:45:55 +02:00
Marcus Schäfer
e866bc5832
Fixed arch flag for namedCollection
The arch flag in a namedCollection was not taken into account.
This commit fixes this and also makes sure the result information
is sorted and unique like we have it for the package lists.
This Fixes #2600
2024-08-12 09:23:06 +02:00
Neal Gompa (ニール・ゴンパ)
57e9623f11
Merge pull request #2612 from OSInside/fix_zipl_artifact
Fix handling of zipl.conf in plain zipl bootloader
2024-08-11 13:13:18 -04:00
Marcus Schäfer
4f4e410523
Fix handling of zipl.conf in plain zipl bootloader
When using the plain zipl bootloader kiwi created a /etc/zipl.conf
file. However, this file was only useful during image build as it
points to a loop target device and geometry but does not represent
a proper config file to be used in the running system. In addition
the different distributors provides their own version and layout
of the zipl.conf to be used inside of the system and with their
respective tools. Thus this commit changes the way how kiwi operates
in a way that the zipl.conf used in the initial image only exists
during the image build process. An eventual present /etc/zipl.conf
will not be touched by kiwi. This Fixes #2597
2024-08-09 12:07:48 +02:00
Marcus Schäfer
260c9479d7
Bump version: 10.1.1 → 10.1.2 2024-08-08 15:55:18 +02:00
Neal Gompa (ニール・ゴンパ)
1da5080d17
Merge pull request #2610 from OSInside/individual_vol_default_size
Setup default minimum volume size per filesystem
2024-08-08 09:24:31 -04:00
Neal Gompa (ニール・ゴンパ)
6c83ecebde
Merge pull request #2611 from OSInside/improve_remote_install_error_handling
Improve remote install error handling
2024-08-08 09:23:56 -04:00
Marcus Schäfer
60ecd582ba
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
2024-08-08 15:15:32 +02:00
Marcus Schäfer
ba57964c14
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
2024-08-08 15:14:18 +02:00
Marcus Schäfer
ff7adbd184
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.
2024-08-08 10:22:22 +02:00
Neal Gompa (ニール・ゴンパ)
47ebc8cb54
Merge pull request #2609 from OSInside/increase_default_volume_size
Increase default volume size
2024-08-07 14:10:54 -04:00
Marcus Schäfer
4b60c92e4a
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.
2024-08-07 18:32:04 +02:00
Marcus Schäfer
ac58bf348d
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.
2024-08-07 18:19:41 +02:00
Marcus Schäfer
f68c0d9309
Bump version: 10.1.0 → 10.1.1 2024-08-06 12:07:33 +02:00
Neal Gompa (ニール・ゴンパ)
759f63c923
Merge pull request #2607 from OSInside/debian_mandatory_script_runs
Mandatory package scripts for Debian bootstrap
2024-08-06 04:29:31 -04:00
Marcus Schäfer
716bcc4199
Mandatory package scripts for Debian bootstrap
Make sure to run some mandatory package pre/post scripts
such that settings like /etc/passwd, a root user, etc..
exists. This action can also be done in post_bootstrap.sh
but I think it's better to do this in the core code
2024-08-05 22:59:52 +02:00
Marcus Schäfer
1b3265fbe3
Bump version: 10.0.28 → 10.1.0 2024-08-05 09:55:53 +02:00
Marcus Schäfer
8fb6e23ecc
kiwi no longer uses debootstrap
For building Debian based images we used debootstrap to
bootstrap an empty root until apt-get could be used to
complete the job. This has now changed such hat apt-get
is also used for bootstrapping a new system. The concept
and also potential alternatives to the way kiwi bootstraps
Debian based systems can be found here:

* https://osinside.github.io/kiwi/working_with_images/build_without_debianbootstrap.html

Due to the drop of debootstrap it might happen that
package lists of existing image descriptions needs to be
extended with packages that were formerly pulled in by
debootstrap but did not get properly pulled in with the
new apt based bootstrap. As reference please check out the
integration tests from here:

* https://github.com/OSInside/kiwi/tree/main/build-tests/x86/ubuntu
* https://github.com/OSInside/kiwi/tree/main/build-tests/x86/debian

Thanks
2024-08-05 09:47:53 +02:00
Marcus Schäfer
05da658d7d
Bump version: 10.0.27 → 10.0.28 2024-08-05 09:47:12 +02:00
Neal Gompa (ニール・ゴンパ)
3d5b9725f8
Merge pull request #2602 from OSInside/get_rid_of_debootstrap
Get rid of debootstrap
2024-08-03 17:34:18 -04:00
Marcus Schäfer
1aaf9ce414
Update documentation
kiwi no longer uses debootstrap
2024-08-03 22:20:22 +02:00
Marcus Schäfer
ff9790a3ea
Fix test_process_result_bundle_as_rpm 2024-08-03 22:14:40 +02:00
Marcus Schäfer
a93da9fe9d
Fix Debian/Ubuntu integration tests
Remove package hacks for debootstrap, explicitly add
required packages and or configurations.
2024-08-03 22:14:40 +02:00
Marcus Schäfer
d149ab09db
Get rid of debootstrap
Replace debootstrap with an apt-get based pre-download of
packages followed by a dpkg-deb extraction.
This Fixes #2599
2024-08-02 21:57:04 +02:00
Marcus Schäfer
6be3fc5195
Drop types-pkg_resources
Got removed from PyPI
2024-08-02 17:11:01 +02:00
Marcus Schäfer
4e0d6266bb
Merge pull request #2606 from OSInside/fix_test_process_result_bundle_as_rpm
Fix test_process_result_bundle_as_rpm
2024-07-31 17:16:41 +02:00
Marcus Schäfer
e23891eadb
Fix test_process_result_bundle_as_rpm
os.path.basename was called on a MagicMock object which
sometimes confused pytest
2024-07-31 16:57:30 +02:00
Marcus Schäfer
bb7ab26dea
Merge pull request #2604 from OSInside/fix_resize_restrictions
Fix kiwi-repart restrictions
2024-07-31 15:12:10 +02:00
Marcus Schäfer
d2d2d80c69
Fix kiwi-repart restrictions
The kiwi repart dracut module reads a profile file and if it
does not exists it dies in the initrd. However, that profile
file is not mandatory for the main resize functionality. Thus
this commit turns this into a warning message. In addition
the module-setup for 90kiwi-repart makes sure to include
the required and optional profile files.
This Fixes bsc#1228118
2024-07-31 14:49:37 +02:00
Neal Gompa (ニール・ゴンパ)
a779548370
Merge pull request #2603 from OSInside/fix_default_excludes
Do not exclude the .profile env file by default
2024-07-30 12:39:05 -04:00
Marcus Schäfer
e86e5423c0
Do not exclude the .profile env file by default
kiwi's initrd modules read a .profile file which gets included
into the initrd produced at build time. To allow rebuild of a
host-only initrd from the booted system this information should
be present such that it is possible to re-use kiwi initrd code.
2024-07-30 18:16:54 +02:00
Marcus Schäfer
b24a461f64
Bump version: 10.0.26 → 10.0.27 2024-07-30 09:45:37 +02:00
Fabian Vogt
32a3d3f77c 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.
2024-07-30 09:41:24 +02:00
Marcus Schäfer
d9102d315f
Merge pull request #2598 from OSInside/revise-contributing
Revise contributing
2024-07-22 11:20:41 +02:00
Marcus Schäfer
90fb39e2ef
Bump version: 10.0.25 → 10.0.26 2024-07-21 19:20:23 +02:00
Dmitri Popov
ed74872493 Revise scripts_testing.rst 2024-07-19 10:06:17 +02:00
Dmitri Popov
771c2eaed3 Revise schema_extensions.rst 2024-07-19 09:39:48 +02:00
Neal Gompa (ニール・ゴンパ)
0a2046c0b4
Merge pull request #2595 from OSInside/support_file_includes
Support file includes
2024-07-17 18:33:07 -04:00
Marcus Schäfer
78238a993c
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
2024-07-17 18:16:23 +02:00
Marcus Schäfer
26901721c6
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
2024-07-17 15:58:23 +02:00
Marcus Schäfer
7f86f6fa2d
Bump version: 10.0.24 → 10.0.25 2024-07-14 11:17:33 +02:00
Neal Gompa (ニール・ゴンパ)
3e1b741c1b
Merge pull request #2594 from OSInside/fix_confusing_error_messsage
Fixed logging behavior of Compress::get_format
2024-07-12 21:52:20 -04:00
Marcus Schäfer
782d6d80f0
Fix mocking of test_process_result_bundle_as_rpm 2024-07-12 15:51:41 +02:00
Marcus Schäfer
0b13c48c21
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.
2024-07-12 15:29:37 +02:00
Neal Gompa (ニール・ゴンパ)
fc95861085
Merge pull request #2593 from OSInside/custom_iso_app_id
Allow to set custom ISO Application ID
2024-07-12 04:29:06 -04:00
Marcus Schäfer
5b3c761ca1
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
2024-07-12 10:23:21 +02:00
Marcus Schäfer
96bcce3a72
Bump version: 10.0.23 → 10.0.24 2024-07-12 09:43:09 +02:00
Neal Gompa (ニール・ゴンパ)
1453d938af
Merge pull request #2590 from OSInside/efi_only
Add new eficsm type attribute
2024-07-11 15:50:33 -04:00
Marcus Schäfer
dd8fd585df
Update integration test for eficsm
Update the type of the Secure profile of the live image integration
test as well as the type of the simple-disk test to make use of the
eficsm="false" attribute to switch off CSM mode and test an EFI only
layout.
2024-07-11 21:42:59 +02:00
Marcus Schäfer
8a6aed12ae
Add new eficsm type attribute
Allow to produce EFI/UEFI images without hybrid CSM
capabilities. This Fixes #2407
2024-07-11 21:40:19 +02:00
Marcus Schäfer
09ad272167
Merge pull request #2592 from OSInside/agama_integration_test
Added integration test for SUSE agama installer
2024-07-11 17:19:16 +02:00
Marcus Schäfer
c37cec4b67
Added integration test for SUSE agama installer
This integration test builds a self-install ISO image which
drops the SUSE Agama installer into a ramdisk for performing
an interactive installation procedure to test Agama
2024-07-11 16:47:22 +02:00
Neal Gompa (ニール・ゴンパ)
ee08cbb0bb
Merge pull request #2591 from OSInside/commandline_attributes
Add --set-type-attr and --set-release-version
2024-07-11 10:45:03 -04:00
Marcus Schäfer
5b4de6be02
Add --set-type-attr and --set-release-version
Allow to set/overwrite type section attributes via the cmdline.
Allow to set/add the release-version element via the cmdline.
This Fixes #2478 and Fixes #2588
2024-07-11 14:33:16 +02:00
Neal Gompa (ニール・ゴンパ)
dfda54c5b2
Merge pull request #2589 from OSInside/proper_loop_detach
Wait for loop device detach to complete
2024-07-10 07:43:58 -04:00
Dmitri Popov
680c174a59 kiwi_plugin_architecture.rst 2024-07-10 11:47:59 +02:00
Dmitri Popov
2541d48a14 Revise kiwi_from_python.rst 2024-07-10 11:42:36 +02:00
Marcus Schäfer
187357eff5
Wait for loop device detach to complete
Detaching a loop device via 'losetup -d' is an async operation.
Once the command returns the loop can still be associated with
the block special. Therefore this commit waits until the block
device got released or a timeout is hit. This Fixes #2580
2024-07-10 11:34:47 +02:00
Neal Gompa (ニール・ゴンパ)
1576f36fb4
Merge pull request #2587 from OSInside/tw_systemdeps
Update requires for kiwi-systemdeps-disk-images
2024-07-09 05:45:54 -04:00
Marcus Schäfer
d1a21e58f5
Update requires for kiwi-systemdeps-disk-images
On Tumbleweed several changes caused tools like strings
or the codepage for mtools to be missing in a standard
installation. For building disk images especially EFI
capable ones with vendor information kiwi needs the above
tool. This commit adds the packages providing them on
Tumbleweed to the meta systemdeps for disk images.
This Fixes #2585
2024-07-09 09:40:49 +02:00
Marcus Schäfer
edd75ec6a2
Supplements are not understood by Debian/Ubuntu 2024-07-08 09:17:49 +02:00
Neal Gompa (ニール・ゴンパ)
cbf7d9e479
Merge pull request #2584 from OSInside/split_out_bash_completion
Split out bash completion into a sub-package
2024-07-05 14:57:27 -04:00
Marcus Schäfer
98cf4e906f
Split out bash completion into a sub-package
Per review of the SUSE packaging team we should split out
the bash completion into its own sub-package to give users
better control over the completion feature.
2024-07-04 16:16:44 +02:00
Marcus Schäfer
266abb3f32
Bump version: 10.0.22 → 10.0.23 2024-07-04 12:57:58 +02:00
Marcus Schäfer
c83e6f3f90
Merge pull request #2583 from OSInside/pyXY-provides
package: Add fully qualified provides for python3-kiwi in spec
2024-07-04 11:43:35 +02:00
Neal Gompa
584f9ffa03 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.
2024-07-04 05:32:56 -04:00
Neal Gompa (ニール・ゴンパ)
25f1f8607c
Merge pull request #2582 from OSInside/arch_conditional_volumes
Add support for arch selector on volumes
2024-07-04 05:13:12 -04:00
Marcus Schäfer
9c8f0b0879
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.
2024-07-04 10:58:37 +02:00
Marcus Schäfer
85fdbc21ad
Merge pull request #2579 from OSInside/allow_to_skip_unallocated_space_detection
Added rd.kiwi.oem.skip_resize_check boot option
2024-07-01 10:27:56 +02:00
Marcus Schäfer
8162e45562
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
2024-07-01 10:22:41 +02:00
Marcus Schäfer
a74c045ab9
Fixed leap integration tests
For whatever reason procps is not longer pulled in by the
core dependencies. Thus we have to explicitly request it
2024-06-25 14:25:03 +02:00
Neal Gompa (ニール・ゴンパ)
4fbb262c25
Merge pull request #2578 from OSInside/fix_loop_release
Fix potential race condition in loop detach
2024-06-20 14:11:57 -04:00
Marcus Schäfer
925f960445
Fix potential race condition in loop detach
The call to 'losetup -d' is in fact an async operation. Once
the command returns the loop can still be associated with the
former file because it gets lazy unbound and releases later.
Prior re-use of the same loop device it is therefore required
to wait until the kernel event queue is processed.
2024-06-20 18:08:35 +02:00
Neal Gompa (ニール・ゴンパ)
7f317a5d0a
Merge pull request #2575 from OSInside/fix_dnf_repo_include_to_image
Fixed repository include to image with dnf
2024-06-19 06:05:26 -04:00
Marcus Schäfer
44aa564b60
Fixed repository include to image with dnf
When specifying a repository element with imageinclude="true",
kiwi permanently adds the repo file inside of the image.
The distribution standard path is used to store the repo
file in this case. With dnf a package manager exists that is
primarily used on Fedora and RHEL systems. Thus the standard
path for the repo files is set to "/etc/yum.repos.d".
However, dnf can also be used for other rpm based distributions
e.g SUSE. On such a system the default path does not exist
or is different because another package manager is the
default. This commit makes sure that the expected path is
created prior adding any repo files.
2024-06-19 11:07:52 +02:00
Marcus Schäfer
eb4ef38876
Bump version: 10.0.21 → 10.0.22 2024-06-18 08:42:17 +02:00
Neal Gompa (ニール・ゴンパ)
861e807aab
Merge pull request #2573 from OSInside/fix_bootloader_security_labels
Fixed selinux labels for boot files
2024-06-17 14:53:05 -04:00
Marcus Schäfer
319e78a707
Fixed selinux labels for boot files
When kiwi calls the bootloader config and installation modules
several files gets created as unlabeled_t because the labeling
happened earlier. This commit ensures that setfiles gets called
after BootLoaderConfig and/or BootLoaderInstall has done its
job. This Fixes #2568
2024-06-17 18:24:44 +02:00
Neal Gompa (ニール・ゴンパ)
9dde2b9963
Merge pull request #2567 from OSInside/fix_vendor_lookup
Better error handling on grub vendor dir lookup
2024-06-17 04:20:11 -04:00
Marcus Schäfer
624df1d346
Add bash to package requirements
If there are script evaluations that does not specify
an interpreter, kiwi uses bash for it. The same applies
for sub-process invocations using shell pipelines. Thus
the bash shell is a required tool for kiwi under certain
circumstances. Further details in Issue #2567
2024-06-17 09:26:29 +02:00
Neal Gompa (ニール・ゴンパ)
77a52eb744
Merge pull request #2569 from OSInside/allow_to_configure_cowfile_location
Allow to customize the path of the isoscan cowfile
2024-06-15 00:27:26 -04:00
Marcus Schäfer
440ced12e2
Merge pull request #2571 from landgraf/shadow
test-image-live: add shadow package
2024-06-14 09:48:26 +02:00
Pavel Zhukov
5cfa51883c test-image-live: add shadow package
Fixes:
KiwiCommandError: chroot: stderr: /usr/bin/chroot: failed to run command ‘usermod’: No such file or directory
2024-06-12 13:50:28 +02:00
Fabian Vogt
cf7fc78fc7
Merge pull request #2570 from Vogtinator/failurefix
Fix displaying the image verification failure dialog
2024-06-11 16:30:20 +02:00
Fabian Vogt
6e59d5e463 Fix displaying the image verification failure dialog
Kiwi must wait for the previous dialog to finish before showing another
one as it's the same systemd service behind it.
2024-06-11 14:37:01 +02:00
Marcus Schäfer
cbf40d5142
Allow to customize the path of the isoscan cowfile
Added rd.live.cowfile.path option to specify the cowfile at
any path below the isoscan-loop-mount. This Fixes #2554
2024-06-10 16:13:37 +02:00
Marcus Schäfer
6d99c8b923
Better error handling on grub vendor dir lookup
The strings command is used to lookup the in-efi binary encoded
vendor path. However, if the strings or bash command is not availabe
on the build host, the command silently failed and moved into the
standard (non vendored) EFI boot path. This can lead to a broken
boot for those distros and image targets which requires a vendor
directory and should lead to an error message instead of a
successful image build. This Fixes #2565
2024-06-10 10:36:59 +02:00
Neal Gompa (ニール・ゴンパ)
3bbb057c96
Merge pull request #2566 from OSInside/fix_profile_variable_settings
Fixed profile variable settings for preferences
2024-06-10 04:00:41 -04:00
Marcus Schäfer
e0f9491462
Fixed profile variable settings for preferences
It's allowed to have multiple preferences sections. If those
sections provides the same value multiple times, e.g keytable,
the last one in the row will win. The setup of the variables
in .profile environment file for the preferences elements is
not following this rule and used the first section not the
last. This commit fixes the profile variables to match the
actual setup and Fixes #2560
2024-06-10 09:50:02 +02:00
Neal Gompa (ニール・ゴンパ)
77972bee00
Merge pull request #2564 from OSInside/revise-concept-workflow
Revise concept workflow
2024-06-09 09:41:19 -04:00
Dmitri Popov
553834caa2 Revise users.rst 2024-06-06 14:24:07 +02:00
Dmitri Popov
a39960e4ec REvise systemdeps.rst 2024-06-06 13:57:29 +02:00
Dmitri Popov
cd8306773b Revise shell_scripts.rst 2024-06-06 13:42:57 +02:00
Neal Gompa (ニール・ゴンパ)
98608861e4
Merge pull request #2563 from OSInside/initrd_dialog_adaptions
Initrd dialog adaptions
2024-06-06 07:42:04 -04:00
Marcus Schäfer
17ef9df9a8
Add initrd boot option rd.kiwi.allow_plymouth
By default kiwi stops plymouth if present and active in the
initrd. Setting rd.kiwi.allow_plymouth will keep plymouth
active in the initrd including all effects that might have
to the available consoles. This is related to bsc#1214824
2024-06-06 12:38:00 +02:00
Marcus Schäfer
e058822a31
Drop use of obsolete tool isconsole
isconsole was provided with the dropped kiwi-tools package.
It was a simple C application that checked the capabilities
of the current console. In the context of fbiterm it was just
used to provide proper error messages which fbiterm on its
own did not show. As also fbiterm is on its way to become
obsolete and isconsole is already no longer present, it's ok
to just drop that extra check and therefore keep the fbiterm
mode functional if one manages to include fbiterm and its
fonts into the initrd
2024-06-06 12:12:45 +02:00
Marcus Schäfer
e7a71ce943
Bump version: 10.0.20 → 10.0.21 2024-06-04 11:13:01 +02:00
Neal Gompa (ニール・ゴンパ)
6c33f5ef9a
Merge pull request #2562 from OSInside/fix_missing_metadata_in_bls_base_class
Add missing write_meta_data method to BLS base
2024-06-04 04:00:13 -04:00
Neal Gompa (ニール・ゴンパ)
85e7253eaa
Merge pull request #2561 from OSInside/fix_method_ineffective
Fix method ineffective
2024-06-03 16:17:25 -04:00
Marcus Schäfer
01274f6a7e
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
2024-06-03 21:43:09 +02:00
Marcus Schäfer
c3043c6958
Fix TW integration test to build outside OBS 2024-06-03 17:59:18 +02:00
Marcus Schäfer
42208da139
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.
2024-06-03 17:46:52 +02:00
Marcus Schäfer
80b94dbb62
Bump version: 10.0.19 → 10.0.20 2024-06-03 09:22:00 +02:00
Neal Gompa (ニール・ゴンパ)
1327caa9fa
Merge pull request #2559 from OSInside/support_arch_for_repository_element
Add support for arch attr in repository element
2024-06-03 03:16:12 -04:00
Marcus Schäfer
f6090a2e6f
Update rawhide integration test
Use new arch attribute for testing in the repository
element of the rawhide/test-image-live-disk integration
test.
2024-06-03 08:25:11 +02:00
Marcus Schäfer
9cd8e19aed
Add support for arch attr in repository element
Allow to provide different repository sections per architecture
2024-06-01 20:55:02 +02:00
Neal Gompa (ニール・ゴンパ)
2f84e0a190
Merge pull request #2558 from OSInside/image_info_list_profiles
Add --list-profiles to image info
2024-05-31 06:56:56 -04:00
Marcus Schäfer
8b72820ec2
Add --list-profiles to image info
Allow to list available profiles from the processed image
description
2024-05-31 12:38:04 +02:00
Marcus Schäfer
8560659b40
Bump version: 10.0.18 → 10.0.19 2024-05-30 21:55:20 +02:00
Neal Gompa (ニール・ゴンパ)
e167b48de0
Merge pull request #2556 from OSInside/fix-packaging-patch-setup
package: Unconditionally include patches and number all sources and patches
2024-05-30 06:33:32 -04:00
Neal Gompa
73e971e94e 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.
2024-05-29 17:56:03 -04:00
Marcus Schäfer
ce108802f9
Bump version: 10.0.17 → 10.0.18 2024-05-29 18:18:26 +02:00
Marcus Schäfer
c504b8c7ae
Merge pull request #2555 from aplanas/fix_spec
package: adjust openSUSE patch
2024-05-29 17:09:27 +02:00
Alberto Planas
b94ffb2536
package: adjust openSUSE patch 2024-05-29 16:54:21 +02:00
Marcus Schäfer
58eb12261a
Bump version: 10.0.16 → 10.0.17 2024-05-29 15:18:38 +02:00
Marcus Schäfer
506a145126
Fixed box plugin documentation
The provided example was no longer correct according to
changes on the image description referenced in the example
2024-05-29 12:35:43 +02:00
Marcus Schäfer
1e9fdf24a1
Add procps to Tumbleweed integration tests 2024-05-17 17:23:53 +02:00
Marcus Schäfer
b902ccf53d
Merge pull request #2551 from OSInside/fix_sdist_contents
Fix sdist upstream tarball contents
2024-05-17 15:46:40 +02:00
Marcus Schäfer
9e65fd1350
Merge pull request #2550 from OSInside/drop_use_of_obsolete_pkg_resources
Drop use of obsolete pkg_resources
2024-05-17 15:46:25 +02:00
Marcus Schäfer
c7c3ad44d4
Add procps to Tumbleweed integration tests 2024-05-16 10:58:40 +02:00
Marcus Schäfer
0a6944bd6e
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.
2024-05-12 22:10:13 +02:00
Marcus Schäfer
175bce420a
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
2024-05-10 15:14:41 +02:00
Neal Gompa (ニール・ゴンパ)
2f7053f444
Merge pull request #2549 from AdamWill/dnf5-config-fix
RepositoryDnf5: correct defaults, set system_cachedir
2024-05-09 14:23:04 -04:00
Adam Williamson
716d2adaef 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>
2024-05-09 09:48:43 -07:00
Marcus Schäfer
93d1dca76d
Bump version: 10.0.15 → 10.0.16 2024-05-08 15:46:17 +02:00
Marcus Schäfer
ae2ecacf58
poetry build doesn't like symlinks
The sdist tarball produced by poetry build does not include
all files and skipped symlinks in test/data. This caused the
unit test run to fail if called from within that sources
2024-05-08 15:44:10 +02:00
Neal Gompa (ニール・ゴンパ)
06f33e0f9e
Merge pull request #2547 from OSInside/fix_spec_file
Fix spec file
2024-05-08 08:41:31 -04:00
Marcus Schäfer
fe0dd16b81
Fix spec file
Require docopt-ng for Fedora 41+
2024-05-08 10:48:57 +02:00
Marcus Schäfer
3f3ee8c296
Bump version: 10.0.14 → 10.0.15 2024-05-07 16:18:28 +02:00
Dmitri Popov
64a74eb592 REview runtime_configuration.rst 2024-05-07 11:29:18 +02:00
Dmitri Popov
af3394be34 Review repository_setup.rst 2024-05-07 11:28:45 +02:00
Marcus Schäfer
33be86c810
Merge pull request #2546 from OSInside/fix_disk_password
Fix set_disk_password() to really add the password to grub.cfg.
2024-05-03 14:41:57 +02:00
Steffen Winterfeldt
db80b2d20a
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.
2024-05-03 14:19:41 +02:00
Neal Gompa (ニール・ゴンパ)
c8bf3c5701
Merge pull request #2545 from OSInside/support_oci_stopsignal
Add support for stopsignal in containerconfig
2024-05-02 10:44:20 -04:00
Marcus Schäfer
1737219b2e
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
2024-05-02 16:27:14 +02:00
Marcus Schäfer
4b8d84df0f
Update Makefile
Make sure custom patches are part of the package sources
2024-05-02 15:28:48 +02:00
Marcus Schäfer
9ab7fefe57
Bump version: 10.0.13 → 10.0.14 2024-05-02 15:24:20 +02:00
Marcus Schäfer
317e42edb7
Merge pull request #2542 from OSInside/fix-bls-modes-again
kiwi/bootloader: restore backward compatibility for grub2 with bls
2024-05-02 15:23:27 +02:00
Neal Gompa
cc0e3283a4 doc: Document the bls option for the grub bootloader 2024-05-02 06:42:27 -04:00
Neal Gompa
8e4adffcf8 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.
2024-05-02 06:26:31 -04:00
Neal Gompa
155d969d77 kiwi/bootloader: restore backward compatibility for grub2 with bls
The change to introduce the bls parameter broke backward compatibility
with all existing kiwi descriptions for distributions that default to BLS.

This fixes that by allowing the unset state to be equivalent to enabling it.

Fixes: 8a8190098c
2024-05-02 06:23:31 -04:00
Marcus Schäfer
0b40402119
Bump version: 10.0.12 → 10.0.13 2024-04-30 14:25:56 +02:00
Neal Gompa (ニール・ゴンパ)
cd7253b636
Merge pull request #2538 from Romain-Geissler-1A/main
Stop leaking plugins/{priorities,versionlock}.conf file with dnf4/5.
2024-04-30 05:27:00 -04:00
Marcus Schäfer
92dc63a202
Merge pull request #2539 from OSInside/sort_lsblk_output
Make sure lsblk output is sorted by dev name
2024-04-30 09:55:53 +02:00
Marcus Schäfer
3cc95053bd
Merge pull request #2541 from OSInside/force_uncompressed_only_if_randomized
Overwrite compression setting only if randomized
2024-04-30 09:55:07 +02:00
Marcus Schäfer
2906ee4e62
Overwrite compression setting only if randomized
When building an encrypted image, the bundler never compressed
the result. This overwrite from the runtime configuration and
the default compression setting actually only makes sense when
the image is randomized because only then a compression is
for sure useless. This Fixes #2540
2024-04-29 17:33:43 +02:00
Marcus Schäfer
51de3d2929
Make sure lsblk output is sorted by dev name
lsblk without the sorting option can provide the list
of devices in different order. This patch makes sure
lsblk sorts the output by the device name.
This Fixes bsc#1223374
2024-04-29 16:08:47 +02:00
Marcus Schäfer
e6b37a01c5
Merge pull request #2537 from OSInside/fix_luks_randomize_setting
Fix luks_randomize setting
2024-04-29 09:59:37 +02:00
Neal Gompa (ニール・ゴンパ)
3e1225e259
Merge pull request #2535 from aplanas/fix_bls
Only enable BLSCFG if the new 'bls' attribute is set
2024-04-26 14:07:35 -04:00
Romain Geissler
78e0fc880b
Stop leaking plugins/{priorities,versionlock}.conf file with dnf4/5.
This fixes the fedora issue
https://bugzilla.redhat.com/show_bug.cgi?id=2270364

Signed-off-by: Romain Geissler <romain.geissler@amadeus.com>
2024-04-26 17:35:24 +00:00
Alberto Planas
8a8190098c
Add 'bls' parameter for the bootloader 2024-04-26 15:22:28 +02:00
Marcus Schäfer
dc1a5a54ad
Fix luks_randomize setting
Make sure the value passed for luks_randomize in the description
becomes effective. It was not possible to switch off luks_randomize
because any "not" value was turned into a true value. The actual
default should therefore only apply in case luks_randomize is
not specified at all which means only a None value will turn
into a true value for this setting.
2024-04-26 12:15:11 +02:00
Neal Gompa (ニール・ゴンパ)
139da5822b
Merge pull request #2536 from AdamWill/dnf5-fix-remove
Fix package removal with dnf5
2024-04-25 20:22:08 -04:00
Adam Williamson
ab305905d5 Fix package removal with dnf5
dnf5 does not implement `dnf autoremove <package>` as a synonym
for `--setopt=clean_requirements_on_remove=true remove <package>`
as dnf4 did. So, we should do it this way instead.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-25 16:42:40 -07:00
Alberto Planas
f7aa0e5982
kiwi.rnc: define bls parameter for bootloader 2024-04-25 19:38:56 +02:00
Iván Chavero
7762802c4d
Fix efifatimagesize attribute type
The efifatimagesize attribute type value is set to "oem" but the documentation says
that it is intended to be also used for creating ISO images. This causes a schema error
when this attribute is set on a profile with type "iso" and blocks changing the EFI
boot image size which is a problem if the image is bigger than 20M. This commit
allows to specify the attribute also for the "iso" type
2024-04-20 22:51:24 +02:00
Marcus Schäfer
03e9deceb0
Add missing tool requires
Latest changes on the bundler used sed and file
which were not required by the spec. This is
related to bsc#1221790
2024-04-19 21:10:44 +02:00
Marcus Schäfer
526e4728a9
Add vmdk format to test-image-bundle-format
Allow to check if the bundle format rename is applied
in the new bundle reference checker code
2024-04-19 17:48:43 +02:00
Neal Gompa (ニール・ゴンパ)
3c3579d6c2
Merge pull request #2534 from OSInside/fix_location_of_runtime_checker_metadata
Keep runtime_checker_metadata.yml as module file
2024-04-19 11:24:19 -04:00
Neal Gompa (ニール・ゴンパ)
403c117ccd
Merge pull request #2533 from OSInside/do_not_compress_vmdk_in_bundle
Don't compress vmdk images
2024-04-19 11:23:57 -04:00
Neal Gompa (ニール・ゴンパ)
a6c4c621c2
Merge pull request #2532 from OSInside/fix_image_reference_in_bundler
Fix file references in kiwi bundler result files
2024-04-19 11:23:20 -04:00
Marcus Schäfer
9fe3e96824
Keep runtime_checker_metadata.yml as module file
It was a bad idea to install a mandatory source file outside
the module path. This prevents running kiwi from source
2024-04-19 17:07:49 +02:00
Marcus Schäfer
0b2bc39a85
Don't compress vmdk images
Like with qcow2 it's not expected that the format type gets
compressed in the bundle
2024-04-19 17:06:39 +02:00
Marcus Schäfer
39ae7f5150
Fix file references in kiwi bundler result files
When using a custom bundle_format the kiwi result bundler renames
the output files to match the bundle_format. However, if there are
output files that references other output files, for example the
vmware binary (.vmdk) in the guest config file (.vmx) then this
renaming breaks those result files. This patch adds a reference
file check for all non binary output files if they contain a
reference to another output file and updates the data accordingly.
This Fixes bsc#1221790
2024-04-19 17:05:13 +02:00
Marcus Schäfer
b83f96fa14
Fixed Arch build
Forgot to add install of runtime_checker_metadata.yml
2024-04-19 12:33:04 +02:00
Marcus Schäfer
53b8f9282c
Update tumbleweed/test-image-disk integration test 2024-04-18 17:12:27 +02:00
Neal Gompa (ニール・ゴンパ)
bb2d550070
Merge pull request #2531 from OSInside/better_error_handling
Handle XSLT errors better
2024-04-18 08:17:36 -04:00
Neal Gompa (ニール・ゴンパ)
f745327e2f
Merge pull request #2526 from OSInside/fix_dracut_module_runtime_check
Fixed runtime checks for dracut module packages
2024-04-18 06:55:26 -04:00
Marcus Schäfer
6352936415
Handle XSLT errors better
Make sure etree.XSLTApplyError is a known error in the kiwi
scope and raise an appropriate exception
2024-04-18 12:46:20 +02:00
Marcus Schäfer
7e6c31e37e
Fixed runtime checks for dracut module packages
Unfortunately the packaging of kiwi on Debian follows different
naming conventions for dracut module packages which causes
the runtime check to fail. This commit allows to check for
multiple package names and adds the variants used on Debian.
This Fixes #2524
2024-04-18 11:26:12 +02:00
Dmitri Popov
5c9af3c5bd Revise profiles.rst 2024-04-17 16:05:42 +02:00
Dmitri Popov
dedbe7d150 Revise packages.rst 2024-04-17 15:32:04 +02:00
Dmitri Popov
86a91ed44a Revise customize_the_boot_process.rst 2024-04-17 15:09:39 +02:00
Marcus Schäfer
134625435c
Bump version: 10.0.11 → 10.0.12 2024-04-17 12:28:35 +02:00
Neal Gompa (ニール・ゴンパ)
0e99b516b7
Merge pull request #2530 from OSInside/superfluous_btrfs_mount
Prevent extra volume mount/umount on btrfs
2024-04-17 06:26:18 -04:00
Marcus Schäfer
4c8f5a478f
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
2024-04-15 18:49:53 +02:00
Marcus Schäfer
596942ae77
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
2024-04-15 18:33:40 +02:00
Marcus Schäfer
1e91c35a26
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
2024-04-15 16:43:21 +02:00
Marcus Schäfer
a6fdb31205
Fix typo in documentation main page
Superfluous format sequence
2024-04-09 14:13:08 +02:00
Neal Gompa (ニール・ゴンパ)
6c46d35079
Merge pull request #2527 from OSInside/another_shim_search_path
Added another search path for signed EFI binaries
2024-04-08 06:37:07 -04:00
Marcus Schäfer
9aaa90699a
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
2024-04-08 12:12:19 +02:00
Marcus Schäfer
2bd0ebf6a5
Bump version: 10.0.10 → 10.0.11 2024-04-04 17:17:42 +02:00
Neal Gompa (ニール・ゴンパ)
85b62b8580
Merge pull request #2523 from OSInside/upgrade_old_schemas
Add schema upgrade opportunity for old schemas
2024-04-04 11:12:39 -04:00
Marcus Schäfer
3220e357d3
Add schema upgrade opportunity for old schemas
kiwi files using a schema version < 7.4 are no longer supported
by kiwi >= v10.x.x. Thus this commit provides the required
XSL stylesheets to upgrade older schemas to v74 such that they
can be consumed by the latest kiwi version. The needed xsltproc
instruction is placed on the main page of the documentation.
2024-04-04 16:52:25 +02:00
Neal Gompa (ニール・ゴンパ)
485081fd49
Merge pull request #2522 from OSInside/drop_kiwi_compat
Delete kiwi compat mode
2024-04-03 08:10:29 -04:00
Marcus Schäfer
1da2886fd1
Delete kiwi compat mode
The compat mode allowed a kiwi v7 legacy argument translation
and is obsolete since a long time
2024-04-03 13:42:07 +02:00
Neal Gompa (ニール・ゴンパ)
c5f932fb7f
Merge pull request #2521 from OSInside/fix_dnf_exclude_in_bootstrap
Make excludes in bootstrap effective for dnf
2024-04-03 06:49:45 -04:00
Marcus Schäfer
8f39d7f6d0
Make excludes in bootstrap effective for dnf
Followup fix to really use the ignore information in the dnf
package manager implementation. This Fixes #2499
2024-04-03 12:27:02 +02:00
Marcus Schäfer
965b33d549
Bump version: 10.0.9 → 10.0.10 2024-03-28 16:27:08 +01:00
Neal Gompa (ニール・ゴンパ)
6b63666a87
Merge pull request #2518 from OSInside/fix_discoverable_partitions
Fix setup of discoverable partitions
2024-03-28 08:28:51 -04:00
Marcus Schäfer
74152d96f2
Fix setup of discoverable partitions
Make sure GUI is unique and typecode is set according to the
standard. This Fixes #2517
2024-03-28 12:00:13 +01:00
Marcus Schäfer
d91c37c145
Bump version: 10.0.8 → 10.0.9 2024-03-27 17:44:16 +01:00
Marcus Schäfer
686dcc04d6
Merge pull request #2516 from OSInside/live_iso_wait_for_udev
Wait for udev event queue to become empty
2024-03-27 17:06:11 +01:00
Marcus Schäfer
c627e55fd1
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
2024-03-27 15:48:40 +01:00
Dmitri Popov
166373f308 Revise customize_boot 2024-03-26 14:21:00 +01:00
Marcus Schäfer
12ffb896df
Bump version: 10.0.7 → 10.0.8 2024-03-23 14:15:28 +01:00
Neal Gompa (ニール・ゴンパ)
876da411f5
Merge pull request #2514 from OSInside/fix_zipl_setup_on_btrfs_root
Fix zipl setup for use with custom btrfs root vol
2024-03-22 12:14:13 -04:00
Marcus Schäfer
2e409ec189
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
2024-03-22 16:35:10 +01:00
Neal Gompa (ニール・ゴンパ)
f4f566af3f
Merge pull request #2513 from OSInside/ignore_stanza_in_bootstrap
Allow ignore stanza in bootstrap
2024-03-22 08:01:04 -04:00
Marcus Schäfer
1385187ccf
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
2024-03-22 10:33:04 +01:00
Marcus Schäfer
f0c9eff953
Bump version: 10.0.6 → 10.0.7 2024-03-20 15:11:54 +01:00
Neal Gompa (ニール・ゴンパ)
c64c61688c
Merge pull request #2511 from OSInside/bundle_format_%v
Add support for %v in bundle format
2024-03-19 12:30:19 -04:00
Marcus Schäfer
61da7aeade
Add support for %v in bundle format
Allow a placeholder for the entire version text as
provided by the <version> section
2024-03-19 17:09:39 +01:00
Neal Gompa (ニール・ゴンパ)
570d7a99ee
Merge pull request #2510 from OSInside/bundle_format
Allow bundle format to be set on the commandline
2024-03-19 11:18:35 -04:00
Marcus Schäfer
88ccd4d1e9
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
2024-03-19 15:50:23 +01:00
Marcus Schäfer
b29c7e04fe
Bump version: 10.0.5 → 10.0.6 2024-03-19 08:48:09 +01:00
Neal Gompa (ニール・ゴンパ)
2aac0654a9
Merge pull request #2507 from OSInside/revise-commands
Revise commands
2024-03-18 22:56:38 -04:00
Neal Gompa (ニール・ゴンパ)
01794feb24
Merge pull request #2508 from OSInside/fix_zipl_artifacts
Fixup cleanup of zipl templates
2024-03-18 18:30:19 -04:00
Marcus Schäfer
4752a53554
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
2024-03-18 16:34:54 +01:00
Dmitri Popov
3b3ac7cb78
Revise system_update.rst 2024-03-14 11:57:55 +01:00
Dmitri Popov
492106f0b3
Revise system_prepare.rst 2024-03-14 11:57:54 +01:00
Dmitri Popov
a50fc0a6b5
Revise system_create.rst 2024-03-14 11:57:19 +01:00
Dmitri Popov
ee5de2c89f
Revise system_build.rst 2024-03-14 11:57:17 +01:00
Dmitri Popov
7098e4c374
Temp commit 2024-03-14 11:56:12 +01:00
Dmitri Popov
21084986e1
Revise image_size, kiwi 2024-03-14 11:56:12 +01:00
Dmitri Popov
dc49dfae9a
Revise image info 2024-03-14 11:56:12 +01:00
Marcus Schäfer
eeaeeecf9f
Bump version: 10.0.4 → 10.0.5 2024-03-13 15:09:21 +01:00
Marcus Schäfer
287ddf2884
Merge pull request #2505 from OSInside/drop_rpm_dir
Drop rpm-dir from allowed repository type
2024-03-13 11:23:12 +01:00
Marcus Schäfer
5dab3e9d18
Merge pull request #2506 from OSInside/followup_fix_boot_zipl
Followup fix for use of /boot/zipl
2024-03-13 11:22:52 +01:00
Marcus Schäfer
3ac0ff72b8
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
2024-03-13 09:33:30 +01:00
Marcus Schäfer
d3fff78cfb
Update schema version in spec file 2024-03-13 08:35:17 +01:00
Marcus Schäfer
9570906753
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
2024-03-12 16:40:07 +01:00
Neal Gompa (ニール・ゴンパ)
56d5ca9a90
Merge pull request #2504 from OSInside/fix_boot_zipl
Fixup use of /boot/zipl
2024-03-12 10:49:21 -04:00
Neal Gompa (ニール・ゴンパ)
ff06f96bfd
Merge pull request #2502 from OSInside/s390_distro_entries_conf
Lookup distro provided BLS entries for zipl
2024-03-12 10:48:43 -04:00
Marcus Schäfer
ae497f2504
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
2024-03-12 15:37:16 +01:00
Marcus Schäfer
cf7970a86d
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
2024-03-12 12:42:32 +01:00
Marcus Schäfer
d076225d66
Install audit in s390 rawhide integration test 2024-03-11 14:58:39 +01:00
Marcus Schäfer
0bdcf018be
Bump version: 10.0.3 → 10.0.4 2024-03-10 17:55:32 +01:00
Neal Gompa (ニール・ゴンパ)
3b2cf53b80
Merge pull request #2500 from OSInside/s390_bls_zipl
Add support for BLS zipl
2024-03-10 07:08:00 -04:00
Marcus Schäfer
74d80982b5
Fix s390 tools and grub requirement
On Fedora/RHEL this is named s390utils and there is no grub2
2024-03-10 11:28:35 +01:00
Marcus Schäfer
fc31be6884
Added rawhide integration test 2024-03-10 11:28:35 +01:00
Marcus Schäfer
583f3385df
Add support for BLS zipl
Add support for <bootloader name="zipl" .../> to support BLS
based zipl configuration. This Fixes #2481
2024-03-10 11:28:21 +01:00
Marcus Schäfer
d38e3a2bd4
Delete invalid EPEL repo from rawhide tests 2024-03-09 14:52:13 +01:00
Marcus Schäfer
c943aa15f6
Bump version: 10.0.2 → 10.0.3 2024-03-07 15:51:11 +01:00
Marcus Schäfer
a7b984115d
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
2024-03-07 15:50:58 +01:00
Neal Gompa (ニール・ゴンパ)
9d58e9d714
Merge pull request #2501 from OSInside/fix-docoptng-dep
Ensure we use a compatible docopt-ng version
2024-03-06 21:57:24 -05:00
Neal Gompa
2c35655c7f 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.
2024-03-06 21:33:26 -05:00
Marcus Schäfer
bcb34b9604
Bump version: 10.0.1 → 10.0.2 2024-03-06 10:42:14 +01:00
Marcus Schäfer
ccc2336db0
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
2024-03-06 10:39:31 +01:00
Marcus Schäfer
d42d0b48b7
Bump version: 10.0.0 → 10.0.1 2024-03-06 10:23:43 +01:00
Marcus Schäfer
b1f8499a12
Drop ci-kiwi-9-compliant.yml
Delete this action as it existed in the intermediate state
prior the new major version v10.x.x
2024-03-06 10:21:38 +01:00
Marcus Schäfer
8e37014431
Merge pull request #2441 from OSInside/becoming-a-poet
Switch to Poetry
2024-03-06 10:16:35 +01:00
Neal Gompa
7125211f9b
Switch to Poetry and use pyproject.toml definitions
This allows kiwi to be built, developed, tested, and installed
through Poetry. This also raises the minimum Python version to 3.9.
2024-03-06 09:28:26 +01:00
Marcus Schäfer
896a19ef4e
Add tzdata to Debian tests 2024-03-06 09:13:49 +01:00
Marcus Schäfer
efb8aef774
Fixed sync script for test-image-rpi on Ubuntu 2024-03-06 09:08:29 +01:00
Marcus Schäfer
ef6db53119
Install language-pack-en for Ubuntu arm test 2024-03-06 00:09:24 +01:00
Marcus Schäfer
876626b91a
Install locales-all for Debian tests 2024-03-05 23:58:35 +01:00
Marcus Schäfer
93f990e2d4
Install language-pack-en for Debian tests 2024-03-05 23:56:03 +01:00
Marcus Schäfer
eb54b98cf8
Fix repo setup for Ubuntu arm test 2024-03-05 23:46:04 +01:00
Marcus Schäfer
bbd6ef8e62
Install network stack for Debian test 2024-03-05 23:38:20 +01:00
Marcus Schäfer
1f294ef74d
Request util-linux explicitly for Ubuntu tests 2024-03-05 23:31:29 +01:00
Marcus Schäfer
0aecc4c013
Add usr-is-merged to package list for bootstrap 2024-03-05 23:22:28 +01:00
Marcus Schäfer
db4afdc6d1
Install language-pack-en for Ubuntu tests 2024-03-05 23:15:42 +01:00
Marcus Schäfer
b0b5bfd2eb
Move Ubuntu integration tests to Lunar 2024-03-05 22:50:31 +01:00
Marcus Schäfer
2a44ed925d
Update test-image-rpi for Ubuntu on arm
Do not install kiwi as test application
2024-03-05 22:19:56 +01:00
Marcus Schäfer
1379b6e9d7
Fix repo setup for Debian integration tests
Staging repo must be first for higher prio
2024-03-05 22:15:13 +01:00
Marcus Schäfer
f1eddf5546
Update test-image-docker-derived
Don't install kiwi as test application, use something
smaller, just vim
2024-03-05 22:07:44 +01:00
Marcus Schäfer
07f9dcc612
Move Debian build test from Buster to Bookworm
Move from Debian 11 to Debian 12 for integration testing
2024-03-05 22:04:15 +01:00
Marcus Schäfer
a7f7c70535
Move Ubuntu integration tests from Jammy to Mantic
Use Ubuntu 23.10 for the integration tests and move away from 22.04
2024-03-05 21:20:14 +01:00
Marcus Schäfer
bf529e7c2f
Delete test-image-microdnf
microdnf is dead and dnf5 took over
2024-03-05 21:11:29 +01:00
Marcus Schäfer
7809842033
Delete test-image-live-disk-v8
CentOS-8 is EOL and dropped from upstream kiwi
2024-03-05 21:09:46 +01:00
Marcus Schäfer
7e97150cb5
Merge pull request #2498 from OSInside/revise-documentation
Building images revision
2024-03-04 17:04:46 +01:00
Dmitri Popov
23fad55142 Review Build WSL container 2024-03-01 12:08:25 +01:00
Dmitri Popov
1f18bf2238 Revise Build simple disk 2024-03-01 11:45:11 +01:00
Marcus Schäfer
63c5e0f525
Merge pull request #2496 from OSInside/fix_use_of_systemd_cryptsetup
Fix activation of luks pool in the initrd
2024-03-01 11:42:00 +01:00
Marcus Schäfer
d6e2d4e27d
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
2024-02-29 20:46:07 +01:00
Marcus Schäfer
5453e1c521
Merge pull request #2482 from OSInside/disk_format_to_context_manager
Move DiskFormat to context manager
2024-02-29 16:48:44 +01:00
Marcus Schäfer
4fc0d2147d
Move DiskFormat to context manager
Change the DiskFormat Factory to be a context manager.
All code using DiskFormat was updated to the following
with statement:

    with DiskFormat(...).new as disk_format:
        disk_format.some_member()

This is related to Issue #2412
2024-02-29 16:42:49 +01:00
Marcus Schäfer
65ff9ab4e5
Update v9 compliance action
put the cherry-pick tests into an extra script and
provide a skip list of commits for manual checking
if needed
2024-02-29 16:42:17 +01:00
Dan Čermák
11eebcb13d
Merge pull request #2484 from OSInside/system_prepare_to_context
Move SystemPrepare to context manager
2024-02-29 16:00:33 +01:00
Marcus Schäfer
6696301835
Merge pull request #2487 from OSInside/grub_default_terminal_gfxterm
Set default output console to gfxterm for grub
2024-02-29 13:57:35 +01:00
Marcus Schäfer
3188987d19
Merge pull request #2492 from OSInside/simple_apply_of_changelog_fixfiles
Apply changelog fixes by glob
2024-02-29 09:45:35 +01:00
Marcus Schäfer
e19fb60f77
Apply changelog fixes by glob
Does not require Makefile changes when maintaining branches
2024-02-29 09:39:06 +01:00
Marcus Schäfer
15fc56fdd9
Merge pull request #2490 from OSInside/fix_for_changelog_entry_deb6ca
Add changelog fix file for commit deb6ca
2024-02-29 09:06:13 +01:00
Marcus Schäfer
03365689fb
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
2024-02-28 17:12:33 +01:00
Marcus Schäfer
b072cfdc7c
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
2024-02-28 10:42:17 +01:00
Marcus Schäfer
8739088340
Catch error condition more specific
Only a KiwiCommandError is an exception we want to
catch and handle, everything else is a bug and should
not be masked
2024-02-28 10:31:38 +01:00
Neal Gompa (ニール・ゴンパ)
b4fc8fbb44
Merge pull request #2485 from OSInside/fix_misleading_warning_message
Add silent flag to CommandCapabilities
2024-02-27 19:28:00 -05:00
Neal Gompa (ニール・ゴンパ)
67bf130cd1
Merge pull request #2479 from OSInside/systemd_discoverable_partitions
Add support for discoverable partitions
2024-02-27 19:26:52 -05:00
Marcus Schäfer
8920eee324
Add silent flag to CommandCapabilities
an instance of CommandCapabilities allows to check for specific
options of a command. If the parsing of options has failed a
warning message is created by default. Under certain circumstances
like the check for the --help option of setfiles, such a warning
message can be misleading information in the build log file.
Therefore the new silent flag allows to suppress the warning
message and the flag is used for the capabilities of the
setfiles utility. This Fixes #2350
2024-02-27 21:06:19 +01:00
Marcus Schäfer
fb360f6f96
Fix documentation preferlvm example
The custom volumes example shows a faulty XML description.
This Fixes #2483
2024-02-27 20:45:54 +01:00
Marcus Schäfer
f158e22ae3
Move SystemPrepare to context manager
Change the SystemPrepare class to context manager.
All code using SystemPrepare was updated to the following
with statement:

    with SystemPrepare(...) as system_prepare:
        system_prepare.some_member()

This completes the refactoring from finalizers to
context managers and Fixes #2412
2024-02-27 15:43:06 +01:00
Marcus Schäfer
7981095304
Fallback to built-in partition UUID table
If systemd-id128 is not found or failed use the kiwi built-in
table as defined by the UAPI group to assign the partition UUID
2024-02-26 14:59:56 +01:00
Marcus Schäfer
2540d56602
Add support for discoverable partitions
Set PARTUUID according to systemd-id128 if applicable
This Fixes #1385
2024-02-26 09:42:01 +01:00
Neal Gompa (ニール・ゴンパ)
6dc4ef2570
Merge pull request #2477 from OSInside/repository_to_context_manager
Move Repository to context manager
2024-02-24 11:06:00 -05:00
Neal Gompa (ニール・ゴンパ)
e05f1ddda0
Merge pull request #2480 from OSInside/fix_xmltodict_requirement
Added requirement for xmltodict to spec
2024-02-24 10:38:46 -05:00
Marcus Schäfer
d3ea590867
Added requirement for xmltodict to spec
Actually the real issue to this defect seems to live in the
anymarkup source code. It seems that the import of xmltodict
at the beginning of the core module is optional, but later on
when handling XML xmltodict seems to be mandatory, see here:
https://github.com/bkabrda/anymarkup-core/blob/08896a8215819edcc413e3f2588518046
9a4c2ed/anymarkup_core/__init__.py#L210-L229. Because this
issue can result in a "ImportError: Can't parse xml: xmltodict not installed"
turning kiwi into a bad exit condition I propose to add
this python requirement to the kiwi spec as a workaround and
try fixing the anymarkup packaging and module setup upstream
in addition. To my knowledge all relevant distributions
provides xmltodict
2024-02-24 15:42:00 +01:00
Marcus Schäfer
3dbf6cd57a
Fixed type hint for pinch_system method
The PackageManager argument is allowed to be optional
2024-02-24 15:37:22 +01:00
Neal Gompa (ニール・ゴンパ)
9f13c2a045
Merge pull request #2475 from OSInside/fix_oem_shutdown_implementation
Fixed implementation for oem-shutdown
2024-02-22 20:21:57 -05:00
Neal Gompa (ニール・ゴンパ)
58ad93a575
Merge pull request #2476 from OSInside/allow_term_setting_on_cmdline
Allow terminal emulation setup from the cmdline
2024-02-22 20:21:34 -05:00
Marcus Schäfer
4bcfa7f804
Move Repository to context manager
Change the Repository Factory to be a context manager.
All code using Repository was updated to the following
with statement:

    with Repository(...).new as repo:
        repo.some_member()

This is related to Issue #2412
2024-02-22 16:17:28 +01:00
Dmitri Popov
6faf743eb1 Build LiveISO review 2024-02-22 14:48:39 +01:00
Dmitri Popov
a7491a1858 Buil KIS review 2024-02-21 15:45:30 +01:00
Dmitri Popov
9b34d605f0 Build expandable disk review 2024-02-21 15:22:39 +01:00
Dmitri Popov
fd14f29b12 Build container image review 2024-02-21 11:52:22 +01:00
Marcus Schäfer
bb468e7f50
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
2024-02-21 10:21:48 +01:00
Marcus Schäfer
e5a9e17975
Merge pull request #2473 from OSInside/volume_manager_to_context_manager
Move VolumeManager to context manager
2024-02-21 10:10:26 +01:00
Marcus Schäfer
a39a19b35f
Move VolumeManager to context manager
Change the VolumeManager Factory to be a context manager.
All code using VolumeManager was updated to the following
with statement:

    with VolumeManager(...).new as volume_manager:
        volume_manager.some_member()

This is related to Issue #2412
2024-02-21 09:40:47 +01:00
Marcus Schäfer
ee2bbc0582
Fixed implementation for oem-shutdown
If specified oem-shutdown caused a reboot -f -p which is
a powerdown but not a graceful shutdown. This commit fixes
this by using systemctl halt for a clean shutdown.
This Fixes #2474
2024-02-20 16:36:10 +01:00
Marcus Schäfer
5e40229b1c
Merge pull request #2457 from OSInside/drop_command_process_destructor
Drop destructor from CommandProcess
2024-02-20 09:14:07 +01:00
Neal Gompa (ニール・ゴンパ)
8f62f4417f
Merge pull request #2472 from OSInside/system_mount_as_context_manager
Move ImageSystem to context manager
2024-02-19 11:32:52 -05:00
Marcus Schäfer
ba27291de9
Drop destructor from CommandProcess
There is code that sends a SIGTERM to the process in case
there is no error code information. I believe in this case
sending SIGTERM will not kill the process (defunct) and I
also don't see in what good condition we would be entering
this state.
2024-02-19 16:37:33 +01:00
Dan Čermák
48817a6441
Refactor Command class
Command.run() currently has a bit of a confusing behavior: if raise_on_error is
False and the executable is not found, then a weird CommandT is returned (return
code is -1 and stdout+stderr is None). This makes it possible to hanlde command
not found errors separately, but it makes that needlessly verbose. So instead,
let's just return None in *this* special case.

That in turn uncovered, that in most cases when we set `raise_on_error=True`, we
actually want an error if the command is not present but no error if the command
fails to execute (e.g. because it returns -1 if you run `$cmd --version`). Hence we
introduce the flag `raise_on_command_not_found`, which causes an exception to
be raised if the command is not found. This makes it independent of the
`raise_on_error` flag.

Additionally, we add a small optimization: if command starts with /, then we
assume it's a full path and we omit the call to which (and just check whether it
exists).

Co-authored-by: Marcus Schäfer <marcus.schaefer@gmail.com>
2024-02-19 16:33:24 +01:00
Marcus Schäfer
9a8f59946e
Move ImageSystem to context manager
Change the ImageSystem class to context manager.
All code using ImageSystem was updated to the following
with statement:

    with ImageSystem(...) as image_system:
        image_system.some_member()

This is related to Issue #2412
2024-02-19 16:17:00 +01:00
Marcus Schäfer
2260c08090
Merge pull request #2471 from OSInside/fix_compliance_check
Allow empty cherry-picks for compliance test
2024-02-19 14:03:14 +01:00
Marcus Schäfer
50dc597fb8
Allow empty cherry-picks for compliance test
If we cherry-pick from main to master the compliance check
will notice that a commit already exists. This is not an error
and we can allow to continue the picking via --allow-empty
2024-02-19 13:58:17 +01:00
Marcus Schäfer
8e49560a91
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
2024-02-19 12:05:45 +01:00
Alexandre Detiste
fb69627ad3
Use unittest.mock from core python everywhere
mock was an independent module that has been merged into the Python standard library.
2024-02-18 22:15:30 +01:00
Neal Gompa (ニール・ゴンパ)
67914acf4a
Merge pull request #2464 from OSInside/profile_extra
Add support for reading .profile.extra in initrd
2024-02-17 15:43:12 -05:00
David Cassany Viladomat
4eaf4dd3b0
Merge pull request #2468 from OSInside/fix_partx_use_for_s390
Include partprobe in initrd for s390
2024-02-16 15:26:45 +01:00
David Cassany
deb6ca8631 Include partprobe in initrd for s390
This commit includes partprobe, in addition to parted, on
s390 based systems. Otherwise partx is used and apparently
it does not properly support s390.

Fixes bsc#1219798

Signed-off-by: David Cassany <david@localhost.localdomain>
2024-02-16 15:08:49 +01:00
Marcus Schäfer
6fb27b95fe
Fixed MicroOS integration test
temporarily disable ignition/combustion/growpart and use
kiwi's resize code for testing, oem-resize set to true
2024-02-16 15:02:52 +01:00
Marcus Schäfer
df5c1e05c4
Fixed kis documentation
The procedure to run qemu with a filesystem image as disk
was not quite correct.
2024-02-15 10:08:01 +01:00
Marcus Schäfer
97aef9904b
Update documentation about partition clones
Using the root_clone attribute comes with some requirements
and consequences. This commit documents them
2024-02-14 15:42:39 +01:00
Fabian Vogt
765c5a5e28
Improve documentation generation
With Sphinx >= 6.0.0, jQuery is no longer included but the rtd theme's search
functionality needs it. The theme was changed to load sphinxcontrib-jquery
automatically with https://github.com/readthedocs/sphinx_rtd_theme/pull/1399,
but kiwi broke this fix by loading the theme in the wrong way.
Now that the theme is loaded properly, the search functionality also works
with newer versions of sphinx again and the version pinning can be lifted.
This Fixes: #2462
2024-02-14 15:18:56 +01:00
Marcus Schäfer
3dbcdc328c
Merge pull request #2461 from OSInside/no_compliant_test_on_forks
Don't run ci-kiwi-9-compliant action on forks
2024-02-14 12:52:52 +01:00
Fabian Vogt
8064538ebf
Allow specifying the filesystem for live image, also direct squashfs
Allow specifying the filesystem for live image, also direct squashfs

By setting <type image="iso" filesystem="FSTYPE" .../> it's now possible
to specify the filesystem used for live images. By using "squashfs", the
rootfs container is skipped entirely.
2024-02-14 12:51:58 +01:00
Marcus Schäfer
b085012679
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
2024-02-14 12:43:54 +01:00
Marcus Schäfer
3a444d9868
Don't run ci-kiwi-9-compliant action on forks 2024-02-14 09:50:08 +01:00
Dan Čermák
2675791852
Merge pull request #2458 from OSInside/move_buildah_to_context_manager
Move OCI to context manager
2024-02-14 09:08:45 +01:00
Marcus Schäfer
cd052c0558
Move OCI to context manager
Change the OCI Factory to be a context manager.
All code using OCI was updated to the following
with statement:

    with OCI(...).new as oci:
        oci.some_member()

This is related to Issue #2412
2024-02-13 22:35:52 +01:00
Neal Gompa (ニール・ゴンパ)
dfa7f2c4c9
Merge pull request #2459 from OSInside/fix_uuid_setup_for_btrfs
Fix setup of UUID for btrfs
2024-02-13 05:53:48 -05:00
Marcus Schäfer
2645225e11
Fix setup of UUID for btrfs
When setting up the UUID for a btrfs filesystem via btrfstune
it could happen that the call becomes interactive asking
a question and give a recommendation. All this is unwanted
and can be forced via the -f switch. This Fixes #2456
2024-02-13 09:27:31 +01:00
Marcus Schäfer
8c6ac25804
Fixed use of custom bootloader
In case no bootloader implementation by kiwi should be
used, users can specify the bootloader="custom" attribute.
Instead of skipping the bootloader stage in the builders
it is better to consistently create an instance of bootloader
but raise if a method of the bootloader interface is called
for which the custom bootloader has no implementation. This
commit adds the consistency bits.
2024-02-12 13:04:29 +01:00
Marcus Schäfer
bdd2746e03
Fixed scope of BootLoaderConfig instance
Due to the refactor of BootLoaderConfig into context managers
we had two instances of BootLoaderConfig. However, the first
instance holds data the second instance needs which caused an
issue. This commit makes sure there is one BootLoaderInstance
within the lifetime of required services
2024-02-12 10:37:21 +01:00
Marcus Schäfer
59fe4e48ff
Allow integration test to build outside of obs too 2024-02-12 10:36:48 +01:00
Marcus Schäfer
b781feaea0
Follow up fix for drop obsolete C tools from kiwi
The spec file make call to build the C code was forgotten
to be deleted
2024-02-12 09:54:26 +01:00
Neal Gompa (ニール・ゴンパ)
84709c26c6
Merge pull request #2448 from OSInside/no_pdf_docs
Drop PDF build of the documentation
2024-02-11 09:39:44 -05:00
Marcus Schäfer
18347989dd
Drop PDF build of the documentation
The kiwi.pdf file as provided in the kiwi-man-pages package
was never really used by our users but comes with a huge
dependency chain to LaTex. We provide the documentation
online as well as converted to DocBook from where all other
formats could be derived. Thus there is no need for us to
produce an extra PDF document which is imho never consulted.
In addition to this change also the contributing chapter has
been reworked. Due to recent changes and drop of obsolete
components from kiwi as well as the effort to move the development
setup to poetry, there is only one non python tool needed
for the development of kiwi. The check for this tool has been
moved into the Makefile and all other checks formerly done
in the helper/install_devel_packages script were deleted.
2024-02-11 15:11:39 +01:00
Neal Gompa (ニール・ゴンパ)
e91e29e61c
Merge pull request #2455 from OSInside/drop_obsolete_c_tools
Drop obsolete C tools from kiwi
2024-02-11 06:38:27 -05:00
Marcus Schäfer
c2766b23a6
Drop obsolete C tools from kiwi
For building custom initrd images kiwi provided some
optional helper tools. All these C written tools are
old and outdated and either not useful anymore or
replaced by other tools that are part of the distribution
matrix we support. Thus with the move to the next
major release those can go away. This also include the
package kiwi-tools which was used to provide them
2024-02-11 10:54:58 +01:00
Marcus Schäfer
d8e0d65549
Merge pull request #2452 from OSInside/no_del_on_bootloader_install_grub
Remove destructor from BootLoaderInstallGrub2
2024-02-09 10:30:52 +01:00
Marcus Schäfer
f6f8ecb11f
Merge pull request #2453 from OSInside/fix_docs_for_leap_use
Update documentation
2024-02-09 10:22:23 +01:00
Marcus Schäfer
571cbe401e
Update documentation
Several examples still pointed to Leap 15.3 repos, but we are
at Leap 15.5. Thus this commit shifts towards Leap 15.5
2024-02-07 10:36:34 +01:00
Marcus Schäfer
8aa517eb77
Remove destructor from BootLoaderInstallGrub2
With MountManager as context manager the BootLoaderInstallGrub2
class doesn't need a destructor anymore. This is related
to Issue #2412
2024-02-06 10:28:18 +01:00
Dan Čermák
9178edef43
Merge pull request #2451 from OSInside/no_del_on_boot_image_dracut
Remove obsolete destructor from BootImageDracut
2024-02-06 09:53:17 +01:00
Marcus Schäfer
ca334c1962
Remove obsolete destructor from BootImageDracut
With MountManager as context manager the BootImageDracut
class doesn't need a destructor anymore. This is
related to Issue #2412
2024-02-05 15:00:09 +01:00
Dan Čermák
9cf961e051
Merge pull request #2450 from OSInside/nested_build_process
Move Raid Luks and Integrity to context manager
2024-02-05 11:46:47 +01:00
Marcus Schäfer
9addfcd666
Move Raid Luks and Integrity to context manager
Change the RaidDevice, LuksDevice and IntegrityDevice classes
to context manager:

with RaidDevice(...) as raid:
    raid.some_member()

with LuksDevice(...) as luks:
    luks.some_member()

with IntegrityDevice(...) as integrity:
    integrity.some_member()

In the context of the disk builder an ExitStack is used to
handle the new context manager based classes

This is related to Issue #2412
2024-02-05 09:35:05 +01:00
Neal Gompa (ニール・ゴンパ)
bd37e2da5d
Merge pull request #2449 from OSInside/fix_error_message
Fix error message regarding ovftool
2024-02-02 08:52:12 -05:00
Marcus Schäfer
261e9d98fe
Fix error message regarding ovftool
For ova support kiwi still uses the proprietary ovftool
from VMware. The error message if the tool could not be
found was broken and the link to the VMware page was also
outdated.
2024-02-02 12:26:17 +01:00
Neal Gompa (ニール・ゴンパ)
e1230ca2b2
Merge pull request #2444 from OSInside/fix_bootloader_arguments
Only pass appropriate bootloader arguments
2024-02-02 04:56:32 -05:00
Marcus Schäfer
3846ba7051
Merge pull request #2443 from OSInside/fix_csv_reading
Fix reading of os-release file
2024-02-01 15:33:37 +01:00
Marcus Schäfer
855371c591
Merge pull request #2446 from OSInside/fix_crypto_integration_test
Fix crypto LUKS integration test
2024-02-01 09:29:53 +01:00
Dan Čermák
01acc8797b
Merge pull request #2442 from OSInside/disk_to_context_manager
Move Disk to context manager
2024-01-31 16:31:28 +01:00
Marcus Schäfer
11c16946e4
Fix crypto LUKS integration test
The integration test build also encrypts /boot which requires
grub to open the LUKS pool using cryptomount. grub does not support
the argonID salted password hashes. Thus the integration test
description configures pbkdf2 instead
2024-01-31 15:40:17 +01:00
Marcus Schäfer
c5b3c83920
Use ExitStack for MountManagers 2024-01-31 15:04:10 +01:00
Marcus Schäfer
09e4758609
Move Disk to context manager
Change the Disk class to be a context manager.
All code using Disk was updated to the following
with statement:

    with Disk(...) as disk:
        disk.some_member()

This is related to Issue #2412
2024-01-31 15:04:10 +01:00
Marcus Schäfer
53dd9d9f09
Only pass appropriate bootloader arguments
When constructing a BootLoaderConfig instance only pass
arguments appropriate to the selected bootloader. It does
not hurt but it is bad style and unnecessary data and
code points if e.g grub relevant information is passed
when we actually setup systemd-boot
2024-01-31 11:10:26 +01:00
Marcus Schäfer
d154317573
Fix reading of os-release file
If the /etc/os-release file contains comments or spaces
python's csv reader will throw an exception. Thus this
data must be ripped out prior reading
2024-01-31 10:30:22 +01:00
Marcus Schäfer
82d9a6cdcf
Allow to use Literal for all python versions 2024-01-30 17:36:28 +01:00
Marcus Schäfer
d785bd5ba9
Better error message on module import 2024-01-30 17:14:21 +01:00
Neal Gompa (ニール・ゴンパ)
a971095f1f
Merge pull request #2440 from OSInside/bootloaderconfig-to-ABC
convert BootLoaderConfig to an abstract base class
2024-01-29 08:26:38 -05:00
Dan Čermák
66747c754c
Fix invalid escape sequence 2024-01-29 14:08:13 +01:00
Dan Čermák
882fb9019a
Add missing assert call to install_test 2024-01-29 14:08:13 +01:00
Dan Čermák
410e6d9e21
Correct type hint of mbrid parameter 2024-01-29 14:08:10 +01:00
Dan Čermák
34934b2f8f
Convert BootLoaderConfigBase into an abstract base class 2024-01-29 14:07:41 +01:00
Dan Čermák
f906704ea5
Convert BootLoaderConfig to free function
The class serves really no purpose except for creating another
namespace. This function now allows us to have more stricter type checking.
2024-01-29 13:56:51 +01:00
Marcus Schäfer
bd6adefd16
Merge pull request #2439 from OSInside/drop_isolinux
Drop isolinux
2024-01-28 11:16:08 +01:00
Marcus Schäfer
8424451557
Fixed test-image-rpi for TW
No need to pull in zypper plugin that does not resolve on TW
2024-01-26 21:36:49 +01:00
Marcus Schäfer
379ccf2a82
Update documentation
drop documentation for isolinux in API and user docs
2024-01-26 21:25:37 +01:00
Marcus Schäfer
54f92d2a9f
Drop support for syslinux/isolinux
SYSLINUX has been abandoned for several years now, and it does not
even work with modern versions of the filesystems supported in kiwi.
This commit drops it and Fixes #2433
2024-01-26 21:25:37 +01:00
Marcus Schäfer
e32a8a1faa
Update build tests
Delete use of syslinux/isolinux
2024-01-26 21:25:37 +01:00
Dan Čermák
b29e491196
Merge pull request #2438 from OSInside/move_bootloader_to_context_manager
Move BootLoaderConfig to context manager
2024-01-26 10:17:42 +01:00
Marcus Schäfer
14e8482ac4
better function name 2024-01-26 09:18:44 +01:00
Marcus Schäfer
d209a57910
Move BootLoaderConfig to context manager
Change the BootLoaderConfig class to be a context manager.
All code using BootLoaderConfig was updated to the following
with statement:

    with BootLoaderConfig.new(...) as bootloader_config:
        bootloader_config.some_member()

This is related to Issue #2412
2024-01-23 15:11:21 +01:00
Marcus Schäfer
b707be023f
Merge pull request #2435 from OSInside/mount-manager-to-context-manager
Convert the MountManager to context manager
2024-01-23 15:10:25 +01:00
Marcus Schäfer
2295c577e5
Merge pull request #2437 from OSInside/copyright-year-docs
[docs] make copyright year dynamic
2024-01-19 16:58:40 +01:00
Neal Gompa (ニール・ゴンパ)
ed55ef559d
Merge pull request #2436 from OSInside/new-shellcheck
Support for new shellcheck
2024-01-19 08:34:09 -05:00
Dan Čermák
cd52492581
[docs] make copyright year dynamic 2024-01-19 14:12:15 +01:00
Dan Čermák
08580b02b5
Silence Shellcheck warning SC2004
It causes false positives in array expressions,
e.g. device_array[${device_index}]

(see: https://www.shellcheck.net/wiki/SC2004)
2024-01-19 14:09:33 +01:00
Dan Čermák
3436964396
Quote shell variables to prevent word splitting
this fixes shellcheck warning SC2086
https://www.shellcheck.net/wiki/SC2086
2024-01-19 14:06:51 +01:00
Dan Čermák
3140c1e6b6
Add type hints & doc to VolumeManagerBase & VolumeManagerBtrfs
Also add additional tests for test coverage of typing edge cases
2024-01-19 13:10:32 +01:00
Dan Čermák
af3e9aa924
Correct invalid escape sequence
\/ is not a valid escape sequence, it just needs to be forwarded to the shell
2024-01-19 13:10:32 +01:00
Dan Čermák
f007f03b1e
DiskBuilder: use ExitStack to unmount partitions 2024-01-19 13:10:32 +01:00
Dan Čermák
06dd49bf9f
FileSystemBase & VolumeManagerBase: return a MountManager from sync_data
This allows us to unmount the filesystems via the returned context manager
2024-01-19 13:10:31 +01:00
Dan Čermák
e808d88319
Don't catch all exceptions in MountManager.umount 2024-01-19 13:10:31 +01:00
Dan Čermák
5c364e95d4
Implement a context manager interface for MountManager 2024-01-18 16:44:56 +01:00
Marcus Schäfer
869b2801e6
Merge pull request #2434 from OSInside/refactor_disk_builder_for_further_context_manager
Refactor disk builder for use with context manager
2024-01-18 15:52:15 +01:00
Marcus Schäfer
a1783ffd83
Refactor disk builder for use with context manager
In preparation to further context manager related changes
in VolumeManager, LuksDevice, RaidDevice and more the
disk builder code which uses these classes needs to be
refactored beforehand to allow switching to context
manager based cascading of the storage device classes.
This commit does the refactoring and is related to
Issue #2412
2024-01-18 15:46:08 +01:00
Marcus Schäfer
0594dcd8db
Update Debian distro for integration tests
We require python >= 3.9
2024-01-17 21:59:05 +01:00
Marcus Schäfer
758080bb19
Merge pull request #2432 from OSInside/follow_up_fix_for_hybrid_drop
Follow up fix for drop of hybrid boot snippets
2024-01-16 16:03:51 +01:00
Marcus Schäfer
d9e9a3820b
Follow up fix for drop of hybrid boot snippets
The following is left over code from the drop of the hybrid
boot templates.
2024-01-16 15:50:45 +01:00
Neal Gompa (ニール・ゴンパ)
5ee55aeaf3
Merge pull request #2424 from OSInside/drop-grub2-linuxefi
Drop hybrid boot snippets from the GRUB 2 configuration template
2024-01-16 08:03:30 -05:00
Marcus Schäfer
31e6f2d587
Merge pull request #2428 from OSInside/move_filesystem_to_context_manager
Move FileSystem to context manager
2024-01-16 13:51:48 +01:00
Neal Gompa (ニール・ゴンパ)
c4c25b9874
Merge pull request #2429 from OSInside/reduce_xsl_transformation_list
Reduce XSL transformation list
2024-01-16 04:55:04 -05:00
Neal Gompa (ニール・ゴンパ)
c3c1986acf
Merge pull request #2430 from OSInside/drop_sle_integration_tests
Drop SLE integration tests
2024-01-16 04:53:30 -05:00
Neal Gompa (ニール・ゴンパ)
3ba7a499ca
Merge pull request #2431 from OSInside/kernel_install_compatible_conf_names
Compat entry name for kernel-install in sd-boot
2024-01-16 04:48:46 -05:00
Neal Gompa
a638884192 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.
2024-01-16 04:37:16 -05:00
Marcus Schäfer
8551ebca7a
Don't create default entry for sd-boot loader.conf 2024-01-15 17:57:51 +01:00
Marcus Schäfer
abac4d01ce
Type cleanup, no use of Any type in disk builder
Use proper Union declaration for system variable and add
consistency layer into Filesystem/VolumeManager classes to
meet the type declaration as well as to simplify further
refactoring on these classes
2024-01-15 16:49:53 +01:00
Marcus Schäfer
bddf25559d
Compat entry name for kernel-install in sd-boot
systemd-boot tools like kernel-install expect a certain
entry naming policy. This commit adapts kiwi to adapt to
this policy. The name for the default entry is constructed
out of the ID information from /etc/os-release followed
by the name of the kernel as it is represented by the
directory name in /lib/modules/... This Fixes #2417
2024-01-13 23:25:41 +01:00
Marcus Schäfer
4941d070ae
Drop SLE integration tests
The kiwi version for SLE is maintained in the git repos
* https://github.com/SUSE/kiwi_sle15
* https://github.com/SUSE/kiwi_sle12
and has its own set of QA integration tests in the internal
build service.
2024-01-13 13:47:50 +01:00
Marcus Schäfer
075a58dd6c
Apply different cherry-pick strategy
cherry picking merge commits is not easily possible. Thus get
the list of commits and check if it can be applied in a series
2024-01-12 20:03:51 +01:00
Marcus Schäfer
ee40b83d86
Move FileSystem to context manager
Change the FileSystem class to be a context manager. All code using
FileSystem was updated to the following with statement:

with FileSystem.new(...) as filesystem:
    filesystem.some_member()

This is related to Issue #2412
2024-01-12 20:03:51 +01:00
Marcus Schäfer
9facee70a7
Reduce XSL transformation list
Minimum schema version to start with is v74
This Fixes #2368
2024-01-12 16:19:15 +01:00
Marcus Schäfer
06eb1218d3
Fixed custom ISO boot template
The archlinux integration test used a custom iso boot
template which still contained the terminal_setup variable.
This commit fixed the template to use the new terminal_input
and terminal_output variables
2024-01-12 09:39:18 +01:00
Marcus Schäfer
2ea8e1f30f
Delete clicfs from documentation API 2024-01-12 09:09:47 +01:00
Marcus Schäfer
c85f7b9dc4
Merge pull request #2423 from OSInside/move_loop_device_to_context_manager
Move loop device to context manager
2024-01-12 09:02:34 +01:00
Marcus Schäfer
cdbe5060ca
Move LoopDevice class to context manager
Change the LoopDevice class to be a context manager.
All code using LoopDevice was updated to the following
with statement:

with LoopDevice(...) as loop_provider:
    loop_provider.some_member()

This is related to Issue #2412
2024-01-11 19:18:01 +01:00
Neal Gompa (ニール・ゴンパ)
d7bcc323d0
Merge pull request #2427 from OSInside/drop_clicfs
Drop clicfs
2024-01-11 04:30:43 -05:00
Marcus Schäfer
f5d2683776
Update unit test data to schema v8.0 2024-01-11 09:46:23 +01:00
Marcus Schäfer
8dcef0a5d5
Update major schema version from 7.6 -> 8.0
With the switch to schema v8.x we allow for non compatible
changes in regards to the v7.x stream. Thus this commit also
deletes the support for clicfs from the schema
2024-01-11 09:30:07 +01:00
Marcus Schäfer
fc77e6b1ca
Drop clicfs support
clicfs was a fuse userspace implementation of an overlay
filesystem. Since overlayfs became the default overlay filesystem
there is no reason for kiwi to keep the clicfs support
2024-01-11 09:23:52 +01:00
Marcus Schäfer
cc9073cc64
Merge pull request #2426 from OSInside/centos-9-obsrepositories
Use obsrepositories for the CentOS 9 image
2024-01-11 08:52:50 +01:00
Dan Čermák
8acbaf3646
Use obsrepositories for the CentOS 9 image
We were relying on the repos being parsed from the kiwi description but this can
cause problems and gives us less flexibility when it comes to fixing repository
setup issues.

This fixes https://github.com/OSInside/kiwi/issues/2335
2024-01-10 12:10:47 +01:00
Marcus Schäfer
bd442f6454
Merge pull request #2422 from OSInside/add_compliance_action
Add compliance action
2024-01-09 21:09:23 +01:00
Marcus Schäfer
8e9e5ba16a
Add compliance action
Check if the commits of a pull request can be cherry-picked to
the master, which is the kiwi v9.x.x code stream.
2024-01-09 17:03:45 +01:00
Marcus Schäfer
a96b106ebb
Bump version: 9.25.22 → 10.0.0 2024-01-09 15:36:13 +01:00
Marcus Schäfer
a501f6c330
Move workflow runs to main branch
Make sure all github actions runs from main
2024-01-09 15:35:22 +01:00
916 changed files with 33816 additions and 18209 deletions

View File

@ -1,8 +1,10 @@
[bumpversion]
current_version = 9.25.22
current_version = 10.2.44
commit = True
tag = True
[bumpversion:file:pyproject.toml]
[bumpversion:file:kiwi/version.py]
[bumpversion:file:doc/source/conf.py]

View File

@ -3,16 +3,16 @@ name: CI-Code-Style
on:
push:
branches:
- "master"
- "main"
pull_request:
jobs:
unit_tests:
name: Linter checks for KIWI python and Shell code
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10"]
python-version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v3
@ -20,10 +20,10 @@ jobs:
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Tox
- name: Install Poetry
run: |
python -m pip install --upgrade pip
python -m pip install tox
python -m pip install poetry
- name: Run code checks
run: |
tox -e check
make check

View File

@ -4,21 +4,19 @@ name: CI-Config-Functions
on:
push:
branches:
- "master"
- "main"
paths:
- "kiwi/config/functions.sh"
- ".github/workflows/**"
- "test/scripts/**"
- "tox.ini"
- "*requirements.txt"
- "pyproject.toml"
pull_request:
paths:
# copy-pasta from the above because workflows don't support anchors :-(
- "kiwi/config/functions.sh"
- ".github/workflows/**"
- "test/scripts/**"
- "tox.ini"
- "*requirements.txt"
- "pyproject.toml"
jobs:
scripts_integration_tests:
@ -27,27 +25,21 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.11]
container_runtime:
- DOCKER
- PODMAN
steps:
- uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: pip-${{ hashFiles('.virtualenv.dev-requirements.txt') }}-${{ hashFiles('.virtualenv.requirements.txt') }}
restore-keys: |
-pip-
- name: checkout source code
uses: actions/checkout@v3
- name: set up Python
- uses: actions/checkout@v3
- name: Python${{ matrix.python-version }}
uses: actions/setup-python@v4
- name: Install Tox
run: sudo apt update && sudo apt install tox
with:
python-version: ${{ matrix.python-version }}
- name: Install Poetry
run: |
python -m pip install --upgrade pip
python -m pip install poetry
sudo python -m pip install pytest-container
- name: Run the scripts integration tests
run: sudo tox -e scripts
run: make test_scripts
env:
CONTAINER_RUNTIME: ${{ matrix.container_runtime }}

View File

@ -1,7 +1,7 @@
name: CI-Differential-ShellCheck
on:
pull_request:
branches: [master]
branches: [main]
permissions:
contents: read

View File

@ -3,7 +3,7 @@ name: CI-Documentation
on:
push:
branches:
- "master"
- "main"
pull_request:
jobs:
@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8]
python-version: [3.11]
steps:
- uses: actions/checkout@v3
@ -20,9 +20,10 @@ jobs:
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Tox
- name: Install Poetry
run: |
sudo apt update && sudo apt install tox
python -m pip install --upgrade pip
python -m pip install poetry
- name: Run sphinx build
run: |
tox -e doc
make docs

View File

@ -8,26 +8,28 @@ on:
jobs:
documentation:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10"]
python-version: ["3.11"]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Python${{ matrix.python-version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install
run: |
python -m pip install --upgrade pip
python -m pip install tox
python -m pip install poetry
- name: Render
run: |
tox -e doc_gh_pages
make ghpages
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
publish_branch: gh-pages
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./doc/build_gh_pages
publish_dir: ./doc/build
force_orphan: true

View File

@ -7,10 +7,10 @@ on:
jobs:
release:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10"]
python-version: ["3.11"]
environment:
name: pypi
@ -28,9 +28,9 @@ jobs:
- name: Install
run: |
python -m pip install --upgrade pip
python -m pip install tox
python -m pip install poetry==1.7.1
- name: Prepare
run: |
tox -e doc_man,release
make prepare_for_pypi
- name: Publish
uses: pypa/gh-action-pypi-publish@release/v1

16
.github/workflows/ci-stale.yml vendored Normal file
View File

@ -0,0 +1,16 @@
name: 'Mark stale issues and PRs with the stale label'
on:
schedule:
- cron: '30 1 * * *'
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v10
with:
stale-issue-message: 'This issue is stale because it has been open 60 days with no activity. stale label was set.'
stale-pr-message: 'This PR is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed as part of the community meeting.'
days-before-stale: 60
days-before-pr-close: -1
days-before-issue-close: -1

View File

@ -3,7 +3,7 @@ name: CI-Unit-And-Types
on:
push:
branches:
- "master"
- "main"
pull_request:
jobs:
@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
python-version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v3
@ -20,11 +20,11 @@ jobs:
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Tox
- name: Install Poetry
run: |
python -m pip install --upgrade pip
python -m pip install tox
python -m pip install poetry
- name: Run unit and type tests
run: tox -e "unit_py${PY_VER/./_}" -- -n auto
run: make test
env:
PY_VER: ${{ matrix.python-version }}

View File

@ -3,7 +3,7 @@ name: CI-Update-Build-Tests
on:
push:
branches:
- "master"
- "main"
paths:
- "build-tests/**"

7
.gitignore vendored
View File

@ -48,6 +48,9 @@ var/
.installed.cfg
*.egg
# Poetry
poetry.lock
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
@ -62,7 +65,6 @@ htmlcov/
.tox/
.coverage
.cache
nosetests.xml
coverage.xml
# Translations
@ -75,9 +77,6 @@ coverage.xml
docs/_build/
doc/xml/
# PyBuilder
target/
# man pages
*.1.gz

View File

@ -1,60 +0,0 @@
#
# Requirement files for Python Virtual Environments
#
-r .virtualenv.requirements.txt
# setuptools for pypi upload
setuptools
# virtualenv-based automation of test activities
tox
# python unit testing framework
pytest
pytest-cov
pytest-xdist
# Rolling backport of unittest.mock for all Pythons
mock
# Version-bump your software with a single command!
bumpversion
# A built-package format for Python
wheel
# Python style guide checker
flake8
mypy
types-pkg_resources
types-requests
types-PyYAML
types-mock
types-simplejson
# Generate Data Structures from XML Schema
# http://pythonhosted.org/generateDS
generateDS==2.29.24
# for building documentation
sphinx==5.0.0
git+https://github.com/openSUSE/rstxml2docbook.git@feature/kiwi
sphinx_rtd_theme
sphinxcontrib-spelling
pyenchant
# for github pages deployment tasks
travis-sphinx
ghp-import
# for helper tools
python-dateutil
# for release
twine
# for scripts testing
pytest-container

View File

@ -1,30 +0,0 @@
#
# Requirement files for Python Virtual Environments
#
# Shell interface for docopt, the command-line interface description language
docopt
# Powerful and Pythonic XML processing library
lxml
# YAML file parsing
PyYAML
# TOML file parsing
toml
# Python wrapper for extended filesystem attributes
xattr==0.9.3
# Network request/response library
requests
# markup support
anymarkup-core
xmltodict
# json support that also knows about tuples
simplejson
typing_extensions; python_version < '3.8'

View File

@ -1,48 +0,0 @@
# Manifest describing source package contents
graft tools
graft dracut
graft helper
graft kiwi/boot
graft kiwi/utils
graft kiwi/markup
graft kiwi/archive
graft kiwi/bootloader
graft kiwi/builder
graft kiwi/container
graft kiwi/filesystem
graft kiwi/package_manager
graft kiwi/partitioner
graft kiwi/repository
graft kiwi/schema
graft kiwi/storage
graft kiwi/system
graft kiwi/volume_manager
graft kiwi/xsl
graft kiwi/schema
graft kiwi/config
graft kiwi/tasks
graft kiwi/solver
graft kiwi/iso_tools
graft kiwi/oci_tools
graft package
graft doc/source
graft test
include doc/Makefile
include Makefile
include README.rst
include LICENSE
include tox.ini
include kiwi.yml
recursive-include doc/build/man *
recursive-include *.gz *.iso *.kiwi *.pf2 *.py *.txt *.xml *.xz
include .bumpversion.cfg
include .coverage*
include .virtualenv.requirements.txt
include .virtualenv.dev-requirements.txt
global-exclude *.py[cod] __pycache__

104
Makefile
View File

@ -3,6 +3,7 @@ docdir = /usr/share/doc/packages
python_version = 3
python_lookup_name = python$(python_version)
python = $(shell which $(python_lookup_name))
sc_disable = SC1091,SC1090,SC2001,SC2174,SC1117,SC2048,SC2004
LC = LC_MESSAGES
@ -11,13 +12,6 @@ version := $(shell \
'from kiwi.version import __version__; print(__version__)'\
)
.PHONY: tools
tools:
# apart from python sources there are also some legacy
# C tools used in custom kiwi boot descriptions.
# Note: These information will be missing when installed from pip
${MAKE} -C tools all
install_dracut:
for dracut in dracut/modules.d/*; do \
${MAKE} -C $$dracut install ;\
@ -25,8 +19,6 @@ install_dracut:
install_package_docs:
install -d -m 755 ${buildroot}${docdir}/python-kiwi
install -m 644 doc/build/latex/kiwi.pdf \
${buildroot}${docdir}/python-kiwi/kiwi.pdf
install -m 644 LICENSE \
${buildroot}${docdir}/python-kiwi/LICENSE
install -m 644 README.rst \
@ -34,9 +26,8 @@ install_package_docs:
install:
# apart from python sources there are also
# the C tools, the manual pages and the completion
# the manual pages and the completion
# Note: These information will be missing when installed from pip
${MAKE} -C tools buildroot=${buildroot} install
# manual pages
install -d -m 755 ${buildroot}usr/share/man/man8
for man in doc/build/man/*.8; do \
@ -49,14 +40,16 @@ install:
# kiwi default configuration
install -d -m 755 ${buildroot}etc
install -m 644 kiwi.yml ${buildroot}etc/kiwi.yml
tox:
tox -- "-n 5"
# kiwi old XSL stylesheets for upgrade
install -d -m 755 ${buildroot}usr/share/kiwi
cp -a helper/xsl_to_v74 ${buildroot}usr/share/kiwi/
kiwi/schema/kiwi.rng: kiwi/schema/kiwi.rnc
# whenever the schema is changed this target will convert
# the short form of the RelaxNG schema to the format used
# in code and auto generates the python data structures
@type -p trang &>/dev/null || \
(echo "ERROR: trang not found in path: $(PATH)"; exit 1)
trang -I rnc -O rng kiwi/schema/kiwi.rnc kiwi/schema/kiwi.rng
# XML parser code is auto generated from schema using generateDS
# http://pythonhosted.org/generateDS
@ -97,27 +90,63 @@ clean_git_attributes:
# for details on when this target is called see setup.py
git checkout kiwi/version.py
build: clean tox
# create setup.py variant for rpm build.
# delete module versions from setup.py for building an rpm
# the dependencies to the python module rpm packages is
# managed in the spec file
sed -ie "s@>=[0-9.]*'@'@g" setup.py
setup:
poetry install --all-extras
docs: setup
poetry run make -C doc man html
ghpages: setup
poetry run sphinx-build doc/source doc/build
poetry run pdoc kiwi \
'!kiwi.cli' '!kiwi.tasks' '!kiwi.builder' '!kiwi.xml_parse' \
'!kiwi.kiwi' '!kiwi.api_helper' \
--logo https://osinside.github.io/kiwi/_static/kiwi-logo.png \
--output-dir doc/build/api
docs_suse: setup
poetry run make -C doc xml
rm -rf doc/build/restxml
mv doc/build/xml doc/build/restxml
poetry run pip install \
git+https://github.com/openSUSE/rstxml2docbook.git@feature/kiwi
poetry run bash -c 'pushd doc && rstxml2docbook \
-v --no-split -o build/xml/book.xml build/restxml/index.xml'
bash -c 'mkdir -p doc/build/images/src/png && \
cp -a doc/source/.images/* doc/build/images/src/png'
cp doc/DC-kiwi doc/build/
bash -c 'pushd doc/build && daps -d DC-kiwi html'
test_scripts: setup
poetry run bash -c 'pushd test/scripts && sudo pytest -s -vv'
check: setup
# shell code checks
find build-tests -name config.sh | xargs shellcheck
bash -c 'shellcheck -e ${sc_disable} dracut/modules.d/*/*.sh -s bash'
bash -c 'shellcheck -e ${sc_disable} kiwi/config/functions.sh -s bash'
bash -c 'shellcheck build-tests.sh'
# python flake tests
poetry run flake8 --statistics -j auto --count kiwi
poetry run flake8 --statistics -j auto --count test/unit
poetry run flake8 --statistics -j auto --count test/scripts
test: setup
# python static code checks
poetry run mypy kiwi
# unit tests
poetry run bash -c 'pushd test/unit && pytest -n 5 \
--doctest-modules --no-cov-on-fail --cov=kiwi \
--cov-report=term-missing --cov-fail-under=100 \
--cov-config .coveragerc'
build: clean check test
# build the sdist source tarball
$(python) setup.py sdist
# restore original setup.py backed up from sed
mv setup.pye setup.py
poetry build --format=sdist
# provide rpm source tarball
mv dist/kiwi-${version}.tar.gz dist/python-kiwi.tar.gz
# append PDF documentation to tarball
gzip -d dist/python-kiwi.tar.gz
mkdir -p kiwi-${version}/doc/build/latex
mv doc/build/latex/kiwi.pdf kiwi-${version}/doc/build/latex
tar -uf dist/python-kiwi.tar kiwi-${version}/doc/build/latex/kiwi.pdf
gzip dist/python-kiwi.tar
rm -rf kiwi-${version}
# update rpm changelog using reference file
helper/update_changelog.py --since package/python-kiwi.changes > \
helper/update_changelog.py --since package/python-kiwi.changes --fix > \
dist/python-kiwi.changes
helper/update_changelog.py --file package/python-kiwi.changes >> \
dist/python-kiwi.changes
@ -131,12 +160,17 @@ build: clean tox
-e s"@%%MD5SUM@$${md5sums}@" > dist/PKGBUILD
# provide rpm rpmlintrc
cp package/python-kiwi-rpmlintrc dist
# provide patches
cp package/*.patch dist
pypi: clean tox
$(python) setup.py sdist upload
prepare_for_pypi: clean setup
# documentation render and tests
poetry run make -C doc man
# sdist tarball, the actual publishing happens via the
# ci-publish-to-pypi.yml github action
poetry build --format=sdist
clean: clean_git_attributes
$(python) setup.py clean
rm -rf dist
rm -rf doc/build
rm -rf doc/dist
${MAKE} -C tools clean

View File

@ -18,8 +18,9 @@ KIWI - Next Generation
.. |Doc| replace:: `Documentation <https://osinside.github.io/kiwi/>`__
.. |Installation| replace:: `Installation <https://osinside.github.io/kiwi/installation.html>`__
.. |Contributing| replace:: `Contributing <https://osinside.github.io/kiwi/contributing.html>`__
.. |IntegrationTesting| replace:: `Integration Testing <https://osinside.github.io/kiwi/integration_testing.html>`__
.. |Donate| image:: https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif
:target: https://www.paypal.me/SchaeferMarcus
:target: https://www.paypal.com/donate/?hosted_button_id=CYZY57A7Q4TCC
|GitHub Action Code Style| |GitHub Action Config Functions| |GitHub Action Documentation| |GitHub Action Publish Pages| |GitHub Action Publish PyPi| |GitHub Action Unit Types| |Health|
@ -27,10 +28,13 @@ KIWI - Next Generation
* |Installation|
* |IntegrationTesting|
* |Contributing|
* |Doc|
We'll donate it for good luck so's you're sure to come back :)
KIWI has helped you in your work ? Even the smallest gift is
a way to help that we don't run out of coffee :)
|Donate|

165
build-tests.sh Executable file
View File

@ -0,0 +1,165 @@
#!/bin/bash
# git clone https://github.com/OSInside/kiwi.git
# Simple build test script to build the integration test
# images from a given test directory. The host to run this
# command requires the following tools:
#
# - tree
# - git
# - xmllint
# - podman
# - pip
#
# And requires the installation of the kiwi box plugin
#
# $ pip install --upgrade kiwi-boxed-plugin
#
set -e
ARGUMENT_LIST=(
"test-dir:"
"test-name:"
"box-name:"
"vm"
)
function usage() {
echo "usage: build-tests --test-dir <dir>"
echo " --test-dir <dir>"
echo " Some test dir name, e.g. build-tests/x86/tumbleweed/"
echo " --test-name <name>"
echo " some test name, e.g. test-image-disk"
echo " --box-name <name>"
echo " name of the box to use for the build, default: universal"
echo " --vm"
echo " build in a virtual machine instead of a container"
}
if ! opts=$(getopt \
--longoptions "$(printf "%s," "${ARGUMENT_LIST[@]}")" \
--name "$(basename "$0")" \
--options "" \
-- "$@"
); then
usage
exit 0
fi
eval set --"${opts}"
while [[ $# -gt 0 ]]; do
case "$1" in
--test-dir)
argTestDir=$2
shift 2
;;
--test-name)
argTestName=$2
shift 2
;;
--box-name)
argBoxName=$2
shift 2
;;
--vm)
argVM=1
shift
;;
*)
break
;;
esac
done
if [ ! "${argTestDir}" ];then
usage
exit 1
fi
if [ ! -e "${argTestDir}"/.repos ];then
echo "No .repos information for specified test dir"
exit 1
fi
boxname=universal
if [ "${argBoxName}" ];then
boxname="${argBoxName}"
fi
function create_repo_list() {
local build_dir=$1
if [ -s "${build_dir}"/.repos ];then
local repo_options="--ignore-repos"
while read -r repo;do
repo_options="${repo_options} --add-repo ${repo}"
done < "${build_dir}"/.repos
echo "${repo_options}"
fi
}
function create_build_commands() {
local build_dir=$1
local test_name=$2
build_commands=()
for image in "${build_dir}"/*;do
test -e "${image}/appliance.kiwi" || continue
test -e "${image}/.skip_boxbuild_container" && continue
base_image=$(basename "${image}")
if [ -n "${test_name}" ] && [ ! "${test_name}" = "${base_image}" ];then
continue
fi
build_command="kiwi-ng --debug"
has_profiles=false
repo_options=$(create_repo_list "${build_dir}")
box_options="system boxbuild --box ${boxname}"
if [ ! "${argVM}" = 1 ];then
box_options="${box_options} --container"
fi
for profile in $(
xmllint --xpath "//image/profiles/profile/@name" \
"${image}/appliance.kiwi" 2>/dev/null | cut -f2 -d\"
);do
has_profiles=true
target_dir="build_results/${base_image}/${profile}"
build_command="${build_command} --profile ${profile}"
build_command="${build_command} ${box_options} --"
build_command="${build_command} --description $image"
build_command="${build_command} ${repo_options}"
build_command="${build_command} --target-dir ${target_dir}"
echo "${build_command}" \
> "build_results/${base_image}-${profile}.build"
build_commands+=( "${build_command}" )
build_command="kiwi-ng --debug"
done
if [ "${has_profiles}" = "false" ];then
target_dir="build_results/${base_image}"
build_command="${build_command} ${box_options} --"
build_command="${build_command} --description $image"
build_command="${build_command} ${repo_options}"
build_command="${build_command} --target-dir ${target_dir}"
echo "${build_command}" \
> "build_results/${base_image}.build"
build_commands+=( "${build_command}" )
fi
done
}
# create results directory
mkdir -p build_results
# build command list
create_build_commands "${argTestDir}" "${argTestName}"
# build them in a row
for build in "${build_commands[@]}";do
${build}
sudo rm -rf build_results/*/*/build/
sudo rm -rf build_results/*/build/
done
# show result tree
test -d build_results && tree -L 3 build_results

View File

@ -1,10 +0,0 @@
KIWI - Image Build Tests
========================
.. |BuildService| replace:: `Open Build Service <https://build.opensuse.org>`__
This directory contains the description files of several images
which are used for testing KIWI within the |BuildService|
Testing projects can be found at `Virtualization:Appliances:Images` in
the `Testing_XXX/DISTRO` subprojects.

View File

@ -0,0 +1,2 @@
obs://Virtualization:Appliances:Staging/Fedora_39
https://mirrors.fedoraproject.org/metalink?repo=fedora-39&arch=aarch64,,,,,,,,,,metalink

View File

@ -1,2 +1,4 @@
iso:
- media_tag_tool: isomd5sum
oci:
- archive_tool: buildah

View File

@ -8,7 +8,7 @@
</description>
<preferences>
<version>1.33.2</version>
<packagemanager>dnf</packagemanager>
<packagemanager>dnf5</packagemanager>
<bootsplash-theme>charge</bootsplash-theme>
<bootloader-theme>breeze</bootloader-theme>
<locale>en_US</locale>
@ -40,6 +40,8 @@
<package name="tzdata"/>
<package name="dracut-kiwi-live"/>
<package name="fedora-logos"/>
<package name="systemd-resolved"/>
<package name="systemd-networkd"/>
</packages>
<packages type="bootstrap">
<package name="filesystem"/>
@ -49,5 +51,6 @@
<package name="grub2-efi-aa64-modules"/>
<package name="grub2-efi-aa64-cdboot"/>
<package name="fedora-release"/>
<package name="shadow"/>
</packages>
</image>

View File

@ -1,38 +1,8 @@
#!/bin/bash
#================
# FILE : config.sh
#----------------
# PROJECT : OpenSuSE KIWI Image System
# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
# :
# AUTHOR : Marcus Schaefer <ms@suse.de>
# :
# BELONGS TO : Operating System images
# :
# DESCRIPTION : configuration script for SUSE based
# : operating systems
# :
# :
# STATUS : BETA
#----------------
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
set -ex
#======================================
# Activate services
#--------------------------------------
baseInsertService network
baseInsertService grub_config
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3
systemctl enable systemd-networkd
systemctl enable systemd-resolved

View File

@ -0,0 +1,2 @@
obs://Virtualization:Appliances:Staging/Fedora_Rawhide
https://mirrors.fedoraproject.org/metalink?repo=rawhide&arch=aarch64,,,,,,,,,,metalink

View File

@ -1,38 +1,8 @@
#!/bin/bash
#================
# FILE : config.sh
#----------------
# PROJECT : OpenSuSE KIWI Image System
# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
# :
# AUTHOR : Marcus Schaefer <ms@suse.de>
# :
# BELONGS TO : Operating System images
# :
# DESCRIPTION : configuration script for SUSE based
# : operating systems
# :
# :
# STATUS : BETA
#----------------
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
set -ex
#======================================
# Activate services
#--------------------------------------
baseInsertService network
baseInsertService grub_config
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3
systemctl enable network
systemctl enable grub_config

View File

@ -0,0 +1,2 @@
obs://Virtualization:Appliances:Staging/openSUSE_Tumbleweed
https://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/

View File

@ -27,7 +27,7 @@
<type image="iso" flags="overlay" firmware="uefi" kernelcmdline="console=ttyS0" hybridpersistent_filesystem="ext4" hybridpersistent="true"/>
</preferences>
<preferences profiles="Disk">
<type image="oem" firmware="uefi" kernelcmdline="console=ttyS0" installiso="true" installboot="install" filesystem="ext4">
<type image="oem" firmware="efi" kernelcmdline="console=ttyS0" installiso="true" installboot="install" filesystem="ext4">
<bootloader name="grub2" console="serial" timeout="10"/>
<oemconfig>
<oem-unattended>true</oem-unattended>
@ -45,6 +45,7 @@
<packages type="image">
<package name="bind-utils"/>
<package name="patterns-openSUSE-base"/>
<package name="procps"/>
<package name="systemd"/>
<package name="plymouth-theme-bgrt"/>
<package name="grub2-branding-openSUSE"/>
@ -66,9 +67,9 @@
<package name="which"/>
<package name="kernel-default"/>
<package name="timezone"/>
<package name="shim"/>
</packages>
<packages type="image" profiles="Live">
<package name="shim"/>
<package name="dracut-kiwi-live"/>
</packages>
<packages type="image" profiles="Disk">

View File

@ -1,39 +1,7 @@
#!/bin/bash
#================
# FILE : config.sh
#----------------
# PROJECT : OpenSuSE KIWI Image System
# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
# :
# AUTHOR : Marcus Schaefer <ms@suse.de>
# :
# BELONGS TO : Operating System images
# :
# DESCRIPTION : configuration script for SUSE based
# : operating systems
#----------------
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
#======================================
# Setup baseproduct link
#--------------------------------------
suseSetupProduct
set -ex
#======================================
# Activate services
#--------------------------------------
suseInsertService sshd
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3
systemctl enable sshd

View File

@ -29,6 +29,7 @@
</repository>
<packages type="image">
<package name="patterns-openSUSE-base"/>
<package name="procps"/>
<package name="acl"/>
<package name="dracut"/>
<package name="group(mail)"/>

View File

@ -1,34 +1,10 @@
#!/bin/bash
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..."
#======================================
# Debug
#--------------------------------------
#systemctl enable debug-shell.service
#======================================
# Setup baseproduct link
#--------------------------------------
suseSetupProduct
#======================================
# Specify default runlevel
#--------------------------------------
baseSetRunlevel 3
set -ex
#======================================
# Activate services
#--------------------------------------
suseInsertService sshd
systemctl enable sshd
#======================================
# SSL Certificates Configuration
@ -40,7 +16,7 @@ update-ca-certificates
# Enable ntpd if installed
#-------------------------------------
if [ -f /etc/ntp.conf ]; then
suseInsertService ntpd
systemctl enable ntpd
for i in 0 1 2 3; do
echo "server $i.opensuse.pool.ntp.org iburst" >> /etc/ntp.conf
done

View File

@ -52,7 +52,6 @@
<package name="group(wheel)"/>
<package name="grub2-branding-openSUSE"/>
<package name="iputils"/>
<package name="zypper-lifecycle-plugin"/>
<package name="vim"/>
<package name="grub2"/>
<package name="grub2-arm64-efi" arch="aarch64"/>
@ -83,7 +82,6 @@
<package name="kernel-default"/>
<package name="ntp"/>
<package name="bcm43xx-firmware"/>
<package name="ruby"/>
</packages>
<packages type="bootstrap">
<package name="udev"/>

View File

@ -1,41 +1,28 @@
#!/bin/bash
set -ex
declare kiwi_btrfs_root_is_snapshot=${kiwi_btrfs_root_is_snapshot}
# shellcheck disable=SC1091
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# init reconfig system startup
#--------------------------------------
mkdir /var/lib/misc/reconfig_system
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..."
#======================================
# Debug
#--------------------------------------
#systemctl enable debug-shell.service
#======================================
# add missing fonts
#--------------------------------------
CONSOLE_FONT="eurlatgr.psfu"
#======================================
# Setup baseproduct link
#--------------------------------------
suseSetupProduct
#======================================
# Specify default runlevel
#--------------------------------------
baseSetRunlevel 3
#======================================
# Activate services
#--------------------------------------
suseInsertService sshd
systemctl enable sshd
#======================================
# Sysconfig Update
@ -49,42 +36,38 @@ echo FONT="$CONSOLE_FONT" >> /etc/vconsole.conf
echo '** Rehashing SSL Certificates...'
update-ca-certificates
if [ ! -s /var/log/zypper.log ]; then
> /var/log/zypper.log
fi
touch /var/log/zypper.log
#======================================
# Import trusted rpm keys
#--------------------------------------
for i in /usr/lib/rpm/gnupg/keys/gpg-pubkey*asc; do
# importing can fail if it already exists
rpm --import $i || true
rpm --import "$i" || true
done
#=====================================
# Configure snapper
#-------------------------------------
if [ "$kiwi_btrfs_root_is_snapshot" = 'true' ]; then
echo "creating initial snapper config ..."
# we can't call snapper here as the .snapshots subvolume
# already exists and snapper create-config doens't like
# that.
cp /etc/snapper/config-templates/default /etc/snapper/configs/root
# Change configuration to match SLES12-SP1 values
sed -i -e '/^TIMELINE_CREATE=/s/yes/no/' /etc/snapper/configs/root
sed -i -e '/^NUMBER_LIMIT=/s/50/10/' /etc/snapper/configs/root
if [ "${kiwi_btrfs_root_is_snapshot-false}" = 'true' ]; then
echo "creating initial snapper config ..."
cp /usr/share/snapper/config-templates/default /etc/snapper/configs/root
baseUpdateSysConfig /etc/sysconfig/snapper SNAPPER_CONFIGS root
baseUpdateSysConfig /etc/sysconfig/snapper SNAPPER_CONFIGS root
# Adjust parameters
sed -i'' 's/^TIMELINE_CREATE=.*$/TIMELINE_CREATE="no"/g' \
/etc/snapper/configs/root
sed -i'' 's/^NUMBER_LIMIT=.*$/NUMBER_LIMIT="2-10"/g' \
/etc/snapper/configs/root
sed -i'' 's/^NUMBER_LIMIT_IMPORTANT=.*$/NUMBER_LIMIT_IMPORTANT="4-10"/g' \
/etc/snapper/configs/root
fi
#=====================================
# Enable ntpd if installed
# Enable chrony if installed
#-------------------------------------
if [ -f /etc/ntp.conf ]; then
suseInsertService ntpd
for i in 0 1 2 3; do
echo "server $i.opensuse.pool.ntp.org iburst" >> /etc/ntp.conf
done
if [ -f /etc/chrony.conf ]; then
systemctl enable chronyd
fi
#======================================

View File

@ -0,0 +1,9 @@
obs://Virtualization:Appliances:Staging/xUbuntu_24.04_aarch64,apt-deb,kiwi,,,,,,,false
https://ports.ubuntu.com/ubuntu-ports,apt-deb,noble_1,,,,,main,noble,false
https://ports.ubuntu.com/ubuntu-ports,apt-deb,noble_2,,,,,multiverse,noble,false
https://ports.ubuntu.com/ubuntu-ports,apt-deb,noble_3,,,,,restricted,noble,false
https://ports.ubuntu.com/ubuntu-ports,apt-deb,noble_4,,,,,universe,noble,false
https://ports.ubuntu.com/ubuntu-ports,apt-deb,noble-updates_1,,,,,main,noble-updates,false
https://ports.ubuntu.com/ubuntu-ports,apt-deb,noble-updates_2,,,,,multiverse,noble-updates,false
https://ports.ubuntu.com/ubuntu-ports,apt-deb,noble-updates_3,,,,,restricted,noble-updates,false
https://ports.ubuntu.com/ubuntu-ports,apt-deb,noble-updates_4,,,,,universe,noble-updates,false

View File

@ -9,9 +9,6 @@
<preferences>
<version>1.22.4</version>
<packagemanager>apt</packagemanager>
<locale>en_US</locale>
<keytable>us</keytable>
<timezone>UTC</timezone>
<rpm-excludedocs>true</rpm-excludedocs>
<type image="oem" filesystem="xfs" firmware="efi" bootpartition="false" efipartsize="128" devicepersistency="by-label" editbootinstall="editbootinstall_rpi.sh">
<bootloader name="custom"/>
@ -30,14 +27,14 @@
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/home/ubuntu" name="ubuntu" groups="users,kvm" shell="/bin/bash"/>
</users>
<repository type="apt-deb" alias="kiwi-next-generation" priority="1" repository_gpgcheck="false">
<source path="obs://Virtualization:Appliances:Builder/xUbuntu_22.04"/>
<repository type="apt-deb" alias="kiwi-next-generation" priority="1" repository_gpgcheck="false" architectures="arm64">
<source path="obs://Virtualization:Appliances:Staging/xUbuntu_24.04_aarch64"/>
</repository>
<repository type="apt-deb" alias="Ubuntu-Jammy-Universe" distribution="jammy" components="main multiverse restricted universe" repository_gpgcheck="false">
<source path="obs://Ubuntu:22.04/universe"/>
<repository type="apt-deb" alias="Ubuntu-Noble-Universe" distribution="noble" components="main multiverse restricted universe" repository_gpgcheck="false">
<source path="obs://Ubuntu:24.04/universe"/>
</repository>
<repository type="apt-deb" alias="Ubuntu-Jammy" distribution="jammy" components="main multiverse restricted universe" repository_gpgcheck="false">
<source path="obs://Ubuntu:22.04/standard"/>
<repository type="apt-deb" alias="Ubuntu-Noble" distribution="noble" components="main multiverse restricted universe" repository_gpgcheck="false">
<source path="obs://Ubuntu:24.04/standard"/>
</repository>
<packages type="image">
@ -50,11 +47,12 @@
<package name="rpi-eeprom"/>
<package name="libraspberrypi-bin"/>
<!-- system packages -->
<package name="gawk"/>
<package name="libpam-runtime"/>
<package name="bash-completion"/>
<package name="git"/>
<package name="sudo"/>
<package name="net-tools"/>
<package name="tzdata"/>
<package name="apt-utils"/>
<package name="systemd"/>
<package name="systemd-timesyncd"/>
@ -67,24 +65,19 @@
<package name="dbus"/>
<package name="xfsprogs"/>
<package name="dracut-kiwi-oem-repart"/>
<package name="usrmerge"/>
<package name="mawk"/>
<package name="openssh-client"/>
<package name="openssh-server"/>
<package name="netcat"/>
<package name="zstd"/>
<package name="util-linux"/>
<package name="less"/>
<package name="vim"/>
<!-- image building -->
<package name="python3-kiwi"/>
<package name="python3-kiwi-boxed-plugin"/>
<package name="kiwi-systemdeps"/>
<package name="jing"/>
<package name="qemu-kvm"/>
<package name="qemu-system-x86"/>
<package name="qemu-system-arm"/>
<package name="fdisk"/>
<package name="language-pack-en"/>
<package name="locales-all"/>
<package name="tzdata"/>
</packages>
<packages type="bootstrap">
<package name="ca-certificates"/>
</packages>
<packages type="bootstrap"/>
</image>

View File

@ -1,12 +1,9 @@
#!/bin/bash
set -ex
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
echo "Configure image: [$kiwi_iname]..."
declare kiwi_language=${kiwi_language}
declare kiwi_keytable=${kiwi_keytable}
declare kiwi_timezone=${kiwi_timezone}
#======================================
# add missing fonts
@ -19,11 +16,6 @@ CONSOLE_FONT="eurlatgr.psfu"
dpkg -i /var/tmp/firmware/linux-firmware-raspi_6-0ubuntu3_arm64.deb
dpkg -i /var/tmp/firmware/linux-firmware-raspi2_6-0ubuntu3_arm64.deb
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3
# On Debian based distributions the kiwi built in way
# to setup locale, keyboard and timezone via systemd tools
# does not work because not(yet) provided by the distribution.
@ -39,15 +31,17 @@ echo "LANG=${kiwi_language}" > /etc/locale.conf
# Setup system keymap
#---------------------------------------
echo "KEYMAP=${kiwi_keytable}" > /etc/vconsole.conf
echo "FONT=eurlatgr.psfu" >> /etc/vconsole.conf
echo "FONT_MAP=" >> /etc/vconsole.conf
echo "FONT_UNIMAP=" >> /etc/vconsole.conf
{
echo "FONT=eurlatgr.psfu"
echo "FONT_MAP="
echo "FONT_UNIMAP="
} >> /etc/vconsole.conf
#=======================================
# Setup system timezone
#---------------------------------------
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/${kiwi_timezone} /etc/localtime
ln -s /usr/share/zoneinfo/"${kiwi_timezone}" /etc/localtime
#=======================================
# Setup HW clock to UTC
@ -59,11 +53,11 @@ echo "UTC" >> /etc/adjtime
#======================================
# Activate services
#--------------------------------------
baseInsertService ssh
baseInsertService systemd-networkd
baseInsertService symlink-resolvconf
baseInsertService rpi-eeprom-update
baseInsertService systemd-timesyncd
systemctl enable ssh
systemctl enable systemd-networkd
systemctl enable symlink-resolvconf
systemctl enable rpi-eeprom-update
systemctl enable systemd-timesyncd
#======================================
# Sysconfig Update

View File

@ -17,8 +17,8 @@ cp -a /usr/lib/firmware/*-raspi/device-tree/broadcom/* /boot/efi/
#==========================================
# copy initrd and kernel
#------------------------------------------
cp /boot/initrd.img-*-raspi /boot/efi/initrd.img
cp /boot/vmlinuz-*-raspi /boot/efi/vmlinuz
cp /boot/initrd*-raspi /boot/efi/initrd.img
cp /boot/vmlinuz*-raspi /boot/efi/vmlinuz
#==========================================
# copy u-boot

View File

@ -1,37 +0,0 @@
#!/bin/bash
#================
# FILE : config.sh
#----------------
# PROJECT : OpenSuSE KIWI Image System
# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
# :
# AUTHOR : Marcus Schaefer <ms@suse.de>
# :
# BELONGS TO : Operating System images
# :
# DESCRIPTION : configuration script for SUSE based
# : operating systems
# :
# :
# STATUS : BETA
#----------------
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
#======================================
# Activate services
#--------------------------------------
baseInsertService network
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3

View File

@ -1,16 +0,0 @@
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0

View File

@ -1,19 +0,0 @@
USEWINBINDAUTH=no
USEHESIOD=no
USESYSNETAUTH=no
USEPAMACCESS=no
USEKERBEROS=no
FORCESMARTCARD=no
USESMBAUTH=no
USESMARTCARD=no
USELDAPAUTH=no
PASSWDALGORITHM=md5
USEWINBIND=no
USESHADOW=yes
USEDB=no
USEPASSWDQC=no
USELOCAUTHORIZE=yes
USEMKHOMEDIR=no
USELDAP=no
USECRACKLIB=yes
USENIS=no

View File

@ -1,3 +0,0 @@
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain

View File

@ -1,3 +0,0 @@
DEVICE=lan0
BOOTPROTO=dhcp
ONBOOT=yes

View File

@ -0,0 +1,2 @@
obs://Virtualization:Appliances:Staging/Fedora_Rawhide
https://mirrors.fedoraproject.org/metalink?repo=rawhide&arch=ppc64le,,,,,,,,,,metalink

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<image schemaversion="7.5" name="kiwi-test-image-microdnf">
<image schemaversion="7.5" name="kiwi-test-image-live">
<description type="system">
<author>Marcus Schaefer</author>
<contact>ms@suse.com</contact>
<specification>Fedora Appliance, Testing microdnf</specification>
<contact>marcus.schaefer@suse.com</contact>
<specification>Fedora Rawhide Live</specification>
</description>
<preferences>
<version>2.0.0</version>
<packagemanager>microdnf</packagemanager>
<packagemanager>dnf5</packagemanager>
<bootsplash-theme>charge</bootsplash-theme>
<bootloader-theme>breeze</bootloader-theme>
<locale>en_US</locale>
@ -17,10 +17,7 @@
<rpm-check-signatures>false</rpm-check-signatures>
</preferences>
<preferences>
<type image="oem" filesystem="ext4" kernelcmdline="console=ttyS0" firmware="uefi" format="qcow2">
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
<type image="iso" flags="overlay" firmware="ofw" hybridpersistent_filesystem="ext4" hybridpersistent="true" kernelcmdline="console=ttyS0">
<bootloader name="grub2" console="serial" timeout="10"/>
</type>
</preferences>
@ -45,10 +42,9 @@
</packages>
<packages type="bootstrap">
<package name="filesystem"/>
<package name="shadow-utils"/>
<package name="basesystem"/>
<package name="grub2-efi-x64-modules"/>
<package name="grub2-efi-x64"/>
<package name="shim" arch="x86_64"/>
<package name="fedora-release"/>
<package name="dracut-kiwi-live"/>
</packages>
</image>

View File

@ -1,92 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- OBS-Profiles: @BUILD_FLAVOR@ -->
<image schemaversion="7.5" name="kiwi-test-image-disk">
<description type="system">
<author>Marcus Schäfer</author>
<contact>ms@suse.com</contact>
<specification>Virtual and Physical disk image test</specification>
</description>
<profiles>
<profile name="Virtual" description="Image for use with kvm"/>
<profile name="PhysicalBSZ_4096" description="Image for physical 4k storage disk"/>
<profile name="PhysicalBSZ_512" description="Image for 512byte storage disk"/>
</profiles>
<preferences>
<version>1.15.1</version>
<packagemanager>zypper</packagemanager>
<locale>en_US</locale>
<keytable>us</keytable>
<timezone>Europe/Berlin</timezone>
<rpm-excludedocs>true</rpm-excludedocs>
<rpm-check-signatures>false</rpm-check-signatures>
</preferences>
<preferences profiles="Virtual">
<type image="oem" filesystem="ext4" kernelcmdline="console=ttyS0" firmware="ofw" format="qcow2">
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
<bootloader name="grub2" console="serial" timeout="10"/>
</type>
</preferences>
<preferences profiles="PhysicalBSZ_4096">
<type image="oem" filesystem="ext4" kernelcmdline="console=ttyS0" firmware="ofw" installiso="true" installboot="install" target_blocksize="4096">
<bootloader name="grub2" console="serial" timeout="10"/>
<oemconfig>
<oem-unattended>true</oem-unattended>
</oemconfig>
</type>
</preferences>
<preferences profiles="PhysicalBSZ_512">
<type image="oem" filesystem="ext4" kernelcmdline="console=ttyS0" firmware="ofw" installiso="true" installboot="install">
<bootloader name="grub2" console="serial" timeout="10"/>
<oemconfig>
<oem-unattended>true</oem-unattended>
</oemconfig>
</type>
</preferences>
<users>
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
</users>
<repository type="rpm-md">
<source path="obsrepositories:/"/>
</repository>
<packages type="image">
<package name="patterns-base-minimal_base"/>
<package name="bind-utils"/>
<package name="systemd"/>
<package name="plymouth-theme-bgrt"/>
<package name="iputils"/>
<package name="vim"/>
<package name="grub2"/>
<package name="grub2-powerpc-ieee1275"/>
<package name="lvm2"/>
<package name="plymouth"/>
<package name="fontconfig"/>
<package name="fonts-config"/>
<package name="tar"/>
<package name="parted"/>
<package name="openssh"/>
<package name="iproute2"/>
<package name="less"/>
<package name="bash-completion"/>
<package name="dhcp-client"/>
<package name="which"/>
<package name="kernel-default"/>
<package name="timezone"/>
</packages>
<packages type="image" profiles="PhysicalBSZ_512,PhysicalBSZ_4096">
<package name="dracut-kiwi-oem-repart"/>
<package name="dracut-kiwi-oem-dump"/>
</packages>
<packages type="bootstrap">
<package name="udev"/>
<package name="filesystem"/>
<package name="glibc-locale"/>
<package name="cracklib-dict-full"/>
<package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/>
<package name="sles-release"/>
</packages>
</image>

View File

@ -1,42 +0,0 @@
#!/bin/bash
#================
# FILE : config.sh
#----------------
# PROJECT : OpenSuSE KIWI Image System
# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
# :
# AUTHOR : Marcus Schaefer <ms@suse.de>
# :
# BELONGS TO : Operating System images
# :
# DESCRIPTION : configuration script for SUSE based
# : operating systems
# :
# :
# STATUS : BETA
#----------------
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
#======================================
# Setup baseproduct link
#--------------------------------------
suseSetupProduct
#======================================
# Activate services
#--------------------------------------
suseInsertService sshd
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3

View File

@ -0,0 +1,2 @@
obs://Virtualization:Appliances:Staging/openSUSE_Tumbleweed
https://download.opensuse.org/ports/ppc/tumbleweed/repo/oss/

View File

@ -52,9 +52,9 @@
<package name="timezone"/>
</packages>
<packages type="bootstrap">
<package name="udev"/>
<package name="filesystem"/>
<package name="shadow"/>
<package name="glibc-locale"/>
<package name="filesystem"/>
<package name="cracklib-dict-full"/>
<package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/>

View File

@ -1,42 +1,7 @@
#!/bin/bash
#================
# FILE : config.sh
#----------------
# PROJECT : OpenSuSE KIWI Image System
# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
# :
# AUTHOR : Marcus Schaefer <ms@suse.de>
# :
# BELONGS TO : Operating System images
# :
# DESCRIPTION : configuration script for SUSE based
# : operating systems
# :
# :
# STATUS : BETA
#----------------
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
#======================================
# Setup baseproduct link
#--------------------------------------
suseSetupProduct
set -ex
#======================================
# Activate services
#--------------------------------------
suseInsertService sshd
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3
systemctl enable sshd

View File

@ -45,6 +45,7 @@
</repository>
<packages type="image">
<package name="patterns-base-minimal_base"/>
<package name="procps"/>
<package name="bind-utils"/>
<package name="systemd"/>
<package name="plymouth-theme-bgrt"/>
@ -70,9 +71,9 @@
<package name="dracut-kiwi-oem-dump"/>
</packages>
<packages type="bootstrap">
<package name="udev"/>
<package name="filesystem"/>
<package name="shadow"/>
<package name="glibc-locale"/>
<package name="filesystem"/>
<package name="cracklib-dict-full"/>
<package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/>

View File

@ -1,42 +1,7 @@
#!/bin/bash
#================
# FILE : config.sh
#----------------
# PROJECT : OpenSuSE KIWI Image System
# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
# :
# AUTHOR : Marcus Schaefer <ms@suse.de>
# :
# BELONGS TO : Operating System images
# :
# DESCRIPTION : configuration script for SUSE based
# : operating systems
# :
# :
# STATUS : BETA
#----------------
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
#======================================
# Setup baseproduct link
#--------------------------------------
suseSetupProduct
set -ex
#======================================
# Activate services
#--------------------------------------
suseInsertService sshd
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3
systemctl enable sshd

View File

@ -0,0 +1 @@
requires valid certificates and CRLs which needs to renew continuously

View File

@ -0,0 +1 @@
requires valid certificates and CRLs which needs to renew continuously

View File

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- OBS-Profiles: @BUILD_FLAVOR@ -->
<image schemaversion="7.5" name="kiwi-test-image-secure-execution">
<description type="system">
<author>Marcus Schäfer</author>
<contact>marcus.schaefer@suse.com</contact>
<specification>Example disk test build for IBM Secure Execution</specification>
</description>
<profiles>
<profile name="SUSE-Infra" description="IBM SEL image LinuxONE_III@SUSE"/>
<profile name="IBM-Cloud-Secure-Execution" description="IBM SEL image LinuxONE@IBM-Cloud-VPC-Region-eu-de(z16)/Region-eu-gb(z15)"/>
</profiles>
<preferences>
<version>16.0.0</version>
<packagemanager>zypper</packagemanager>
<bootloader-theme>openSUSE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
</preferences>
<preferences profiles="IBM-Cloud-Secure-Execution">
<type
image="oem"
luks="random"
luks_pbkdf="pbkdf2"
luks_version="luks2"
filesystem="xfs"
kernelcmdline="systemd.show_status=yes console=ttyS0,115200 console=tty0 net.ifnames=0 swiotlb=262144 rd.debug"
devicepersistency="by-uuid"
bootpartition="true"
bootfilesystem="ext3"
format="qcow2"
>
<luksformat>
<option name="--cipher" value="aes-xts-plain64"/>
<option name="--key-size" value="256"/>
</luksformat>
<oemconfig>
<oem-unattended>true</oem-unattended>
<oem-resize>true</oem-resize>
</oemconfig>
<bootloader name="zipl" timeout="10">
<!-- LinuxONE@IBM-Cloud-VPC-Region-eu-de(z16) -->
<securelinux hkd_sign_cert="/var/lib/se-certs/ibm-z-host-key-signing-gen2.crt" hkd_ca_cert="/var/lib/se-certs/DigiCertCA.crt">
<hkd_cert name="/var/lib/se-certs/HKD-3932-02967D8.crt"/>
<hkd_cert name="/var/lib/se-certs/HKD-3932-02967F8.crt"/>
<hkd_cert name="/var/lib/se-certs/HKD-3932-0296878.crt"/>
<hkd_revocation_list name="/var/lib/se-certs/ibm-z-host-key-gen2.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedRootG4.crl"/>
</securelinux>
<!-- LinuxONE@IBM-Cloud-VPC-Region-eu-gb(z15) -->
<securelinux hkd_sign_cert="/var/lib/se-certs/ibm-z-host-key-signing.crt" hkd_ca_cert="/var/lib/se-certs/DigiCertCA.crt">
<hkd_cert name="/var/lib/se-certs/HKD-8562-024B858.crt"/>
<hkd_cert name="/var/lib/se-certs/HKD-8562-024B868.crt"/>
<hkd_cert name="/var/lib/se-certs/HKD-8562-024B878.crt"/>
<hkd_revocation_list name="/var/lib/se-certs/ibm-z-host-key.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedRootG4.crl"/>
</securelinux>
</bootloader>
<size unit="G">2</size>
</type>
</preferences>
<preferences profiles="SUSE-Infra">
<type
image="oem"
luks="random"
luks_pbkdf="pbkdf2"
luks_version="luks2"
filesystem="xfs"
kernelcmdline="systemd.show_status=yes console=ttyS0,115200 console=tty0 net.ifnames=0 swiotlb=262144 rd.debug"
devicepersistency="by-uuid"
bootpartition="true"
bootfilesystem="ext3"
format="qcow2"
>
<luksformat>
<option name="--cipher" value="aes-xts-plain64"/>
<option name="--key-size" value="256"/>
</luksformat>
<oemconfig>
<oem-unattended>true</oem-unattended>
<oem-resize>true</oem-resize>
</oemconfig>
<bootloader name="zipl" timeout="10">
<securelinux hkd_sign_cert="/var/lib/se-certs/ibm-z-host-key-signing.crt" hkd_ca_cert="/var/lib/se-certs/DigiCertCA.crt">
<!-- LinuxONE_III@SUSE -->
<hkd_cert name="/var/lib/se-certs/HKD-8561-02688E8.crt.20241112"/>
<hkd_revocation_list name="/var/lib/se-certs/ibm-z-host-key.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedRootG4.crl"/>
</securelinux>
</bootloader>
<size unit="G">2</size>
</type>
</preferences>
<users>
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
</users>
<repository type="rpm-md">
<source path="obsrepositories:/"/>
</repository>
<packages type="image" profiles="IBM-Cloud-Secure-Execution">
<package name="ibm-se-certificates"/>
<package name="ibm-se-revocation-lists"/>
<package name="cloud-se-host-certificates"/>
<package name="cloud-init"/>
<package name="cloud-init-config-suse"/>
<package name="systemd-networkd"/>
<package name="systemd-resolved"/>
</packages>
<packages type="image" profiles="SUSE-Infra">
<package name="ibm-se-certificates"/>
<package name="ibm-se-revocation-lists"/>
<package name="suse-se-host-certificates"/>
<package name="systemd-networkd"/>
<package name="systemd-resolved"/>
</packages>
<packages type="image">
<package name="patterns-base-bootloader"/>
<package name="kernel-default"/>
<package name="xfsprogs"/>
<package name="sudo"/>
<package name="blog"/>
<package name="s390-tools"/>
<package name="dracut-kiwi-oem-repart"/>
<package name="shadow"/>
<package name="snapper"/>
<package name="snapper-zypp-plugin"/>
<package name="firewalld"/>
<package name="squashfs"/>
<package name="openssh-server"/>
<package name="openssh"/>
<package name="iproute2"/>
<package name="less"/>
<package name="curl"/>
<package name="cryptsetup"/>
<package name="procps"/>
<package name="zlib-devel"/>
<package name="suseconnect-ng"/>
</packages>
<packages type="bootstrap">
<package name="gawk"/>
<package name="grep"/>
<package name="gzip"/>
<package name="udev"/>
<package name="xz"/>
<package name="shadow"/>
<package name="filesystem"/>
<package name="coreutils"/>
<package name="openssl"/>
<package name="glibc-locale-base"/>
<package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/>
<package name="diffutils"/>
</packages>
</image>

View File

@ -0,0 +1,37 @@
#!/bin/bash
set -euxo pipefail
# shellcheck disable=SC1091
declare kiwi_profiles=${kiwi_profiles}
#======================================
# Setup Core Services
#--------------------------------------
systemctl disable network
systemctl enable sshd.service
#======================================
# Setup Cloud Services
#--------------------------------------
for profile in ${kiwi_profiles//,/ }; do
if [ "${profile}" = "IBM-Cloud-Secure-Execution" ]; then
for service in \
cloud-init-local.service \
cloud-init.service \
cloud-config.service \
cloud-final.service \
systemd-networkd \
systemd-resolved
do
systemctl enable "${service}"
done
fi
if [ "${profile}" = "SUSE-Infra" ]; then
for service in \
systemd-networkd \
systemd-resolved
do
systemctl enable "${service}"
done
fi
done

View File

@ -0,0 +1 @@
add_dracutmodules+=" kiwi-repart "

View File

@ -0,0 +1,8 @@
[Match]
Name=eth0
[Network]
DHCP=yes
[DHCP]
ClientIdentifier=mac

View File

@ -0,0 +1,21 @@
#!/bin/bash
qemu-system-s390x \
-cpu host \
-machine accel=kvm,usb=off \
-netdev user,id=user0 \
-device virtio-net-ccw,netdev=user0 \
-object s390-pv-guest,id=pv0 \
-machine confidential-guest-support=pv0 \
-enable-kvm \
-nodefaults \
-name suse-cc \
-nographic \
-drive id=disk0,file="$1",format=qcow2,if=none,cache=writeback \
-device virtio-blk,id=data0,drive=disk0,physical_block_size=512,logical_block_size=512 \
-device virtio-serial-ccw \
-device sclpconsole,chardev=console \
-chardev stdio,id=console \
-smp 4 \
-m 4096 \
-mem-prealloc

View File

@ -0,0 +1,2 @@
obs://Virtualization:Appliances:Staging/Fedora_Rawhide
https://mirrors.fedoraproject.org/metalink?repo=rawhide&arch=s390x,,,,,,,,,,metalink

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- The line below is required in order to use the multibuild OBS features -->
<!-- OBS-Profiles: @BUILD_FLAVOR@ -->
<image schemaversion="7.5" name="kiwi-test-image-disk">
<description type="system">
<author>Marcus Schaefer</author>
<contact>marcus.schaefer@suse.com</contact>
<specification>Virtual and Physical disk image test</specification>
</description>
<profiles>
<profile name="Virtual" description="Image for use with kvm"/>
<profile name="Physical" description="Image for physical storage disk CDL mode"/>
</profiles>
<preferences>
<version>1.42.1</version>
<packagemanager>dnf5</packagemanager>
<locale>en_US</locale>
<keytable>us</keytable>
<timezone>Europe/Berlin</timezone>
<rpm-excludedocs>true</rpm-excludedocs>
<rpm-check-signatures>false</rpm-check-signatures>
</preferences>
<preferences profiles="Virtual">
<type image="oem" filesystem="ext4" bootpartition="false" kernelcmdline="console=ttyS0" format="qcow2">
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
<bootloader name="zipl" timeout="10"/>
</type>
</preferences>
<preferences profiles="Physical">
<type image="oem" filesystem="ext4" kernelcmdline="console=ttyS0 dasd_mod.dasd=ipldev" bootpartition="false" target_blocksize="4096">
<bootloader name="zipl" targettype="CDL" timeout="10"/>
<oemconfig>
<oem-swap>true</oem-swap>
<oem-swapsize>512</oem-swapsize>
</oemconfig>
</type>
</preferences>
<users>
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
</users>
<repository type="rpm-md" alias="kiwi-next-generation" priority="1">
<source path="obs://Virtualization:Appliances:Staging/Fedora_Rawhide"/>
</repository>
<repository type="rpm-md" alias="Fedora_Rawhide">
<source path="obs://Fedora:Rawhide/standard"/>
</repository>
<packages type="image">
<package name="s390utils"/>
<package name="mariadb-connector-c-config"/>
<package name="kernel"/>
<package name="selinux-policy-targeted"/>
<package name="dhclient"/>
<package name="glibc-all-langpacks"/>
<package name="vim"/>
<package name="tzdata"/>
<package name="NetworkManager"/>
<package name="dracut-kiwi-oem-repart"/>
<package name="btrfs-progs"/>
<package name="audit"/>
</packages>
<packages type="bootstrap">
<package name="filesystem"/>
<package name="basesystem"/>
<package name="fedora-release"/>
</packages>
</image>

View File

@ -0,0 +1,8 @@
#!/bin/bash
set -ex
#======================================
# Activate services
#--------------------------------------
systemctl enable dbus-broker
systemctl enable NetworkManager

View File

@ -1,2 +0,0 @@
mapper:
- part_mapper: kpartx

View File

@ -1,96 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- OBS-Profiles: @BUILD_FLAVOR@ -->
<image schemaversion="7.5" name="kiwi-test-image-disk">
<description type="system">
<author>Marcus Schäfer</author>
<contact>ms@suse.com</contact>
<specification>Virtual and Physical disk image test</specification>
</description>
<profiles>
<profile name="Virtual" description="Image for use with kvm"/>
<profile name="Physical_DASD" description="Image for physical storage disk CDL mode"/>
<profile name="Physical_FBA" description="Image for physical storage disk FBA mode"/>
</profiles>
<preferences>
<version>1.15.1</version>
<packagemanager>zypper</packagemanager>
<locale>en_US</locale>
<keytable>us</keytable>
<timezone>Europe/Berlin</timezone>
<rpm-excludedocs>true</rpm-excludedocs>
<rpm-check-signatures>false</rpm-check-signatures>
</preferences>
<preferences profiles="Virtual">
<type image="oem" filesystem="xfs" bootpartition="false" kernelcmdline="console=ttyS0" format="qcow2">
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
<bootloader name="grub2_s390x_emu" console="serial" timeout="10"/>
</type>
</preferences>
<preferences profiles="Physical_DASD">
<type image="oem" filesystem="xfs" kernelcmdline="console=ttyS0 dasd_mod.dasd=ipldev" bootpartition="true" bootfilesystem="ext3" target_blocksize="4096">
<bootloader name="grub2_s390x_emu" console="serial" targettype="CDL" timeout="10"/>
<oemconfig>
<oem-swap>true</oem-swap>
<oem-swapsize>512</oem-swapsize>
</oemconfig>
</type>
</preferences>
<preferences profiles="Physical_FBA">
<type image="oem" filesystem="xfs" kernelcmdline="console=ttyS0" bootpartition="true" bootfilesystem="ext3">
<bootloader name="grub2_s390x_emu" console="serial" targettype="FBA" timeout="10"/>
<oemconfig>
<oem-swap>true</oem-swap>
<oem-swapsize>512</oem-swapsize>
</oemconfig>
</type>
</preferences>
<users>
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
</users>
<repository type="rpm-md">
<source path="obsrepositories:/"/>
</repository>
<packages type="image">
<package name="patterns-base-minimal_base"/>
<package name="kernel-default"/>
<package name="iputils"/>
<package name="iproute2"/>
<package name="vim"/>
<package name="s390-tools"/>
<package name="grub2-s390x-emu"/>
<package name="grub2"/>
<package name="lvm2"/>
<package name="tar"/>
<package name="parted"/>
<package name="systemd"/>
<package name="dracut"/>
<package name="wicked"/>
<package name="openssh"/>
<package name="rsync"/>
<package name="psmisc"/>
<package name="sudo"/>
<package name="dhcp-client"/>
<package name="which"/>
<package name="btrfsprogs"/>
<package name="kexec-tools"/>
<package name="less"/>
<package name="patch"/>
<package name="util-linux"/>
<package name="timezone"/>
<package name="dracut-kiwi-oem-repart"/>
</packages>
<packages type="bootstrap">
<package name="udev"/>
<package name="blog"/>
<package name="filesystem"/>
<package name="glibc-locale"/>
<package name="cracklib-dict-full"/>
<package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/>
<package name="sles-release"/>
</packages>
</image>

View File

@ -1,42 +0,0 @@
#!/bin/bash
#================
# FILE : config.sh
#----------------
# PROJECT : OpenSuSE KIWI Image System
# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
# :
# AUTHOR : Marcus Schaefer <ms@suse.de>
# :
# BELONGS TO : Operating System images
# :
# DESCRIPTION : configuration script for SUSE based
# : operating systems
# :
# :
# STATUS : BETA
#----------------
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
#======================================
# Setup baseproduct link
#--------------------------------------
suseSetupProduct
#======================================
# Activate services
#--------------------------------------
suseInsertService sshd
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3

View File

@ -0,0 +1,2 @@
obs://Virtualization:Appliances:Staging/openSUSE_Tumbleweed
https://download.opensuse.org/ports/zsystems/tumbleweed/repo/oss/

View File

@ -0,0 +1 @@
requires valid certificates and CRLs which needs to renew continuously

View File

@ -0,0 +1 @@
requires valid certificates and CRLs which needs to renew continuously

View File

@ -0,0 +1,228 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- OBS-Profiles: @BUILD_FLAVOR@ -->
<image schemaversion="7.5" name="kiwi-test-image-MicroOS">
<description type="system">
<author>Marcus Schäfer</author>
<contact>marcus.schaefer@suse.com</contact>
<specification>MicroOS disk test build for IBM Secure Execution</specification>
</description>
<profiles>
<profile name="SUSE-Infra" description="MicroOS IBM SEL image LinuxONE_III@SUSE"/>
<profile name="IBM-Cloud-Secure-Execution" description="MicroOS IBM SEL image LinuxONE@IBM-Cloud-VPC-Region-eu-de(z16)/Region-eu-gb(z15)"/>
<profile name="IBM-Cloud-Standard" description="MicroOS IBM Cloud image"/>
</profiles>
<preferences>
<version>16.0.0</version>
<packagemanager>zypper</packagemanager>
<bootloader-theme>openSUSE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
</preferences>
<preferences profiles="IBM-Cloud-Standard">
<type
image="oem"
filesystem="btrfs"
kernelcmdline="systemd.show_status=yes console=ttyS0,115200 console=tty0 net.ifnames=0 \$ignition_firstboot ignition.platform.id=qemu rd.debug"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="false"
btrfs_root_is_subvolume="true"
btrfs_quota_groups="true"
bootpartition="true"
bootfilesystem="ext3"
format="qcow2"
>
<oemconfig>
<oem-unattended>true</oem-unattended>
<oem-resize>true</oem-resize>
</oemconfig>
<bootloader name="zipl" timeout="10" targettype="GPT"/>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
<size unit="G">2</size>
</type>
</preferences>
<preferences profiles="IBM-Cloud-Secure-Execution">
<type
image="oem"
luks="random"
luks_pbkdf="pbkdf2"
luks_version="luks2"
filesystem="btrfs"
kernelcmdline="systemd.show_status=yes console=ttyS0,115200 console=tty0 net.ifnames=0 \$ignition_firstboot ignition.platform.id=qemu swiotlb=262144 rd.debug"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="false"
btrfs_root_is_subvolume="true"
btrfs_quota_groups="true"
bootpartition="true"
bootfilesystem="ext3"
format="qcow2"
>
<luksformat>
<option name="--cipher" value="aes-xts-plain64"/>
<option name="--key-size" value="256"/>
</luksformat>
<oemconfig>
<oem-unattended>true</oem-unattended>
<oem-resize>true</oem-resize>
</oemconfig>
<bootloader name="zipl" timeout="10">
<!-- LinuxONE@IBM-Cloud-VPC-Region-eu-de(z16) -->
<securelinux hkd_sign_cert="/var/lib/se-certs/ibm-z-host-key-signing-gen2.crt" hkd_ca_cert="/var/lib/se-certs/DigiCertCA.crt">
<hkd_cert name="/var/lib/se-certs/HKD-3932-02967D8.crt"/>
<hkd_cert name="/var/lib/se-certs/HKD-3932-02967F8.crt"/>
<hkd_cert name="/var/lib/se-certs/HKD-3932-0296878.crt"/>
<hkd_revocation_list name="/var/lib/se-certs/ibm-z-host-key-gen2.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedRootG4.crl"/>
</securelinux>
<!-- LinuxONE@IBM-Cloud-VPC-Region-eu-gb(z15) -->
<securelinux hkd_sign_cert="/var/lib/se-certs/ibm-z-host-key-signing.crt" hkd_ca_cert="/var/lib/se-certs/DigiCertCA.crt">
<hkd_cert name="/var/lib/se-certs/HKD-8562-024B858.crt"/>
<hkd_cert name="/var/lib/se-certs/HKD-8562-024B868.crt"/>
<hkd_cert name="/var/lib/se-certs/HKD-8562-024B878.crt"/>
<hkd_revocation_list name="/var/lib/se-certs/ibm-z-host-key.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedRootG4.crl"/>
</securelinux>
</bootloader>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
<size unit="G">2</size>
</type>
</preferences>
<preferences profiles="SUSE-Infra">
<type
image="oem"
luks="random"
luks_pbkdf="pbkdf2"
luks_version="luks2"
filesystem="btrfs"
kernelcmdline="systemd.show_status=yes console=ttyS0,115200 console=tty0 net.ifnames=0 \$ignition_firstboot ignition.platform.id=qemu swiotlb=262144 rd.debug"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="false"
btrfs_root_is_subvolume="true"
btrfs_quota_groups="true"
bootpartition="true"
bootfilesystem="ext3"
format="qcow2"
>
<luksformat>
<option name="--cipher" value="aes-xts-plain64"/>
<option name="--key-size" value="256"/>
</luksformat>
<oemconfig>
<oem-unattended>true</oem-unattended>
<oem-resize>true</oem-resize>
</oemconfig>
<bootloader name="zipl" timeout="10">
<securelinux hkd_sign_cert="/var/lib/se-certs/ibm-z-host-key-signing.crt" hkd_ca_cert="/var/lib/se-certs/DigiCertCA.crt">
<!-- LinuxONE_III@SUSE -->
<hkd_cert name="/var/lib/se-certs/HKD-8561-02688E8.crt.20241112"/>
<hkd_revocation_list name="/var/lib/se-certs/ibm-z-host-key.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl"/>
<hkd_revocation_list name="/var/lib/se-certs/DigiCertTrustedRootG4.crl"/>
</securelinux>
</bootloader>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
<size unit="G">2</size>
</type>
</preferences>
<users>
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
</users>
<repository type="rpm-md">
<source path="obsrepositories:/"/>
</repository>
<packages type="image" profiles="IBM-Cloud-Secure-Execution">
<package name="ibm-se-certificates"/>
<package name="ibm-se-revocation-lists"/>
<package name="cloud-se-host-certificates"/>
<package name="cloud-init"/>
<package name="cloud-init-config-suse"/>
<package name="systemd-network"/>
<package name="systemd-resolved"/>
</packages>
<packages type="image" profiles="IBM-Cloud-Standard">
<package name="cloud-init"/>
<package name="cloud-init-config-suse"/>
<package name="systemd-network"/>
<package name="systemd-resolved"/>
</packages>
<packages type="image" profiles="SUSE-Infra">
<package name="ibm-se-certificates"/>
<package name="ibm-se-revocation-lists"/>
<package name="suse-se-host-certificates"/>
<package name="systemd-network"/>
<package name="systemd-resolved"/>
</packages>
<packages type="image">
<package name="patterns-base-bootloader"/>
<package name="kernel-default"/>
<package name="ignition-dracut"/>
<package name="combustion"/>
<package name="btrfsmaintenance"/>
<package name="btrfsprogs"/>
<package name="microos-tools"/>
<package name="sudo"/>
<package name="s390-tools"/>
<package name="dracut-kiwi-oem-repart"/>
<package name="shadow"/>
<package name="snapper"/>
<package name="snapper-zypp-plugin"/>
<package name="firewalld"/>
<package name="microos-tools"/>
<package name="health-checker-plugins-MicroOS"/>
<package name="squashfs"/>
<package name="openSUSE-repos-Tumbleweed"/>
<package name="openssh-server"/>
<package name="openssh"/>
<package name="iproute2"/>
<package name="less"/>
<package name="curl"/>
<package name="cryptsetup"/>
<package name="procps"/>
<package name="zlib-devel"/>
</packages>
<packages type="bootstrap">
<package name="gawk"/>
<package name="grep"/>
<package name="gzip"/>
<package name="udev"/>
<package name="xz"/>
<package name="shadow"/>
<package name="filesystem"/>
<package name="coreutils"/>
<package name="openssl"/>
<package name="glibc-locale-base"/>
<package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/>
<package name="MicroOS-release-dvd"/>
<package name="systemd-presets-branding-MicroOS"/>
<package name="diffutils"/>
</packages>
</image>

View File

@ -0,0 +1,85 @@
#!/bin/bash
set -euxo pipefail
# shellcheck disable=SC1091
#======================================
# Functions
#--------------------------------------
test -f /.kconfig && . /.kconfig
declare kiwi_profiles=${kiwi_profiles}
#======================================
# Setup Core Services
#--------------------------------------
systemctl enable sshd.service
#======================================
# Setup Cloud Services
#--------------------------------------
for profile in ${kiwi_profiles//,/ }; do
if [ "${profile}" = "IBM-Cloud-Standard" ] || [ "${profile}" = "IBM-Cloud-Secure-Execution" ]; then
for service in \
cloud-init-local.service \
cloud-init.service \
cloud-config.service \
cloud-final.service \
systemd-networkd \
systemd-resolved
do
systemctl enable "${service}"
done
fi
if [ "${profile}" = "SUSE-Infra" ]; then
for service in \
systemd-networkd \
systemd-resolved
do
systemctl enable "${service}"
done
fi
done
#=====================================
# Configure snapper
#-------------------------------------
if [ "${kiwi_btrfs_root_is_snapshot-false}" = 'true' ]; then
echo "creating initial snapper config ..."
cp /usr/share/snapper/config-templates/default /etc/snapper/configs/root
baseUpdateSysConfig /etc/sysconfig/snapper SNAPPER_CONFIGS root
# Adjust parameters
sed -i'' 's/^TIMELINE_CREATE=.*$/TIMELINE_CREATE="no"/g' \
/etc/snapper/configs/root
sed -i'' 's/^NUMBER_LIMIT=.*$/NUMBER_LIMIT="2-10"/g' \
/etc/snapper/configs/root
sed -i'' 's/^NUMBER_LIMIT_IMPORTANT=.*$/NUMBER_LIMIT_IMPORTANT="4-10"/g' \
/etc/snapper/configs/root
fi
for profile in ${kiwi_profiles//,/ }; do
if [ "${profile}" = "IBM-Cloud-Standard" ]; then
# For image tests with an extra boot partition the
# kernel must not be a symlink to another area of
# the filesystem. Latest changes on SUSE changed the
# layout of the kernel which breaks every image with
# an extra boot partition
#
# All of the following is more than a hack and I
# don't like it all
#
# Complains and discussions about this please with
# the SUSE kernel team as we in kiwi can just live
# with the consequences of this change
#
pushd /
for file in /boot/* /boot/.*; do
if [ -L "${file}" ];then
link_target=$(readlink "${file}")
if [[ "${link_target}" =~ usr/lib/modules ]];then
mv "${link_target}" "${file}"
fi
fi
done
fi
done

View File

@ -0,0 +1,4 @@
#!/bin/bash
set -euxo pipefail
/usr/libexec/setup-etc-subvol

View File

@ -0,0 +1 @@
add_dracutmodules+=" kiwi-repart "

View File

@ -0,0 +1,8 @@
[Match]
Name=eth0
[Network]
DHCP=yes
[DHCP]
ClientIdentifier=mac

View File

@ -0,0 +1,21 @@
#!/bin/bash
qemu-system-s390x \
-cpu host \
-machine accel=kvm,usb=off \
-netdev user,id=user0 \
-device virtio-net-ccw,netdev=user0 \
-object s390-pv-guest,id=pv0 \
-machine confidential-guest-support=pv0 \
-enable-kvm \
-nodefaults \
-name suse-cc \
-nographic \
-drive id=disk0,file="$1",format=qcow2,if=none,cache=writeback \
-device virtio-blk,id=data0,drive=disk0,physical_block_size=512,logical_block_size=512 \
-device virtio-serial-ccw \
-device sclpconsole,chardev=console \
-chardev stdio,id=console \
-smp 4 \
-m 4096 \
-mem-prealloc

View File

@ -9,7 +9,8 @@
<specification>Virtual and Physical disk image test</specification>
</description>
<profiles>
<profile name="Virtual" description="Image for use with kvm"/>
<profile name="Virtual" description="Image for use with kvm DOS disk"/>
<profile name="Virtual_GPT" description="Image for use with kvm GPT disk"/>
<profile name="Physical" description="Image for physical storage disk CDL mode"/>
</profiles>
<preferences>
@ -29,6 +30,14 @@
<bootloader name="grub2_s390x_emu" console="serial" timeout="10"/>
</type>
</preferences>
<preferences profiles="Virtual_GPT">
<type image="oem" filesystem="xfs" bootpartition="false" kernelcmdline="console=ttyS0" format="qcow2">
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
<bootloader name="grub2_s390x_emu" console="serial" timeout="10" targettype="GPT"/>
</type>
</preferences>
<preferences profiles="Physical">
<type image="oem" filesystem="xfs" kernelcmdline="console=ttyS0 dasd_mod.dasd=ipldev" bootpartition="true" bootfilesystem="ext3" target_blocksize="4096">
<bootloader name="grub2_s390x_emu" console="serial" targettype="CDL" timeout="10"/>
@ -76,7 +85,12 @@
<package name="dracut-kiwi-oem-repart"/>
</packages>
<packages type="bootstrap">
<package name="gawk"/>
<package name="grep"/>
<package name="gzip"/>
<package name="udev"/>
<package name="xz"/>
<package name="shadow"/>
<package name="filesystem"/>
<package name="glibc-locale"/>
<package name="cracklib-dict-full"/>

View File

@ -1,45 +1,10 @@
#!/bin/bash
#================
# FILE : config.sh
#----------------
# PROJECT : OpenSuSE KIWI Image System
# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
# :
# AUTHOR : Marcus Schaefer <ms@suse.de>
# :
# BELONGS TO : Operating System images
# :
# DESCRIPTION : configuration script for SUSE based
# : operating systems
# :
# :
# STATUS : BETA
#----------------
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
#======================================
# Setup baseproduct link
#--------------------------------------
suseSetupProduct
set -ex
#======================================
# Activate services
#--------------------------------------
suseInsertService sshd
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3
systemctl enable sshd
# For image tests with an extra boot partition the
# kernel must not be a symlink to another area of
@ -57,10 +22,10 @@ baseSetRunlevel 3
pushd /
for file in /boot/* /boot/.*; do
if [ -L ${file} ];then
link_target=$(readlink ${file})
if [ -L "${file}" ];then
link_target=$(readlink "${file}")
if [[ ${link_target} =~ usr/lib/modules ]];then
mv ${link_target} ${file}
mv "${link_target}" "${file}"
fi
fi
done

View File

@ -0,0 +1,12 @@
#!/bin/bash
set -ex
#=======================================
# Create kernel links
#---------------------------------------
pushd boot
rm -f image initrd
ln -s image-* image
ln -s initrd-* initrd
popd

View File

@ -0,0 +1,2 @@
https://dl-cdn.alpinelinux.org/alpine/latest-stable/main/,apk
https://dl-cdn.alpinelinux.org/alpine/latest-stable/community/,apk

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<image schemaversion="7.5" name="kiwi-test-image-disk">
<description type="system">
<author>Marcus Schaefer</author>
<contact>marcus.schaefer@suse.com</contact>
<specification>Alpine Appliance</specification>
</description>
<preferences>
<version>3.21.0</version>
<packagemanager>apk</packagemanager>
</preferences>
<preferences>
<type image="oem" filesystem="ext4" kernelcmdline="console=ttyS0" firmware="efi" eficsm="false" format="qcow2">
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
<bootloader name="grub2" console="serial" timeout="10"/>
</type>
</preferences>
<users>
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
</users>
<!-- first repository is also used for bootstrap -->
<repository type="apk">
<source path="https://dl-cdn.alpinelinux.org/alpine/latest-stable/main/"/>
</repository>
<repository type="apk">
<source path="https://dl-cdn.alpinelinux.org/alpine/latest-stable/community/"/>
</repository>
<packages type="image">
<package name="shadow"/>
<package name="dracut"/>
<package name="fts"/>
<package name="linux-edge"/>
<package name="linux-firmware"/>
<package name="grub"/>
<package name="grub-efi"/>
</packages>
<packages type="bootstrap">
<package name="alpine-base"/>
</packages>
</image>

View File

@ -0,0 +1,4 @@
http://download.opensuse.org/repositories/Virtualization:/Appliances:/Staging/Arch_Linux/x86_64/,,,,,,,Virtualization_Appliances_Staging_Arch_Linux,,false
http://download.opensuse.org/repositories/Virtualization:/Appliances:/Images:/Testing_x86:/archlinux/standard/x86_64/,,,,,,,Virtualization_Appliances_Images_Testing_x86_archlinux,,false
https://mirror.rackspace.com/archlinux/core/os/x86_64/,,,,,,,core,,false
https://mirror.rackspace.com/archlinux/extra/os/x86_64/,,,,,,,extra,,false

View File

@ -10,17 +10,10 @@
<specification>Arch Appliance</specification>
</description>
<profiles>
<profile name="Live" description="Live image of Arch Linux">
<requires profile="Bootloader"/>
</profile>
<profile name="Virtual" description="Virtual image of Arch Linux">
<requires profile="Bootloader"/>
</profile>
<profile name="Disk" description="OEM image of Arch Linux">
<requires profile="Bootloader"/>
</profile>
<profile name="Live" description="Live image of Arch Linux"/>
<profile name="Virtual" description="Virtual image of Arch Linux"/>
<profile name="Disk" description="OEM image of Arch Linux"/>
<profile name="KIS" description="KIS image of Arch Linux"/>
<profile name="Bootloader" description="bootloader related software"/>
</profiles>
<preferences>
<version>1.0.0</version>
@ -31,12 +24,12 @@
<rpm-check-signatures>false</rpm-check-signatures>
</preferences>
<preferences profiles="Live">
<type image="iso" firmware="efi" flags="overlay" hybridpersistent_filesystem="ext4" hybridpersistent="true" kernelcmdline="console=ttyS0">
<type image="iso" firmware="efi" flags="dmsquash" kernelcmdline="console=ttyS0">
<bootloader name="grub2" console="serial" grub_template="iso_boot.template"/>
</type>
</preferences>
<preferences profiles="Virtual">
<type image="oem" primary="true" filesystem="ext4" firmware="efi" kernelcmdline="console=ttyS0" editbootinstall="editbootinstall_arch.sh">
<type image="oem" primary="true" filesystem="ext4" firmware="efi" kernelcmdline="console=ttyS0" editbootinstall="editbootinstall_arch.sh" format="qcow2">
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
@ -49,10 +42,11 @@
because of that the editbootinstall script and iso_boot.template
is used to hot patch grub.cfg file.
-->
<type image="oem" filesystem="ext4" installiso="true" installboot="install" kernelcmdline="console=ttyS0" editbootinstall="editbootinstall_arch.sh" firmware="efi">
<type image="oem" filesystem="ext4" kernelcmdline="console=ttyS0" editbootinstall="editbootinstall_arch.sh" firmware="efi">
<bootloader name="grub2" console="serial" timeout="10" grub_template="iso_boot.template"/>
<oemconfig>
<oem-unattended>true</oem-unattended>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
@ -90,6 +84,7 @@
<package name="linux-firmware"/>
<package name="netctl"/>
<package name="dracut-hooks"/>
<package name="cpio"/>
<!--
dracut-hooks provide some packman hooks
to ensure dracut recreates the initrd on kernel
@ -99,20 +94,11 @@
updates.
-->
</packages>
<packages type="image" profiles="Bootloader">
<packages type="image" profiles="Live,Virtual,Disk">
<package name="efibootmgr"/>
<package name="dosfstools"/>
<package name="grub"/>
</packages>
<packages type="image" profiles="Live">
<package name="syslinux"/>
<package name="dracut-kiwi-live"/>
</packages>
<packages type="image" profiles="Disk">
<package name="syslinux"/>
<package name="dracut-kiwi-oem-repart"/>
<package name="dracut-kiwi-oem-dump"/>
</packages>
<packages type="bootstrap">
<package name="filesystem"/>
<package name="pacman-mirrorlist"/>

View File

@ -1,19 +1,5 @@
#!/bin/bash
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3
set -ex
#======================================
# Enable lan0 interface
@ -23,7 +9,7 @@ netctl enable ethernet-dhcp
#======================================
# Enable dns resolution
#--------------------------------------
baseInsertService systemd-resolved
systemctl enable systemd-resolved
#======================================
# Enable first mirror in mirrorlist

View File

@ -34,8 +34,8 @@ fi
if [ -f ($$root)/boot/${boot_directory_name}/themes/${theme}/theme.txt ];then
set theme=($$root)/boot/${boot_directory_name}/themes/${theme}/theme.txt
fi
terminal_input ${terminal_setup}
terminal_output ${terminal_setup}
terminal_input ${terminal_input}
terminal_output ${terminal_output}
menuentry "${title}" --class os --unrestricted {
set gfxpayload=keep

View File

@ -0,0 +1,6 @@
obs://Virtualization:Appliances:Staging/CentOS_9
https://mirror.stream.centos.org/SIGs/9-stream/extras/x86_64/extras-common/
https://mirror.stream.centos.org/9-stream/CRB/x86_64/os/
https://mirror.stream.centos.org/9-stream/AppStream/x86_64/os/
https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/
obs://Virtualization:Appliances:Builder/CentOS_9

View File

@ -3,20 +3,20 @@
<!-- The line below is required in order to use the multibuild OBS features -->
<!-- OBS-Profiles: @BUILD_FLAVOR@ -->
<image schemaversion="7.5" name="kiwi-test-image-live-disk-v8">
<image schemaversion="7.5" name="kiwi-test-image-live-disk-v10">
<description type="system">
<author>Marcus Schaefer</author>
<contact>ms@suse.de</contact>
<specification>CentOS Enterprise 8 Appliance</specification>
<contact>marcus.schaefer@gmail.com</contact>
<specification>CentOS Stream 10 Appliance</specification>
</description>
<profiles>
<profile name="Live" description="Live image of CentOS 8"/>
<profile name="Virtual" description="Virtual image of CentOS 8"/>
<profile name="Disk" description="OEM image of CentOS 8"/>
<profile name="Live" description="Live image of CentOS 10"/>
<profile name="Virtual" description="Virtual image of CentOS 10"/>
<profile name="Disk" description="OEM image of CentOS 10"/>
</profiles>
<preferences>
<version>1.3.0</version>
<packagemanager>dnf</packagemanager>
<packagemanager>dnf4</packagemanager>
<bootsplash-theme>charge</bootsplash-theme>
<locale>en_US</locale>
<keytable>us</keytable>
@ -51,69 +51,19 @@
<users>
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
</users>
<repository type="rpm-md" alias="kiwi-next-generation" priority="1">
<source path="obs://Virtualization:Appliances:Staging/CentOS_8"/>
</repository>
<repository type="rpm-md">
<source path="obs://Fedora:EPEL:8/next"/>
</repository>
<repository type="rpm-md">
<source path="obs://Fedora:EPEL:8/standard"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8:Stream/powertools"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8:Stream/devel"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8:Stream/extras"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8:Stream/standard"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8:Stream/baseos"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8:Stream/appstream"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8/update"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8/standard"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8/baseos"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8/appstream"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8/powertools"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8/devel"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-8/extras"/>
<repository type="rpm-md" priority="1">
<source path='obsrepositories:/'/>
</repository>
<packages type="image">
<package name="syslinux"/>
<package name="gdisk"/>
<package name="grub2"/>
<package name="kernel"/>
<package name="plymouth-theme-charge"/>
<package name="audit"/>
<package name="dhclient"/>
<package name="e2fsprogs"/>
<package name="firewalld"/>
<package name="hostname"/>
<package name="initscripts"/>
<package name="iprutils"/>
<package name="irqbalance"/>
<package name="kbd"/>
<package name="kexec-tools"/>
<package name="openssh-clients"/>
<package name="openssh-server"/>
@ -125,8 +75,8 @@
<package name="selinux-policy-targeted"/>
<package name="xfsprogs"/>
<package name="NetworkManager"/>
<package name="glibc-all-langpacks"/>
<package name="iputils"/>
<package name="fipscheck"/>
</packages>
<packages type="image" profiles="Live">
<package name="dracut-kiwi-live"/>
@ -142,5 +92,6 @@
<package name="grub2-efi-x64" arch="x86_64"/>
<package name="shim-x64" arch="x86_64"/>
<package name="libdb-utils"/>
<package name="dnf"/>
</packages>
</image>

View File

@ -1,18 +0,0 @@
#!/bin/bash
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3
exit 0

View File

@ -1,16 +0,0 @@
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0

View File

@ -1,3 +0,0 @@
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain

View File

@ -1,3 +0,0 @@
DEVICE=lan0
BOOTPROTO=dhcp
ONBOOT=yes

View File

@ -1 +0,0 @@
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="?*", NAME="lan0"

View File

@ -16,7 +16,7 @@
</profiles>
<preferences>
<version>1.3.0</version>
<packagemanager>dnf</packagemanager>
<packagemanager>dnf4</packagemanager>
<bootsplash-theme>charge</bootsplash-theme>
<locale>en_US</locale>
<keytable>us</keytable>
@ -51,26 +51,10 @@
<users>
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
</users>
<repository type="rpm-md" alias="kiwi-next-generation" priority="1">
<source path="obs://Virtualization:Appliances:Staging/CentOS_9"/>
</repository>
<repository type="rpm-md">
<source path="obs://Fedora:EPEL:9/next"/>
</repository>
<repository type="rpm-md">
<source path="obs://Fedora:EPEL:9/standard"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-9:Stream/crb"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-9:Stream/appstream"/>
</repository>
<repository type="rpm-md">
<source path="obs://CentOS:CentOS-9:Stream/baseos"/>
<repository type="rpm-md" priority="1">
<source path='obsrepositories:/'/>
</repository>
<packages type="image">
<package name="syslinux"/>
<package name="gdisk"/>
<package name="grub2"/>
<package name="kernel"/>
@ -112,5 +96,6 @@
<package name="grub2-efi-x64" arch="x86_64"/>
<package name="shim-x64" arch="x86_64"/>
<package name="libdb-utils"/>
<package name="dnf"/>
</packages>
</image>

View File

@ -1,18 +0,0 @@
#!/bin/bash
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3
exit 0

View File

@ -0,0 +1,5 @@
obs://Virtualization:Appliances:Staging/Debian_12_update,apt-deb,kiwi,,,,,,,false
obs://Virtualization:Appliances:Staging/Debian_12_x86_64,apt-deb,kiwi,,,,,,,false
https://ftp.halifax.rwth-aachen.de/debian,apt-deb,bookworm_1,,,,,main,bookworm,false
https://ftp.halifax.rwth-aachen.de/debian,apt-deb,bookworm_2,,,,,contrib,bookworm,false
https://ftp.halifax.rwth-aachen.de/debian,apt-deb,bookworm_3,,,,,non-free,bookworm,false

View File

@ -7,15 +7,15 @@
<description type="system">
<author>Marcus Schäfer</author>
<contact>ms@suse.de</contact>
<specification>Debian Buster Appliance</specification>
<specification>Debian Bookworm Appliance</specification>
</description>
<profiles>
<profile name="Live" description="Live image of Debian Buster"/>
<profile name="Virtual" description="Virtual image of Debian Buster"/>
<profile name="Disk" description="OEM image of Debian Buster"/>
<profile name="Live" description="Live image of Debian"/>
<profile name="Virtual" description="Virtual image of Debian"/>
<profile name="Disk" description="OEM image of Debian"/>
</profiles>
<preferences>
<version>10.4</version>
<version>12.1</version>
<packagemanager>apt</packagemanager>
<bootsplash-theme>fade-in</bootsplash-theme>
<bootloader-theme>starfield</bootloader-theme>
@ -51,16 +51,20 @@
<users>
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
</users>
<repository type="apt-deb" distribution="buster" components="main contrib non-free" repository_gpgcheck="false">
<source path="obs://Debian:10/universe"/>
<repository type="apt-deb" repository_gpgcheck="false" architectures="amd64">
<source path="obs://Virtualization:Appliances:Staging/Debian_12_update"/>
</repository>
<repository type="apt-deb" distribution="buster" components="main contrib non-free" repository_gpgcheck="false">
<source path="obs://Debian:10/standard"/>
<repository type="apt-deb" repository_gpgcheck="false" architectures="amd64">
<source path="obs://Virtualization:Appliances:Staging/Debian_12_x86_64"/>
</repository>
<repository type="apt-deb" repository_gpgcheck="false">
<source path="obs://Virtualization:Appliances:Staging/Debian_10"/>
<repository type="apt-deb" distribution="bookworm" components="main contrib non-free" repository_gpgcheck="false">
<source path="obs://Debian:12/universe"/>
</repository>
<repository type="apt-deb" distribution="bookworm" components="main contrib non-free" repository_gpgcheck="false">
<source path="obs://Debian:12/standard"/>
</repository>
<packages type="image">
<package name="libpam-runtime"/>
<package name="grub-theme-starfield"/>
<package name="plymouth-themes"/>
<package name="vim"/>
@ -72,9 +76,6 @@
<package name="xz-utils"/>
<package name="binutils"/>
<package name="linux-image-amd64"/>
<package name="isolinux"/>
<package name="syslinux"/>
<package name="syslinux-common"/>
<package name="init"/>
<package name="gnupg"/>
<package name="iproute2"/>
@ -85,6 +86,15 @@
<package name="netbase"/>
<package name="bsdmainutils"/>
<package name="usrmerge"/>
<package name="usr-is-merged"/>
<package name="netplan.io"/>
<package name="networkd-dispatcher"/>
<package name="net-tools"/>
<package name="dbus"/>
<package name="netbase"/>
<package name="locales-all"/>
<package name="tzdata"/>
<package name="openssh-server"/>
</packages>
<packages type="image" profiles="Virtual">
<package name="shim-signed"/>
@ -97,5 +107,7 @@
<package name="dracut-kiwi-oem-repart"/>
<package name="dracut-kiwi-oem-dump"/>
</packages>
<packages type="bootstrap"/>
<packages type="bootstrap">
<package name="ca-certificates"/>
</packages>
</image>

View File

@ -1,37 +1,7 @@
#!/bin/bash
#================
# FILE : config.sh
#----------------
# PROJECT : OpenSuSE KIWI Image System
# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
# :
# AUTHOR : Marcus Schaefer <ms@suse.de>
# :
# BELONGS TO : Operating System images
# :
# DESCRIPTION : configuration script for Debian based
# : operating systems
# :
# :
# STATUS : BETA
#----------------
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
set -ex
#======================================
# Activate services
#--------------------------------------
baseInsertService sshd
#======================================
# Setup default target, multi-user
#--------------------------------------
baseSetRunlevel 3
systemctl enable ssh

View File

@ -0,0 +1,2 @@
obs://Virtualization:Appliances:Staging/Fedora_39
https://mirrors.fedoraproject.org/metalink?repo=fedora-39&arch=x86_64,,,,,,,,,,metalink

View File

@ -1,2 +1,4 @@
iso:
- media_tag_tool: isomd5sum
oci:
- archive_tool: buildah

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<image schemaversion="8.4" name="kiwi-test-image-amazon-linux-layout">
<description type="system">
<author>Marcus Schaefer</author>
<contact>marcus.schaefer@suse.com</contact>
<specification>
Fedora Appliance building as Amazon Linux compatible layout
- EFI partition: partition_number=55 (first on disk)
- Boot partition: partition_number=101 (second on disk, boot_flag=true)
- Var partition: partition_number=13 (third on disk)
- Root partition: partition_number=1 (last on disk)
</specification>
</description>
<preferences>
<version>2.0.0</version>
<packagemanager>dnf5</packagemanager>
<bootsplash-theme>charge</bootsplash-theme>
<bootloader-theme>breeze</bootloader-theme>
<locale>en_US</locale>
<keytable>us</keytable>
<timezone>UTC</timezone>
<rpm-check-signatures>false</rpm-check-signatures>
</preferences>
<preferences>
<type
image="oem"
filesystem="ext4"
firmware="uefi"
eficsm="false"
kernelcmdline="console=tty1 console=ttyS0"
bootpartition="true"
efipart_id="55"
rootpart_id="1"
bootpart_id="101"
bootfilesystem="ext4"
efipartsize="100"
bootpartsize="1024"
>
<bootloader name="grub2" timeout="10" output_console="console serial" input_console="serial"/>
<oemconfig>
<oem-resize>false</oem-resize>
<oem-unattended>true</oem-unattended>
<oem-swap>false</oem-swap>
</oemconfig>
<size unit="G">10</size>
<partitions>
<partition name="var" size="2000" filesystem="ext4" mountpoint="/var" part_id="13" partition_type="t.linux"/>
</partitions>
</type>
</preferences>
<users>
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
</users>
<repository type="rpm-md">
<source path="obsrepositories:/"/>
</repository>
<packages type="image">
<package name="grub2"/>
<package name="grubby"/>
<package name="kernel"/>
<package name="plymouth-theme-charge"/>
<package name="grub2-breeze-theme"/>
<package name="selinux-policy-targeted"/>
<package name="dhclient"/>
<package name="glibc-all-langpacks"/>
<package name="vim"/>
<package name="tzdata"/>
<package name="NetworkManager"/>
</packages>
<packages type="bootstrap">
<package name="filesystem"/>
<package name="basesystem"/>
<package name="grub2-efi-x64-modules"/>
<package name="grub2-efi-x64"/>
<package name="shim" arch="x86_64"/>
<package name="fedora-release"/>
<package name="shadow"/>
</packages>
</image>

View File

@ -0,0 +1,8 @@
#!/bin/bash
set -ex
#======================================
# Activate services
#--------------------------------------
systemctl enable dbus-broker
systemctl enable NetworkManager

Some files were not shown because too many files have changed in this diff Show More