Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-kiwi for openSUSE:Factory checked in at 2022-10-27 13:53:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-kiwi (Old) and /work/SRC/openSUSE:Factory/.python-kiwi.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-kiwi" Thu Oct 27 13:53:04 2022 rev:102 rq:1031379 version:9.24.49 Changes: -------- --- /work/SRC/openSUSE:Factory/python-kiwi/python-kiwi.changes 2022-08-31 18:08:42.935332213 +0200 +++ /work/SRC/openSUSE:Factory/.python-kiwi.new.2275/python-kiwi.changes 2022-10-27 13:53:18.892305070 +0200 @@ -1,0 +2,83 @@ +Sat Oct 22 22:27:41 CEST 2022 - Marcus Sch??fer <marcus.schae...@gmail.com> + +- Bump version: 9.24.48 ??? 9.24.49 + +------------------------------------------------------------------- +Sat Oct 22 22:18:38 CEST 2022 - Marcus Sch??fer <marcus.schae...@gmail.com> + +- Fixed test-image-vagrant + + virtualbox-guest-tools obsoletes virtualbox-guest-x11 + +------------------------------------------------------------------- +Fri Oct 21 11:30:48 CEST 2022 - Marcus Sch??fer <marcus.schae...@gmail.com> + +- ignore the type check on the Result class + + With an update of mypy the bound TypeVar is no longer allowed. + In newer versions of python we could use the "Self" type or + import annotations from the future module. Unfortunately in + older python versions which we still support (3.6) there is + no non intrusive change which allows us to handle that type + annotation. Thus this commit ignores the return type spec + for Result.load() for the moment. + +------------------------------------------------------------------- +Wed Oct 12 20:31:54 CEST 2022 - Igor Raits <igor.ra...@gmail.com> + +- Stop copying /dev files statically into the OCI container + + In containers (nspawn) where part of the /dev filesystem is bind-mounted + from outside system, kiwi fails to do the rsync (in creation of the + nodes). + + There is no reason to actually copy whole tree inside so let's just + not do it (as it does not seem to be needed at all). + +------------------------------------------------------------------- +Tue Oct 11 22:55:31 CEST 2022 - Dirk M??ller <d...@dmllr.de> + +- List riscv64 as a valid architecture in the schemas + + This is needed so that architecture filters on riscv64 specifics can + be defined. + +------------------------------------------------------------------- +Wed Sep 14 15:59:26 CEST 2022 - Marcus Sch??fer <marcus.schae...@gmail.com> + +- Support DM integrity legacy options + + Add a new attribute integrity_legacy_hmac="true|false" which + allows to use old flawed HMAC calculation (does not protect superblock). + Add a new attribute integrity_legacy_padding="true|false" which + allows to use inefficient legacy padding. Do not use these attributes + until compatibility with a specific old kernel is required! + +------------------------------------------------------------------- +Wed Aug 31 13:00:30 CEST 2022 - Jan Macku <jama...@redhat.com> + +- ci(lint): Add Shell linter - Differential Shellcheck + +------------------------------------------------------------------- +Wed Aug 31 12:11:21 CEST 2022 - Marcus Sch??fer <marcus.schae...@gmail.com> + +- Limit repo alias names to be a safe POSIX name + + Characters like spaces or other symbols used in repo alias names + can cause the package manager to fail setting up the repo. Thus + this patch changes the schema to only allow for safe POSIX names + matching: {pattern = "[a-zA-Z0-9_\-\.]+"}. This Fixes #2170 + +------------------------------------------------------------------- +Thu Aug 25 17:09:11 CEST 2022 - Marcus Sch??fer <marcus.schae...@gmail.com> + +- Increase space for test-image-embedded test + + Add more space to test profile: SystemFeatures + +------------------------------------------------------------------- +Thu Aug 25 17:05:00 CEST 2022 - Marcus Sch??fer <marcus.schae...@gmail.com> + +- Increase efifatimage size for legacy build test + +------------------------------------------------------------------- @@ -4,0 +88,5 @@ + +------------------------------------------------------------------- +Sun Aug 21 17:01:55 CEST 2022 - Laszlo Gombos <laszlo.gom...@gmail.com> + +- Return failure if overlay is not supported ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-kiwi.spec ++++++ --- /var/tmp/diff_new_pack.lijkjb/_old 2022-10-27 13:53:19.740309396 +0200 +++ /var/tmp/diff_new_pack.lijkjb/_new 2022-10-27 13:53:19.756309478 +0200 @@ -43,7 +43,7 @@ %endif Name: python-kiwi -Version: 9.24.48 +Version: 9.24.49 Provides: kiwi-schema = 7.5 Release: 0 Url: https://github.com/OSInside/kiwi ++++++ PKGBUILD ++++++ --- /var/tmp/diff_new_pack.lijkjb/_old 2022-10-27 13:53:19.816309784 +0200 +++ /var/tmp/diff_new_pack.lijkjb/_new 2022-10-27 13:53:19.820309804 +0200 @@ -3,7 +3,7 @@ pkgname=('python-kiwi' 'kiwi-man-pages' 'dracut-kiwi-lib' 'dracut-kiwi-oem-repart' 'dracut-kiwi-oem-dump' 'dracut-kiwi-live' 'dracut-kiwi-overlay') arch=(x86_64) -pkgver=9.24.48 +pkgver=9.24.49 pkgrel=0 pkgdesc="KIWI - Appliance Builder Next Generation" url="https://github.com/SUSE/kiwi/tarball/master" @@ -12,7 +12,7 @@ provides=(kiwi-ng kiwi) source=("${pkgname}.tar.gz") changelog="${pkgname}.changes" -md5sums=('9c2e5b4f06ffb1b28092b2fccbaaae80') +md5sums=('2f443034d660eec6201f77643eb15310') build() { ++++++ python-kiwi.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/.bumpversion.cfg new/kiwi-9.24.49/.bumpversion.cfg --- old/kiwi-9.24.48/.bumpversion.cfg 2022-08-23 11:48:16.000000000 +0200 +++ new/kiwi-9.24.49/.bumpversion.cfg 2022-10-22 22:27:41.000000000 +0200 @@ -1,5 +1,5 @@ [bumpversion] -current_version = 9.24.48 +current_version = 9.24.49 commit = True tag = True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/PKG-INFO new/kiwi-9.24.49/PKG-INFO --- old/kiwi-9.24.48/PKG-INFO 2022-08-23 11:51:25.000000000 +0200 +++ new/kiwi-9.24.49/PKG-INFO 2022-10-22 22:29:42.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: kiwi -Version: 9.24.48 +Version: 9.24.49 Summary: KIWI - Appliance Builder (next generation) Home-page: https://osinside.github.io/kiwi Author: Marcus Schaefer Binary files old/kiwi-9.24.48/doc/build/latex/kiwi.pdf and new/kiwi-9.24.49/doc/build/latex/kiwi.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/doc/build/man/kiwi.8 new/kiwi-9.24.49/doc/build/man/kiwi.8 --- old/kiwi-9.24.48/doc/build/man/kiwi.8 2022-08-23 11:51:24.000000000 +0200 +++ new/kiwi-9.24.49/doc/build/man/kiwi.8 2022-10-22 22:29:41.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "KIWI" "8" "Aug 23, 2022" "9.24.48" "KIWI NG" +.TH "KIWI" "8" "Oct 22, 2022" "9.24.49" "KIWI NG" .SH NAME kiwi \- Creating Operating System Images .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/doc/build/man/kiwi::image::info.8 new/kiwi-9.24.49/doc/build/man/kiwi::image::info.8 --- old/kiwi-9.24.48/doc/build/man/kiwi::image::info.8 2022-08-23 11:51:24.000000000 +0200 +++ new/kiwi-9.24.49/doc/build/man/kiwi::image::info.8 2022-10-22 22:29:41.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "KIWI::IMAGE::INFO" "8" "Aug 23, 2022" "9.24.48" "KIWI NG" +.TH "KIWI::IMAGE::INFO" "8" "Oct 22, 2022" "9.24.49" "KIWI NG" .SH NAME kiwi::image::info \- Provide detailed information about an image description .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/doc/build/man/kiwi::image::resize.8 new/kiwi-9.24.49/doc/build/man/kiwi::image::resize.8 --- old/kiwi-9.24.48/doc/build/man/kiwi::image::resize.8 2022-08-23 11:51:24.000000000 +0200 +++ new/kiwi-9.24.49/doc/build/man/kiwi::image::resize.8 2022-10-22 22:29:41.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "KIWI::IMAGE::RESIZE" "8" "Aug 23, 2022" "9.24.48" "KIWI NG" +.TH "KIWI::IMAGE::RESIZE" "8" "Oct 22, 2022" "9.24.49" "KIWI NG" .SH NAME kiwi::image::resize \- Resize disk images to new geometry .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/doc/build/man/kiwi::result::bundle.8 new/kiwi-9.24.49/doc/build/man/kiwi::result::bundle.8 --- old/kiwi-9.24.48/doc/build/man/kiwi::result::bundle.8 2022-08-23 11:51:24.000000000 +0200 +++ new/kiwi-9.24.49/doc/build/man/kiwi::result::bundle.8 2022-10-22 22:29:41.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "KIWI::RESULT::BUNDLE" "8" "Aug 23, 2022" "9.24.48" "KIWI NG" +.TH "KIWI::RESULT::BUNDLE" "8" "Oct 22, 2022" "9.24.49" "KIWI NG" .SH NAME kiwi::result::bundle \- Bundle build results .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/doc/build/man/kiwi::result::list.8 new/kiwi-9.24.49/doc/build/man/kiwi::result::list.8 --- old/kiwi-9.24.48/doc/build/man/kiwi::result::list.8 2022-08-23 11:51:24.000000000 +0200 +++ new/kiwi-9.24.49/doc/build/man/kiwi::result::list.8 2022-10-22 22:29:41.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "KIWI::RESULT::LIST" "8" "Aug 23, 2022" "9.24.48" "KIWI NG" +.TH "KIWI::RESULT::LIST" "8" "Oct 22, 2022" "9.24.49" "KIWI NG" .SH NAME kiwi::result::list \- List build results .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/doc/build/man/kiwi::system::build.8 new/kiwi-9.24.49/doc/build/man/kiwi::system::build.8 --- old/kiwi-9.24.48/doc/build/man/kiwi::system::build.8 2022-08-23 11:51:24.000000000 +0200 +++ new/kiwi-9.24.49/doc/build/man/kiwi::system::build.8 2022-10-22 22:29:41.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "KIWI::SYSTEM::BUILD" "8" "Aug 23, 2022" "9.24.48" "KIWI NG" +.TH "KIWI::SYSTEM::BUILD" "8" "Oct 22, 2022" "9.24.49" "KIWI NG" .SH NAME kiwi::system::build \- Build image in combined prepare and create step .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/doc/build/man/kiwi::system::create.8 new/kiwi-9.24.49/doc/build/man/kiwi::system::create.8 --- old/kiwi-9.24.48/doc/build/man/kiwi::system::create.8 2022-08-23 11:51:24.000000000 +0200 +++ new/kiwi-9.24.49/doc/build/man/kiwi::system::create.8 2022-10-22 22:29:41.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "KIWI::SYSTEM::CREATE" "8" "Aug 23, 2022" "9.24.48" "KIWI NG" +.TH "KIWI::SYSTEM::CREATE" "8" "Oct 22, 2022" "9.24.49" "KIWI NG" .SH NAME kiwi::system::create \- Create image from prepared root system .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/doc/build/man/kiwi::system::prepare.8 new/kiwi-9.24.49/doc/build/man/kiwi::system::prepare.8 --- old/kiwi-9.24.48/doc/build/man/kiwi::system::prepare.8 2022-08-23 11:51:24.000000000 +0200 +++ new/kiwi-9.24.49/doc/build/man/kiwi::system::prepare.8 2022-10-22 22:29:41.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "KIWI::SYSTEM::PREPARE" "8" "Aug 23, 2022" "9.24.48" "KIWI NG" +.TH "KIWI::SYSTEM::PREPARE" "8" "Oct 22, 2022" "9.24.49" "KIWI NG" .SH NAME kiwi::system::prepare \- Prepare image root system .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/doc/build/man/kiwi::system::update.8 new/kiwi-9.24.49/doc/build/man/kiwi::system::update.8 --- old/kiwi-9.24.48/doc/build/man/kiwi::system::update.8 2022-08-23 11:51:24.000000000 +0200 +++ new/kiwi-9.24.49/doc/build/man/kiwi::system::update.8 2022-10-22 22:29:41.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "KIWI::SYSTEM::UPDATE" "8" "Aug 23, 2022" "9.24.48" "KIWI NG" +.TH "KIWI::SYSTEM::UPDATE" "8" "Oct 22, 2022" "9.24.49" "KIWI NG" .SH NAME kiwi::system::update \- Update/Upgrade image root system .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/doc/source/conf.py new/kiwi-9.24.49/doc/source/conf.py --- old/kiwi-9.24.48/doc/source/conf.py 2022-08-23 11:48:16.000000000 +0200 +++ new/kiwi-9.24.49/doc/source/conf.py 2022-10-22 22:27:41.000000000 +0200 @@ -139,7 +139,7 @@ # built documents. # # The short X.Y version. -version = '9.24.48' +version = '9.24.49' # The full version, including alpha/beta/rc tags. release = version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/doc/source/image_description/elements.rst new/kiwi-9.24.49/doc/source/image_description/elements.rst --- old/kiwi-9.24.48/doc/source/image_description/elements.rst 2022-08-09 18:24:06.000000000 +0200 +++ new/kiwi-9.24.49/doc/source/image_description/elements.rst 2022-09-18 20:32:30.000000000 +0200 @@ -603,6 +603,15 @@ For the `oem` type only, specifies to create a standalone `dm_integrity` layer on top of the root filesystem +integrity_legacy_hmac="true|false": + For the `oem` type only and in combination with the `standalone_integrity` + attribute, Allow to use old flawed HMAC calculation (does not protect superblock). + + .. warning:: + + Do not use this attribute unless compatibility with + a specific old kernel is required! + integrity_keyfile="filepath": For the `oem` type only and in combination with the `standalone_integrity` attribute, protects access to the integrity map using the given keyfile. @@ -1090,7 +1099,8 @@ alias="name" Specifies an alternative name for the configured repository. If the attribute is not specified {kiwi} will generate a random alias name - for the repository. + for the repository. The specified name must match the pattern: + `[a-zA-Z0-9_\-\.]+` components="name" Used for Debian (apt) based repositories only. Specifies the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/dracut/modules.d/90kiwi-overlay/parse-kiwi-overlay.sh new/kiwi-9.24.49/dracut/modules.d/90kiwi-overlay/parse-kiwi-overlay.sh --- old/kiwi-9.24.48/dracut/modules.d/90kiwi-overlay/parse-kiwi-overlay.sh 2022-05-11 09:17:52.000000000 +0200 +++ new/kiwi-9.24.49/dracut/modules.d/90kiwi-overlay/parse-kiwi-overlay.sh 2022-09-18 20:32:30.000000000 +0200 @@ -23,25 +23,30 @@ root="${root#overlay:}" root="${root//\//\\x2f}" root="block:/dev/disk/by-uuid/${root#UUID=}" + rootok=1 ;; overlay:PARTUUID=*|PARTUUID=*) \ root="${root#overlay:}" root="${root//\//\\x2f}" root="block:/dev/disk/by-partuuid/${root#PARTUUID=}" + rootok=1 ;; overlay:LABEL=*|LABEL=*) \ root="${root#overlay:}" root="${root//\//\\x2f}" root="block:/dev/disk/by-label/${root#LABEL=}" + rootok=1 ;; overlay:nbd=*) \ root="block:/dev/nbd0" need_network=1 + rootok=1 ;; overlay:aoe=*) \ root="${root#overlay:aoe=}" root="block:/dev/etherd/${root}" need_network=1 + rootok=1 ;; esac @@ -52,9 +57,6 @@ fi fi -# Done, all good! -rootok=1 - [ "${rootok}" = "1" ] || return 1 info "root was ${overlayroot}, is now ${root}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/kiwi/builder/disk.py new/kiwi-9.24.49/kiwi/builder/disk.py --- old/kiwi-9.24.48/kiwi/builder/disk.py 2022-08-23 11:48:07.000000000 +0200 +++ new/kiwi-9.24.49/kiwi/builder/disk.py 2022-09-18 20:32:30.000000000 +0200 @@ -127,6 +127,7 @@ self.force_mbr = xml_state.build_type.get_force_mbr() self.luks = xml_state.get_luks_credentials() self.integrity_root = xml_state.build_type.get_standalone_integrity() + self.integrity_legacy_hmac = xml_state.build_type.get_integrity_legacy_hmac() self.integrity_keyfile = xml_state.build_type.get_integrity_keyfile() self.integrity_key_description = \ xml_state.build_type.get_integrity_metadata_key_description() @@ -319,12 +320,16 @@ # create integrity on current root device if requested if self.integrity_root: + options = [] + if self.integrity_legacy_hmac: + options.append('legacy_hmac') self.integrity_root = IntegrityDevice( device_map['root'], defaults.INTEGRITY_ALGORITHM, integrity_credentials_type( keydescription=self.integrity_key_description, keyfile=self.integrity_keyfile, - keyfile_algorithm=defaults.INTEGRITY_KEY_ALGORITHM + keyfile_algorithm=defaults.INTEGRITY_KEY_ALGORITHM, + options=options ) ) self.integrity_root.create_dm_integrity() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/kiwi/container/setup/base.py new/kiwi-9.24.49/kiwi/container/setup/base.py --- old/kiwi-9.24.48/kiwi/container/setup/base.py 2021-07-14 18:09:36.000000000 +0200 +++ new/kiwi-9.24.49/kiwi/container/setup/base.py 2022-10-22 22:11:52.000000000 +0200 @@ -20,7 +20,6 @@ # project from kiwi.command import Command -from kiwi.utils.sync import DataSync from kiwi.exceptions import ( KiwiContainerSetupError @@ -145,28 +144,6 @@ } ) - def setup_static_device_nodes(self): - """ - Container device node setup - - Without subsystems like udev running in a container it is - required to provide a set of device nodes to let the - system in the container function correctly. This is - done by syncing the host system nodes to the container. - That this will also create device nodes which are not - necessarily present in the container later is a know - limitation of this method and considered harmless - """ - try: - data = DataSync('/dev/', self.root_dir + '/dev/') - data.sync_data( - options=['-a', '-x', '--devices', '--specials'] - ) - except Exception as e: - raise KiwiContainerSetupError( - 'Failed to create static container nodes %s' % format(e) - ) - def get_container_name(self): """ Container name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/kiwi/container/setup/oci.py new/kiwi-9.24.49/kiwi/container/setup/oci.py --- old/kiwi-9.24.48/kiwi/container/setup/oci.py 2021-07-14 18:09:36.000000000 +0200 +++ new/kiwi-9.24.49/kiwi/container/setup/oci.py 2022-10-22 22:11:52.000000000 +0200 @@ -50,7 +50,6 @@ self.deactivate_bootloader_setup() self.deactivate_root_filesystem_check() - self.setup_static_device_nodes() self.setup_root_console() for service in services_to_deactivate: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/kiwi/schema/kiwi.rnc new/kiwi-9.24.49/kiwi/schema/kiwi.rnc --- old/kiwi-9.24.48/kiwi/schema/kiwi.rnc 2022-08-09 18:24:06.000000000 +0200 +++ new/kiwi-9.24.49/kiwi/schema/kiwi.rnc 2022-10-19 08:20:41.000000000 +0200 @@ -35,7 +35,7 @@ partition-size-type = xsd:token {pattern = "(\d+|\d+M|\d+G)"} vhd-tag-type = xsd:token {pattern = "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}"} groups-list = xsd:token {pattern = "[a-zA-Z0-9_\-\.:]+(,[a-zA-Z0-9_\-\.:]+)*"} -arch-name = xsd:token {pattern = "(x86_64|i586|i686|ix86|aarch64|arm64|armv5el|armv5tel|armv6hl|armv6l|armv7hl|armv7l|ppc|ppc64|ppc64le|s390|s390x)(,(x86_64|i586|i686|ix86|aarch64|arm64|armv5el|armv5tel|armv6hl|armv6l|armv7hl|armv7l|ppc|ppc64|ppc64le|s390|s390x))*"} +arch-name = xsd:token {pattern = "(x86_64|i586|i686|ix86|aarch64|arm64|armv5el|armv5tel|armv6hl|armv6l|armv7hl|armv7l|ppc|ppc64|ppc64le|s390|s390x|riscv64)(,(x86_64|i586|i686|ix86|aarch64|arm64|armv5el|armv5tel|armv6hl|armv6l|armv7hl|armv7l|ppc|ppc64|ppc64le|s390|s390x|riscv64))*"} portnum-type = xsd:token {pattern = "(\d+|\d+/(udp|tcp))"} grub_console = xsd:token {pattern = "(console|gfxterm|serial)( (console|gfxterm|serial))*"} fs_attributes = xsd:token {pattern = "(no-copy-on-write|synchronous-updates)(,(no-copy-on-write|synchronous-updates))*"} @@ -1002,12 +1002,13 @@ } k.repository.alias.attribute = ## Alias name to be used for this repository. This is an - ## optional free form text. If not set the source attribute + ## optional free-form text restricted to characters from the + ## POSIX standard. If not set the source attribute ## value is used and builds the alias name by running a md5 digest ## of the defined URI of the repository. An alias name should be ## set if the source argument doesn't really explain what this ## repository contains. - attribute alias { text } + attribute alias { safe-posix-name } k.repository.components.attribute = ## Distribution components, used for deb repositories. If ## not set it defaults to main @@ -1644,6 +1645,20 @@ is-a = "image_integrity_requirement" sch:param [ name = "attr" value = "standalone_integrity" ] ] + k.type.integrity_legacy_hmac.attribute = + ## In combination with the standalone_integrity attribute, + ## Allow to use old flawed HMAC calculation (does not protect superblock) + attribute integrity_legacy_hmac { xsd:boolean } + >> sch:pattern [ + id = "integrity_legacy_hmac" is-a = "image_type" + sch:param [ name = "attr" value = "integrity_legacy_hmac" ] + sch:param [ name = "types" value = "oem" ] + ] + >> sch:pattern [ + id = "standalone_integrity_mandatory" + is-a = "integrity_legacy_hmac_requirement" + sch:param [ name = "attr" value = "standalone_integrity" ] + ] k.type.integrity_keyfile.attribute = ## In combination with the standalone_integrity attribute, ## protect access to the integrity map using the given key. @@ -2156,6 +2171,7 @@ k.type.embed_verity_metadata.attribute? & k.type.standalone_integrity.attribute? & k.type.embed_integrity_metadata.attribute? & + k.type.integrity_legacy_hmac.attribute? & k.type.integrity_metadata_key_description? & k.type.integrity_keyfile.attribute? & k.type.primary.attribute? & diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/kiwi/schema/kiwi.rng new/kiwi-9.24.49/kiwi/schema/kiwi.rng --- old/kiwi-9.24.48/kiwi/schema/kiwi.rng 2022-08-09 18:24:06.000000000 +0200 +++ new/kiwi-9.24.49/kiwi/schema/kiwi.rng 2022-10-19 08:20:41.000000000 +0200 @@ -78,7 +78,7 @@ </define> <define name="arch-name"> <data type="token"> - <param name="pattern">(x86_64|i586|i686|ix86|aarch64|arm64|armv5el|armv5tel|armv6hl|armv6l|armv7hl|armv7l|ppc|ppc64|ppc64le|s390|s390x)(,(x86_64|i586|i686|ix86|aarch64|arm64|armv5el|armv5tel|armv6hl|armv6l|armv7hl|armv7l|ppc|ppc64|ppc64le|s390|s390x))*</param> + <param name="pattern">(x86_64|i586|i686|ix86|aarch64|arm64|armv5el|armv5tel|armv6hl|armv6l|armv7hl|armv7l|ppc|ppc64|ppc64le|s390|s390x|riscv64)(,(x86_64|i586|i686|ix86|aarch64|arm64|armv5el|armv5tel|armv6hl|armv6l|armv7hl|armv7l|ppc|ppc64|ppc64le|s390|s390x|riscv64))*</param> </data> </define> <define name="portnum-type"> @@ -1521,11 +1521,13 @@ <define name="k.repository.alias.attribute"> <attribute name="alias"> <a:documentation>Alias name to be used for this repository. This is an -optional free form text. If not set the source attribute +optional free-form text restricted to characters from the +POSIX standard. If not set the source attribute value is used and builds the alias name by running a md5 digest of the defined URI of the repository. An alias name should be set if the source argument doesn't really explain what this repository contains.</a:documentation> + <ref name="safe-posix-name"/> </attribute> </define> <define name="k.repository.components.attribute"> @@ -2366,6 +2368,20 @@ <sch:param name="attr" value="standalone_integrity"/> </sch:pattern> </define> + <define name="k.type.integrity_legacy_hmac.attribute"> + <attribute name="integrity_legacy_hmac"> + <a:documentation>In combination with the standalone_integrity attribute, +Allow to use old flawed HMAC calculation (does not protect superblock)</a:documentation> + <data type="boolean"/> + </attribute> + <sch:pattern id="integrity_legacy_hmac" is-a="image_type"> + <sch:param name="attr" value="integrity_legacy_hmac"/> + <sch:param name="types" value="oem"/> + </sch:pattern> + <sch:pattern id="standalone_integrity_mandatory" is-a="integrity_legacy_hmac_requirement"> + <sch:param name="attr" value="standalone_integrity"/> + </sch:pattern> + </define> <define name="k.type.integrity_keyfile.attribute"> <attribute name="integrity_keyfile"> <a:documentation>In combination with the standalone_integrity attribute, @@ -3150,6 +3166,9 @@ <ref name="k.type.embed_integrity_metadata.attribute"/> </optional> <optional> + <ref name="k.type.integrity_legacy_hmac.attribute"/> + </optional> + <optional> <ref name="k.type.integrity_metadata_key_description"/> </optional> <optional> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/kiwi/storage/integrity_device.py new/kiwi-9.24.49/kiwi/storage/integrity_device.py --- old/kiwi-9.24.48/kiwi/storage/integrity_device.py 2022-05-11 13:21:54.000000000 +0200 +++ new/kiwi-9.24.49/kiwi/storage/integrity_device.py 2022-09-18 20:32:30.000000000 +0200 @@ -37,7 +37,8 @@ 'integrity_credentials_type', [ ('keydescription', str), ('keyfile', str), - ('keyfile_algorithm', str) + ('keyfile_algorithm', str), + ('options', List[str]) ] ) @@ -80,6 +81,11 @@ self.integrity_open_options = [ '--integrity', self.integrity_algorithm ] + if credentials and credentials.options: + if 'legacy_hmac' in credentials.options: + self.integrity_format_options.append( + '--integrity-legacy-hmac' + ) if credentials and credentials.keyfile: integrity_key_options = [ '--integrity-key-file', credentials.keyfile, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/kiwi/system/result.py new/kiwi-9.24.49/kiwi/system/result.py --- old/kiwi-9.24.48/kiwi/system/result.py 2021-10-25 14:25:37.000000000 +0200 +++ new/kiwi-9.24.49/kiwi/system/result.py 2022-10-22 22:11:52.000000000 +0200 @@ -162,7 +162,7 @@ ) @staticmethod - def load(filename: str) -> result_type: + def load(filename: str) -> result_type: # type: ignore """ Load pickle dumped filename into a Result instance diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/kiwi/version.py new/kiwi-9.24.49/kiwi/version.py --- old/kiwi-9.24.48/kiwi/version.py 2022-08-23 11:48:16.000000000 +0200 +++ new/kiwi-9.24.49/kiwi/version.py 2022-10-22 22:27:41.000000000 +0200 @@ -18,5 +18,5 @@ """ Global version information used in kiwi and the package """ -__version__ = '9.24.48' -__githash__ = 'c969cf8e622f7d0116863bf1290208a0a4c3a907' +__version__ = '9.24.49' +__githash__ = '6d39ae0e2ce487e590cff1a2962e172d94ec28d7' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/kiwi/xml_parse.py new/kiwi-9.24.49/kiwi/xml_parse.py --- old/kiwi-9.24.48/kiwi/xml_parse.py 2022-08-09 18:24:06.000000000 +0200 +++ new/kiwi-9.24.49/kiwi/xml_parse.py 2022-10-15 17:15:58.000000000 +0200 @@ -2230,6 +2230,13 @@ def set_username(self, username): self.username = username def get_use_for_bootstrap(self): return self.use_for_bootstrap def set_use_for_bootstrap(self, use_for_bootstrap): self.use_for_bootstrap = use_for_bootstrap + def validate_safe_posix_name(self, value): + # Validate type safe-posix-name, a restriction on xs:token. + if value is not None and Validate_simpletypes_: + if not self.gds_validate_simple_patterns( + self.validate_safe_posix_name_patterns_, value): + warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_safe_posix_name_patterns_, )) + validate_safe_posix_name_patterns_ = [['^[a-zA-Z0-9_\\-\\.]+$']] def hasContent_(self): if ( super(repository, self).hasContent_() @@ -2268,7 +2275,7 @@ outfile.write(' profiles=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.profiles), input_name='profiles')), )) if self.alias is not None and 'alias' not in already_processed: already_processed.add('alias') - outfile.write(' alias=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.alias), input_name='alias')), )) + outfile.write(' alias=%s' % (quote_attrib(self.alias), )) if self.sourcetype is not None and 'sourcetype' not in already_processed: already_processed.add('sourcetype') outfile.write(' sourcetype=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.sourcetype), input_name='sourcetype')), )) @@ -2328,6 +2335,8 @@ if value is not None and 'alias' not in already_processed: already_processed.add('alias') self.alias = value + self.alias = ' '.join(self.alias.split()) + self.validate_safe_posix_name(self.alias) # validate type safe-posix-name value = find_attr_value_('sourcetype', node) if value is not None and 'sourcetype' not in already_processed: already_processed.add('sourcetype') @@ -2798,7 +2807,7 @@ """The Image Type of the Logical Extend""" subclass = None superclass = None - def __init__(self, boot=None, bootfilesystem=None, firmware=None, bootkernel=None, bootpartition=None, bootpartsize=None, efipartsize=None, efifatimagesize=None, efiparttable=None, dosparttable_extended_layout=None, bootprofile=None, btrfs_quota_groups=None, btrfs_root_is_snapshot=None, btrfs_root_is_readonly_snapshot=None, compressed=None, devicepersistency=None, editbootconfig=None, editbootinstall=None, filesystem=None, flags=None, format=None, formatoptions=None, fsmountoptions=None, fscreateoptions=None, squashfscompression=None, gcelicense=None, hybridpersistent=None, hybridpersistent_filesystem=None, gpt_hybrid_mbr=None, force_mbr=None, initrd_system=None, image=None, metadata_path=None, installboot=None, install_continue_on_timeout=None, installprovidefailsafe=None, installiso=None, installstick=None, installpxe=None, mediacheck=None, kernelcmdline=None, luks=None, luks_version=None, luksOS=None, mdraid=None, overlayroot=None, overlayroot_write_partition=None, overlayroo t_readonly_partsize=None, verity_blocks=None, embed_verity_metadata=None, standalone_integrity=None, embed_integrity_metadata=None, integrity_metadata_key_description=None, integrity_keyfile=None, primary=None, ramonly=None, rootfs_label=None, spare_part=None, spare_part_mountpoint=None, spare_part_fs=None, spare_part_fs_attributes=None, spare_part_is_last=None, target_blocksize=None, target_removable=None, selinux_policy=None, vga=None, vhdfixedtag=None, volid=None, wwid_wait_timeout=None, derived_from=None, ensure_empty_tmpdirs=None, xen_server=None, publisher=None, disk_start_sector=None, root_clone=None, boot_clone=None, bundle_format=None, bootloader=None, containerconfig=None, machine=None, oemconfig=None, size=None, systemdisk=None, partitions=None, vagrantconfig=None, installmedia=None, luksformat=None): + def __init__(self, boot=None, bootfilesystem=None, firmware=None, bootkernel=None, bootpartition=None, bootpartsize=None, efipartsize=None, efifatimagesize=None, efiparttable=None, dosparttable_extended_layout=None, bootprofile=None, btrfs_quota_groups=None, btrfs_root_is_snapshot=None, btrfs_root_is_readonly_snapshot=None, compressed=None, devicepersistency=None, editbootconfig=None, editbootinstall=None, filesystem=None, flags=None, format=None, formatoptions=None, fsmountoptions=None, fscreateoptions=None, squashfscompression=None, gcelicense=None, hybridpersistent=None, hybridpersistent_filesystem=None, gpt_hybrid_mbr=None, force_mbr=None, initrd_system=None, image=None, metadata_path=None, installboot=None, install_continue_on_timeout=None, installprovidefailsafe=None, installiso=None, installstick=None, installpxe=None, mediacheck=None, kernelcmdline=None, luks=None, luks_version=None, luksOS=None, mdraid=None, overlayroot=None, overlayroot_write_partition=None, overlayroo t_readonly_partsize=None, verity_blocks=None, embed_verity_metadata=None, standalone_integrity=None, embed_integrity_metadata=None, integrity_legacy_hmac=None, integrity_metadata_key_description=None, integrity_keyfile=None, primary=None, ramonly=None, rootfs_label=None, spare_part=None, spare_part_mountpoint=None, spare_part_fs=None, spare_part_fs_attributes=None, spare_part_is_last=None, target_blocksize=None, target_removable=None, selinux_policy=None, vga=None, vhdfixedtag=None, volid=None, wwid_wait_timeout=None, derived_from=None, ensure_empty_tmpdirs=None, xen_server=None, publisher=None, disk_start_sector=None, root_clone=None, boot_clone=None, bundle_format=None, bootloader=None, containerconfig=None, machine=None, oemconfig=None, size=None, systemdisk=None, partitions=None, vagrantconfig=None, installmedia=None, luksformat=None): self.original_tagname_ = None self.boot = _cast(None, boot) self.bootfilesystem = _cast(None, bootfilesystem) @@ -2852,6 +2861,7 @@ self.embed_verity_metadata = _cast(bool, embed_verity_metadata) self.standalone_integrity = _cast(bool, standalone_integrity) self.embed_integrity_metadata = _cast(bool, embed_integrity_metadata) + self.integrity_legacy_hmac = _cast(bool, integrity_legacy_hmac) self.integrity_metadata_key_description = _cast(None, integrity_metadata_key_description) self.integrity_keyfile = _cast(None, integrity_keyfile) self.primary = _cast(bool, primary) @@ -3082,6 +3092,8 @@ def set_standalone_integrity(self, standalone_integrity): self.standalone_integrity = standalone_integrity def get_embed_integrity_metadata(self): return self.embed_integrity_metadata def set_embed_integrity_metadata(self, embed_integrity_metadata): self.embed_integrity_metadata = embed_integrity_metadata + def get_integrity_legacy_hmac(self): return self.integrity_legacy_hmac + def set_integrity_legacy_hmac(self, integrity_legacy_hmac): self.integrity_legacy_hmac = integrity_legacy_hmac def get_integrity_metadata_key_description(self): return self.integrity_metadata_key_description def set_integrity_metadata_key_description(self, integrity_metadata_key_description): self.integrity_metadata_key_description = integrity_metadata_key_description def get_integrity_keyfile(self): return self.integrity_keyfile @@ -3368,6 +3380,9 @@ if self.embed_integrity_metadata is not None and 'embed_integrity_metadata' not in already_processed: already_processed.add('embed_integrity_metadata') outfile.write(' embed_integrity_metadata="%s"' % self.gds_format_boolean(self.embed_integrity_metadata, input_name='embed_integrity_metadata')) + if self.integrity_legacy_hmac is not None and 'integrity_legacy_hmac' not in already_processed: + already_processed.add('integrity_legacy_hmac') + outfile.write(' integrity_legacy_hmac="%s"' % self.gds_format_boolean(self.integrity_legacy_hmac, input_name='integrity_legacy_hmac')) if self.integrity_metadata_key_description is not None and 'integrity_metadata_key_description' not in already_processed: already_processed.add('integrity_metadata_key_description') outfile.write(' integrity_metadata_key_description=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.integrity_metadata_key_description), input_name='integrity_metadata_key_description')), )) @@ -3821,6 +3836,15 @@ self.embed_integrity_metadata = False else: raise_parse_error(node, 'Bad boolean attribute') + value = find_attr_value_('integrity_legacy_hmac', node) + if value is not None and 'integrity_legacy_hmac' not in already_processed: + already_processed.add('integrity_legacy_hmac') + if value in ('true', '1'): + self.integrity_legacy_hmac = True + elif value in ('false', '0'): + self.integrity_legacy_hmac = False + else: + raise_parse_error(node, 'Bad boolean attribute') value = find_attr_value_('integrity_metadata_key_description', node) if value is not None and 'integrity_metadata_key_description' not in already_processed: already_processed.add('integrity_metadata_key_description') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/kiwi.egg-info/PKG-INFO new/kiwi-9.24.49/kiwi.egg-info/PKG-INFO --- old/kiwi-9.24.48/kiwi.egg-info/PKG-INFO 2022-08-23 11:51:24.000000000 +0200 +++ new/kiwi-9.24.49/kiwi.egg-info/PKG-INFO 2022-10-22 22:29:41.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: kiwi -Version: 9.24.48 +Version: 9.24.49 Summary: KIWI - Appliance Builder (next generation) Home-page: https://osinside.github.io/kiwi Author: Marcus Schaefer diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/setup.cfg new/kiwi-9.24.49/setup.cfg --- old/kiwi-9.24.48/setup.cfg 2022-08-23 11:51:25.000000000 +0200 +++ new/kiwi-9.24.49/setup.cfg 2022-10-22 22:29:42.000000000 +0200 @@ -9,7 +9,7 @@ [flake8] exclude = xml_parse.py ignore = E501, W605 -max-complexity = 26 +max-complexity = 28 [doc8] max-line-length = 90 Binary files old/kiwi-9.24.48/test/unit/.coverage and new/kiwi-9.24.49/test/unit/.coverage differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/test/unit/builder/disk_test.py new/kiwi-9.24.49/test/unit/builder/disk_test.py --- old/kiwi-9.24.48/test/unit/builder/disk_test.py 2022-07-12 09:46:10.000000000 +0200 +++ new/kiwi-9.24.49/test/unit/builder/disk_test.py 2022-09-18 20:32:30.000000000 +0200 @@ -606,6 +606,7 @@ filesystem = Mock() mock_fs.return_value = filesystem self.disk_builder.integrity_root = True + self.disk_builder.integrity_legacy_hmac = True self.disk_builder.root_filesystem_embed_integrity_metadata = True self.disk_builder.root_filesystem_is_overlay = False self.disk_builder.volume_manager_name = None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/test/unit/container/setup/base_test.py new/kiwi-9.24.49/test/unit/container/setup/base_test.py --- old/kiwi-9.24.48/test/unit/container/setup/base_test.py 2022-05-11 08:59:15.000000000 +0200 +++ new/kiwi-9.24.49/test/unit/container/setup/base_test.py 2022-10-22 22:11:52.000000000 +0200 @@ -2,7 +2,6 @@ patch, call, mock_open ) from pytest import raises -import mock from kiwi.container.setup.base import ContainerSetupBase @@ -102,22 +101,3 @@ assert m_open.return_value.write.call_args_list == [ call('\nconsole\n') ] - - @patch('kiwi.container.setup.base.Command.run') - @patch('kiwi.container.setup.base.DataSync') - def test_setup_static_device_nodes(self, mock_DataSync, mock_command): - data = mock.Mock() - mock_DataSync.return_value = data - self.container.setup_static_device_nodes() - mock_DataSync.assert_called_once_with( - '/dev/', 'root_dir/dev/' - ) - data.sync_data.assert_called_once_with( - options=['-a', '-x', '--devices', '--specials'] - ) - - @patch('kiwi.container.setup.base.Command.run') - def test_setup_static_device_nodes_failed(self, mock_command): - mock_command.side_effect = Exception - with raises(KiwiContainerSetupError): - self.container.setup_static_device_nodes() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/test/unit/container/setup/oci_test.py new/kiwi-9.24.49/test/unit/container/setup/oci_test.py --- old/kiwi-9.24.48/test/unit/container/setup/oci_test.py 2022-05-11 08:59:15.000000000 +0200 +++ new/kiwi-9.24.49/test/unit/container/setup/oci_test.py 2022-10-22 22:11:52.000000000 +0200 @@ -16,7 +16,6 @@ self.container.deactivate_bootloader_setup = mock.Mock() self.container.deactivate_root_filesystem_check = mock.Mock() - self.container.setup_static_device_nodes = mock.Mock() self.container.setup_root_console = mock.Mock() self.container.deactivate_systemd_service = mock.Mock() @@ -28,7 +27,6 @@ self.container.setup() self.container.deactivate_bootloader_setup.assert_called_once_with() self.container.deactivate_root_filesystem_check.assert_called_once_with() - self.container.setup_static_device_nodes.assert_called_once_with() assert self.container.deactivate_systemd_service.call_args_list == [ call('device-mapper.service'), call('kbd.service'), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-9.24.48/test/unit/storage/integrity_device_test.py new/kiwi-9.24.49/test/unit/storage/integrity_device_test.py --- old/kiwi-9.24.48/test/unit/storage/integrity_device_test.py 2022-05-11 13:21:54.000000000 +0200 +++ new/kiwi-9.24.49/test/unit/storage/integrity_device_test.py 2022-09-18 20:32:30.000000000 +0200 @@ -37,7 +37,8 @@ integrity_credentials_type( keydescription=None, keyfile='/etc/pki/storage/dm-integrity-hmac-secret.bin', - keyfile_algorithm=defaults.INTEGRITY_KEY_ALGORITHM + keyfile_algorithm=defaults.INTEGRITY_KEY_ALGORITHM, + options=['legacy_hmac'] ) ) @@ -85,6 +86,7 @@ [ 'integritysetup', '-v', '--batch-mode', 'format', '--integrity', 'hmac-sha256', '--sector-size', '512', + '--integrity-legacy-hmac', '--integrity-key-file', '/etc/pki/storage/dm-integrity-hmac-secret.bin', '--integrity-key-size', '42',