diff --git a/PKGBUILD b/PKGBUILD index 7715a23..48d5d99 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -3,28 +3,34 @@ 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.25.22 +pkgver=10.0.2 pkgrel=0 pkgdesc="KIWI - Appliance Builder Next Generation" url="https://github.com/SUSE/kiwi/tarball/master" license=('GPL3') -makedepends=(python-setuptools gcc shadow grep) +makedepends=(make gcc python-build python-docopt python-installer python-lxml python-poetry-core python-requests python-setuptools python-simplejson python-sphinx python-sphinx_rtd_theme python-wheel python-yaml shadow grep) provides=(kiwi-ng kiwi) source=("${pkgname}.tar.gz") changelog="${pkgname}.changes" -md5sums=('6d27e95ce4889db4a6cd1bef7ef1284f') +md5sums=('284f5bce5e8fae60101f8cc22b9afd0a') build() { + export LANG=C.UTF-8 + export LC_ALL=C.UTF-8 cd kiwi-${pkgver} - python setup.py build + # Temporarily switch things back to docopt + # FIXME: Drop this hack as soon as we can... + sed -e "s/docopt-ng/docopt/" -i pyproject.toml + make -C doc man + python3 -m build --no-isolation --wheel } package_python-kiwi(){ depends=(python-docopt python-simplejson python-lxml python-requests python-setuptools python-yaml grub qemu squashfs-tools gptfdisk pacman e2fsprogs xfsprogs btrfs-progs libisoburn lvm2 mtools parted multipath-tools rsync tar shadow screen kiwi-man-pages) optdepends=('gnupg: keyring creation for APT package manager') cd kiwi-${pkgver} - python setup.py install --root="${pkgdir}/" --optimize=1 --skip-build + python3 -m installer --destdir "${pkgdir}/" dist/*.whl ln -sr "${pkgdir}/usr/bin/kiwi-ng" "${pkgdir}/usr/bin/kiwi" install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } diff --git a/python-kiwi.changes b/python-kiwi.changes index d246c85..b01fdfa 100644 --- a/python-kiwi.changes +++ b/python-kiwi.changes @@ -1,3 +1,162 @@ +------------------------------------------------------------------- +Wed Mar 06 10:42:14 CET 2024 - Marcus Schäfer + +- Bump version: 10.0.1 → 10.0.2 + +------------------------------------------------------------------- +Wed Mar 06 10:39:31 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Wed Mar 06 10:23:43 CET 2024 - Marcus Schäfer + +- Bump version: 10.0.0 → 10.0.1 + +------------------------------------------------------------------- +Wed Mar 06 10:19:09 CET 2024 - Marcus Schäfer + +- Drop ci-kiwi-9-compliant.yml + + Delete this action as it existed in the intermediate state + prior the new major version v10.x.x + +------------------------------------------------------------------- +Wed Mar 06 09:13:49 CET 2024 - Marcus Schäfer + +- Add tzdata to Debian tests + +------------------------------------------------------------------- +Wed Mar 06 09:08:29 CET 2024 - Marcus Schäfer + +- Fixed sync script for test-image-rpi on Ubuntu + +------------------------------------------------------------------- +Wed Mar 06 00:09:24 CET 2024 - Marcus Schäfer + +- Install language-pack-en for Ubuntu arm test + +------------------------------------------------------------------- +Tue Mar 05 23:58:35 CET 2024 - Marcus Schäfer + +- Install locales-all for Debian tests + +------------------------------------------------------------------- +Tue Mar 05 23:56:03 CET 2024 - Marcus Schäfer + +- Install language-pack-en for Debian tests + +------------------------------------------------------------------- +Tue Mar 05 23:46:04 CET 2024 - Marcus Schäfer + +- Fix repo setup for Ubuntu arm test + +------------------------------------------------------------------- +Tue Mar 05 23:38:20 CET 2024 - Marcus Schäfer + +- Install network stack for Debian test + +------------------------------------------------------------------- +Tue Mar 05 23:31:29 CET 2024 - Marcus Schäfer + +- Request util-linux explicitly for Ubuntu tests + +------------------------------------------------------------------- +Tue Mar 05 23:22:28 CET 2024 - Marcus Schäfer + +- Add usr-is-merged to package list for bootstrap + +------------------------------------------------------------------- +Tue Mar 05 23:15:42 CET 2024 - Marcus Schäfer + +- Install language-pack-en for Ubuntu tests + +------------------------------------------------------------------- +Tue Mar 05 22:50:31 CET 2024 - Marcus Schäfer + +- Move Ubuntu integration tests to Lunar + +------------------------------------------------------------------- +Tue Mar 05 22:19:56 CET 2024 - Marcus Schäfer + +- Update test-image-rpi for Ubuntu on arm + + Do not install kiwi as test application + +------------------------------------------------------------------- +Tue Mar 05 22:15:13 CET 2024 - Marcus Schäfer + +- Fix repo setup for Debian integration tests + + Staging repo must be first for higher prio + +------------------------------------------------------------------- +Tue Mar 05 22:07:44 CET 2024 - Marcus Schäfer + +- Update test-image-docker-derived + + Don't install kiwi as test application, use something + smaller, just vim + +------------------------------------------------------------------- +Tue Mar 05 22:04:15 CET 2024 - Marcus Schäfer + +- Move Debian build test from Buster to Bookworm + + Move from Debian 11 to Debian 12 for integration testing + +------------------------------------------------------------------- +Tue Mar 05 21:20:14 CET 2024 - Marcus Schäfer + +- Move Ubuntu integration tests from Jammy to Mantic + + Use Ubuntu 23.10 for the integration tests and move away from 22.04 + +------------------------------------------------------------------- +Tue Mar 05 21:12:47 CET 2024 - Neal Gompa + +- 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. + +------------------------------------------------------------------- +Tue Mar 05 21:11:29 CET 2024 - Marcus Schäfer + +- Delete test-image-microdnf + + microdnf is dead and dnf5 took over + +------------------------------------------------------------------- +Tue Mar 05 21:09:46 CET 2024 - Marcus Schäfer + +- Delete test-image-live-disk-v8 + + CentOS-8 is EOL and dropped from upstream kiwi + +------------------------------------------------------------------- +Fri Mar 01 12:08:25 CET 2024 - Dmitri Popov + +- Review Build WSL container + +------------------------------------------------------------------- +Fri Mar 01 11:45:11 CET 2024 - Dmitri Popov + +- Revise Build simple disk + +------------------------------------------------------------------- +Thu Feb 29 16:04:24 CET 2024 - Marcus Schäfer + +- 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 + ------------------------------------------------------------------- Thu Feb 29 15:36:41 CET 2024 - Marcus Schäfer @@ -9,14 +168,6 @@ Thu Feb 29 15:36:41 CET 2024 - Marcus Schäfer generator created unit file systemd-cryptsetup@... is used This Fixes bsc#1219009 -------------------------------------------------------------------- -Thu Feb 29 09:49:39 CET 2024 - Marcus Schäfer - -- Add changelog fix file for commit 31deb0 - - The commit used a wrong e-mail address which should not - land in the created changes file for the packaging - ------------------------------------------------------------------- Thu Feb 29 09:39:06 CET 2024 - Marcus Schäfer @@ -41,6 +192,141 @@ Wed Feb 28 10:42:17 CET 2024 - Marcus Schäfer the default output console is set to: gfxterm and the default input console is set to: console. This Fixes bsc#1219074 +------------------------------------------------------------------- +Wed Feb 28 10:31:38 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Tue Feb 27 21:06:19 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Tue Feb 27 20:45:54 CET 2024 - Marcus Schäfer + +- Fix documentation preferlvm example + + The custom volumes example shows a faulty XML description. + This Fixes #2483 + +------------------------------------------------------------------- +Tue Feb 27 15:43:06 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Mon Feb 26 14:59:56 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Mon Feb 26 12:12:35 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Sat Feb 24 15:42:00 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Sat Feb 24 15:37:22 CET 2024 - Marcus Schäfer + +- Fixed type hint for pinch_system method + + The PackageManager argument is allowed to be optional + +------------------------------------------------------------------- +Sat Feb 24 10:57:32 CET 2024 - Marcus Schäfer + +- Add support for discoverable partitions + + Set PARTUUID according to systemd-id128 if applicable + This Fixes #1385 + +------------------------------------------------------------------- +Thu Feb 22 16:17:28 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Thu Feb 22 14:48:39 CET 2024 - Dmitri Popov + +- Build LiveISO review + +------------------------------------------------------------------- +Wed Feb 21 15:45:30 CET 2024 - Dmitri Popov + +- Buil KIS review + +------------------------------------------------------------------- +Wed Feb 21 15:22:39 CET 2024 - Dmitri Popov + +- Build expandable disk review + +------------------------------------------------------------------- +Wed Feb 21 11:52:22 CET 2024 - Dmitri Popov + +- Build container image review + ------------------------------------------------------------------- Wed Feb 21 10:21:48 CET 2024 - Marcus Schäfer @@ -57,6 +343,77 @@ Wed Feb 21 10:21:48 CET 2024 - Marcus Schäfer This is related to bsc#1218095 +------------------------------------------------------------------- +Tue Feb 20 16:31:46 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Mon Feb 19 17:55:10 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Mon Feb 19 16:33:24 CET 2024 - Dan Čermák <45594031+dcermak@users.noreply.github.com> + +- 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 + +------------------------------------------------------------------- +Mon Feb 19 16:17:00 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Mon Feb 19 13:46:30 CET 2024 - Marcus Schäfer + +- 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 + ------------------------------------------------------------------- Mon Feb 19 12:05:45 CET 2024 - Marcus Schäfer @@ -66,6 +423,13 @@ Mon Feb 19 12:05:45 CET 2024 - Marcus Schäfer read and act on e.g cmdline parameters. This is related to bsc#1218095 +------------------------------------------------------------------- +Sun Feb 18 22:15:30 CET 2024 - Alexandre Detiste + +- Use unittest.mock from core python everywhere + + mock was an independent module that has been merged into the Python standard library. + ------------------------------------------------------------------- Fri Feb 16 15:08:49 CET 2024 - David Cassany @@ -79,6 +443,54 @@ Fri Feb 16 15:08:49 CET 2024 - David Cassany Signed-off-by: David Cassany +------------------------------------------------------------------- +Fri Feb 16 15:02:52 CET 2024 - Marcus Schäfer + +- Fixed MicroOS integration test + + temporarily disable ignition/combustion/growpart and use + kiwi's resize code for testing, oem-resize set to true + +------------------------------------------------------------------- +Thu Feb 15 10:08:01 CET 2024 - Marcus Schäfer + +- Fixed kis documentation + + The procedure to run qemu with a filesystem image as disk + was not quite correct. + +------------------------------------------------------------------- +Wed Feb 14 15:42:39 CET 2024 - Marcus Schäfer + +- Update documentation about partition clones + + Using the root_clone attribute comes with some requirements + and consequences. This commit documents them + +------------------------------------------------------------------- +Wed Feb 14 15:18:56 CET 2024 - Fabian Vogt + +- 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 + +------------------------------------------------------------------- +Wed Feb 14 12:51:58 CET 2024 - Fabian Vogt + +- Allow specifying the filesystem for live image, also direct squashfs + + Allow specifying the filesystem for live image, also direct squashfs + + By setting it's now possible + to specify the filesystem used for live images. By using "squashfs", the + rootfs container is skipped entirely. + ------------------------------------------------------------------- Wed Feb 14 12:43:54 CET 2024 - Marcus Schäfer @@ -89,6 +501,388 @@ Wed Feb 14 12:43:54 CET 2024 - Marcus Schäfer after the import of the standard /.profile file. This is related to bsc#1218095 +------------------------------------------------------------------- +Wed Feb 14 09:50:08 CET 2024 - Marcus Schäfer + +- Don't run ci-kiwi-9-compliant action on forks + +------------------------------------------------------------------- +Tue Feb 13 09:27:31 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Mon Feb 12 15:49:13 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Mon Feb 12 15:11:35 CET 2024 - Marcus Schäfer + +- 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. + +------------------------------------------------------------------- +Mon Feb 12 13:04:29 CET 2024 - Marcus Schäfer + +- 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. + +------------------------------------------------------------------- +Mon Feb 12 10:37:21 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Mon Feb 12 10:36:48 CET 2024 - Marcus Schäfer + +- Allow integration test to build outside of obs too + +------------------------------------------------------------------- +Mon Feb 12 09:54:26 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Sun Feb 11 10:54:58 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Wed Feb 07 10:36:34 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Mon Feb 05 15:36:48 CET 2024 - Marcus Schäfer + +- Remove destructor from BootLoaderInstallGrub2 + + With MountManager as context manager the BootLoaderInstallGrub2 + class doesn't need a destructor anymore. This is related + to Issue #2412 + +------------------------------------------------------------------- +Mon Feb 05 15:00:09 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Mon Feb 05 09:21:33 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Fri Feb 02 12:26:17 CET 2024 - Marcus Schäfer + +- 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. + +------------------------------------------------------------------- +Fri Feb 02 10:27:31 CET 2024 - Marcus Schäfer + +- 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. + +------------------------------------------------------------------- +Wed Jan 31 15:40:17 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Wed Jan 31 14:55:19 CET 2024 - Marcus Schäfer + +- Use ExitStack for MountManagers + +------------------------------------------------------------------- +Wed Jan 31 11:10:26 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Wed Jan 31 10:26:48 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Tue Jan 30 17:36:28 CET 2024 - Marcus Schäfer + +- Allow to use Literal for all python versions + +------------------------------------------------------------------- +Tue Jan 30 17:14:21 CET 2024 - Marcus Schäfer + +- Better error message on module import + +------------------------------------------------------------------- +Tue Jan 30 11:48:26 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Fri Jan 26 21:36:49 CET 2024 - Marcus Schäfer + +- Fixed test-image-rpi for TW + + No need to pull in zypper plugin that does not resolve on TW + +------------------------------------------------------------------- +Fri Jan 26 15:19:26 CET 2024 - Marcus Schäfer + +- Update documentation + + drop documentation for isolinux in API and user docs + +------------------------------------------------------------------- +Fri Jan 26 11:35:07 CET 2024 - Dan Čermák + +- Fix invalid escape sequence + +------------------------------------------------------------------- +Fri Jan 26 11:34:56 CET 2024 - Dan Čermák + +- Add missing assert call to install_test + +------------------------------------------------------------------- +Fri Jan 26 11:34:27 CET 2024 - Dan Čermák + +- Correct type hint of mbrid parameter + +------------------------------------------------------------------- +Fri Jan 26 11:33:39 CET 2024 - Dan Čermák + +- Convert BootLoaderConfigBase into an abstract base class + +------------------------------------------------------------------- +Fri Jan 26 11:31:18 CET 2024 - Dan Čermák + +- 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. + +------------------------------------------------------------------- +Fri Jan 26 09:18:44 CET 2024 - Marcus Schäfer + +- better function name + +------------------------------------------------------------------- +Mon Jan 22 17:22:15 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Mon Jan 22 17:15:18 CET 2024 - Marcus Schäfer + +- Update build tests + + Delete use of syslinux/isolinux + +------------------------------------------------------------------- +Fri Jan 19 16:56:24 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Fri Jan 19 14:12:15 CET 2024 - Dan Čermák + +- [docs] make copyright year dynamic + +------------------------------------------------------------------- +Fri Jan 19 14:09:33 CET 2024 - Dan Čermák + +- Silence Shellcheck warning SC2004 + + It causes false positives in array expressions, + e.g. device_array[${device_index}] + + (see: https://www.shellcheck.net/wiki/SC2004) + +------------------------------------------------------------------- +Fri Jan 19 14:06:51 CET 2024 - Dan Čermák + +- Quote shell variables to prevent word splitting + + this fixes shellcheck warning SC2086 + https://www.shellcheck.net/wiki/SC2086 + +------------------------------------------------------------------- +Thu Jan 18 16:16:24 CET 2024 - Dan Čermák + +- Add type hints & doc to VolumeManagerBase & VolumeManagerBtrfs + + Also add additional tests for test coverage of typing edge cases + +------------------------------------------------------------------- +Thu Jan 18 14:37:08 CET 2024 - Dan Čermák + +- Correct invalid escape sequence + + \/ is not a valid escape sequence, it just needs to be forwarded to the shell + +------------------------------------------------------------------- +Thu Jan 18 11:08:55 CET 2024 - Dan Čermák + +- DiskBuilder: use ExitStack to unmount partitions + +------------------------------------------------------------------- +Thu Jan 18 11:05:54 CET 2024 - Dan Čermák + +- FileSystemBase & VolumeManagerBase: return a MountManager from sync_data + + This allows us to unmount the filesystems via the returned context manager + +------------------------------------------------------------------- +Thu Jan 18 11:04:33 CET 2024 - Dan Čermák + +- Don't catch all exceptions in MountManager.umount + +------------------------------------------------------------------- +Thu Jan 18 11:02:23 CET 2024 - Dan Čermák + +- Implement a context manager interface for MountManager + +------------------------------------------------------------------- +Wed Jan 17 21:53:33 CET 2024 - Marcus Schäfer + +- Update Debian distro for integration tests + + We require python >= 3.9 + +------------------------------------------------------------------- +Wed Jan 17 17:27:04 CET 2024 - Marcus Schäfer + +- 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 + ------------------------------------------------------------------- Tue Jan 16 15:50:45 CET 2024 - Marcus Schäfer @@ -111,22 +905,146 @@ Tue Jan 16 10:37:16 CET 2024 - Neal Gompa anymore, so let's just use "linux"+"initrd" for everything now. ------------------------------------------------------------------- -Tue Jan 09 15:31:06 CET 2024 - Marcus Schäfer +Mon Jan 15 17:57:51 CET 2024 - Marcus Schäfer -- Disable workflow runs from master +- Don't create default entry for sd-boot loader.conf - The following github actions will be disabled from master - because they are expected to run from main: +------------------------------------------------------------------- +Mon Jan 15 16:44:22 CET 2024 - Marcus Schäfer - - ci-publish-pages.yml - - ci-publish-to-pypi.yml - - ci-update-build-tests.yml +- 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 + +------------------------------------------------------------------- +Sat Jan 13 23:25:41 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Sat Jan 13 13:47:50 CET 2024 - Marcus Schäfer + +- 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. + +------------------------------------------------------------------- +Fri Jan 12 16:58:19 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Fri Jan 12 16:11:45 CET 2024 - Marcus Schäfer + +- Reduce XSL transformation list + + Minimum schema version to start with is v74 + This Fixes #2368 + +------------------------------------------------------------------- +Fri Jan 12 09:39:18 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Fri Jan 12 09:09:47 CET 2024 - Marcus Schäfer + +- Delete clicfs from documentation API + +------------------------------------------------------------------- +Thu Jan 11 19:14:48 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Thu Jan 11 09:46:23 CET 2024 - Marcus Schäfer + +- Update unit test data to schema v8.0 + +------------------------------------------------------------------- +Thu Jan 11 09:30:07 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Thu Jan 11 09:23:52 CET 2024 - Marcus Schäfer + +- 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 + +------------------------------------------------------------------- +Wed Jan 10 12:10:47 CET 2024 - Dan Čermák + +- 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 + +------------------------------------------------------------------- +Tue Jan 09 15:36:13 CET 2024 - Marcus Schäfer + +- Bump version: 9.25.22 → 10.0.0 + +------------------------------------------------------------------- +Tue Jan 09 15:35:22 CET 2024 - Marcus Schäfer + +- Move workflow runs to main branch + + Make sure all github actions runs from main ------------------------------------------------------------------- Tue Jan 09 15:19:30 CET 2024 - Marcus Schäfer - Bump version: 9.25.21 → 9.25.22 +------------------------------------------------------------------- +Tue Jan 09 13:19:57 CET 2024 - Marcus Schäfer + +- 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. + ------------------------------------------------------------------- Tue Jan 09 11:18:30 CET 2024 - Marcus Schäfer @@ -181,6 +1099,20 @@ Thu Jan 04 13:05:39 CET 2024 - Marcus Schäfer initialize method which provides the environment for all code running in the dracut module. This is related to jira#PED-7180 +------------------------------------------------------------------- +Sat Dec 30 14:49:15 CET 2023 - Marcus Schäfer + +- 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 + ------------------------------------------------------------------- Fri Dec 29 20:23:17 CET 2023 - Neal Gompa diff --git a/python-kiwi.spec b/python-kiwi.spec index 23d9bc7..ed85baf 100644 --- a/python-kiwi.spec +++ b/python-kiwi.spec @@ -19,18 +19,19 @@ # If they aren't provided by a system installed macro, define them %{!?_defaultdocdir: %global _defaultdocdir %{_datadir}/doc} + +%if 0%{?suse_version} && 0%{?suse_version} < 1600 +%global __python3 /usr/bin/python3.11 +%global python3_pkgversion 311 +%else %{!?__python3: %global __python3 /usr/bin/python3} +%{!?python3_pkgversion:%global python3_pkgversion 3} +%endif %if %{undefined python3_sitelib} %global python3_sitelib %(%{__python3} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") %endif -%if 0%{?el7} -%global python3_pkgversion 36 -%else -%{!?python3_pkgversion:%global python3_pkgversion 3} -%endif - %if 0%{?debian} || 0%{?ubuntu} %global is_deb 1 %global pygroup python @@ -43,7 +44,7 @@ %endif Name: python-kiwi -Version: 9.25.22 +Version: 10.0.2 Provides: kiwi-schema = 7.5 Release: 0 Url: https://github.com/OSInside/kiwi @@ -57,9 +58,6 @@ Group: %{pygroup} Source: %{name}.tar.gz Source1: %{name}-rpmlintrc BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildRequires: gcc -BuildRequires: python%{python3_pkgversion}-%{develsuffix} >= 3.6 -BuildRequires: python%{python3_pkgversion}-setuptools %if 0%{?fedora} || 0%{?suse_version} BuildRequires: fdupes %endif @@ -69,6 +67,32 @@ BuildRequires: shadow %if 0%{?debian} || 0%{?ubuntu} BuildRequires: passwd %endif +# Main build requirements +BuildRequires: gcc +BuildRequires: make +BuildRequires: python%{python3_pkgversion}-%{develsuffix} >= 3.9 +BuildRequires: python%{python3_pkgversion}-build +BuildRequires: python%{python3_pkgversion}-installer +BuildRequires: python%{python3_pkgversion}-poetry-core >= 1.2.0 +BuildRequires: python%{python3_pkgversion}-wheel +# doc build requirements +BuildRequires: python%{python3_pkgversion}-docopt >= 0.6.2 +BuildRequires: python%{python3_pkgversion}-lxml +BuildRequires: python%{python3_pkgversion}-requests +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: python%{python3_pkgversion}-simplejson +%if 0%{?suse_version} +BuildRequires: python%{python3_pkgversion}-Sphinx +%else +BuildRequires: python%{python3_pkgversion}-sphinx +%endif +%if 0%{?debian} || 0%{?ubuntu} +BuildRequires: python%{python3_pkgversion}-sphinx-rtd-theme +BuildRequires: python%{python3_pkgversion}-yaml +%else +BuildRequires: python%{python3_pkgversion}-sphinx_rtd_theme +BuildRequires: python%{python3_pkgversion}-PyYAML +%endif %description The KIWI Image System provides an operating system image builder @@ -124,7 +148,6 @@ Requires: dpkg Requires: gnupg %endif # tools required by kiwi -Requires: kiwi-tools Requires: mtools Requires: rsync Requires: tar >= 1.2.7 @@ -186,9 +209,6 @@ Provides: kiwi-image:iso Requires: checkmedia %endif Requires: xorriso -%ifarch %{ix86} x86_64 -Requires: syslinux -%endif Requires: kiwi-systemdeps-core = %{version}-%{release} Requires: kiwi-systemdeps-filesystems = %{version}-%{release} Requires: kiwi-systemdeps-bootloaders = %{version}-%{release} @@ -363,10 +383,9 @@ Obsoletes: python2-kiwi Conflicts: python2-kiwi Conflicts: kiwi-man-pages < %{version} Requires: screen -Requires: python%{python3_pkgversion} >= 3.6 +Requires: python%{python3_pkgversion} >= 3.9 %if 0%{?ubuntu} || 0%{?debian} Requires: python%{python3_pkgversion}-yaml -Requires: python%{python3_pkgversion}-typing-extensions %else Requires: python%{python3_pkgversion}-PyYAML %endif @@ -375,12 +394,7 @@ Requires: python%{python3_pkgversion}-docopt Requires: python%{python3_pkgversion}-lxml Requires: python%{python3_pkgversion}-requests Requires: python%{python3_pkgversion}-setuptools -%if 0%{?rhel} || 0%{?fedora} -Requires: (python%{python3_pkgversion}-typing-extensions if python%{python3_pkgversion} < 3.8) -%endif -%if 0%{?suse_version} -Requires: (python%{python3_pkgversion}-typing_extensions if python%{python3_pkgversion} < 3.8) -%endif +Requires: python%{python3_pkgversion}-xmltodict %if ! (0%{?rhel} && 0%{?rhel} < 8) Recommends: kiwi-man-pages %endif @@ -401,17 +415,6 @@ Python 3 library of the KIWI Image System. Provides an operating system image builder for Linux supported hardware platforms as well as for virtualization and cloud systems like Xen, KVM, VMware, EC2 and more. -%package -n kiwi-tools -Summary: KIWI - Collection of Boot Helper Tools -License: GPL-3.0-or-later -Group: %{sysgroup} - -%description -n kiwi-tools -This package contains a small set of helper tools used for the -kiwi created initial ramdisk which is used to control the very -first boot of an appliance. The tools are not meant to be used -outside of the scope of kiwi appliance building. - %if "%{_vendor}" != "debbuild" %ifarch %{ix86} x86_64 %package -n kiwi-pxeboot @@ -615,33 +618,46 @@ Group: %{sysgroup} Provides manual pages to describe the kiwi commands %prep -%setup -q -n kiwi-%{version} +%autosetup -n kiwi-%{version} + +# Temporarily switch things back to docopt for everything but Fedora 41+ +# FIXME: Drop this hack as soon as we can... +%if ! (0%{?fedora} >= 41 || 0%{?rhel} >= 10) +sed -e "s/docopt-ng/docopt/" -i pyproject.toml +%endif # Drop shebang for kiwi/xml_parse.py, as we don't intend to use it # as an independent script sed -e "s|#!/usr/bin/env python||" -i kiwi/xml_parse.py -%build -# Build C-Tools -make CFLAGS="${RPM_OPT_FLAGS}" tools +# Build documentation +make -C doc man + +# Build application wheel +%{__python3} -m build --no-isolation --wheel %install -# Install Python 3 version -python3 setup.py install --prefix=%{_prefix} --root=%{buildroot} %{?is_deb:--install-layout=deb} +# Install application +%{__python3} -m installer --destdir %{buildroot} %{?is_deb:--no-compile-bytecode} dist/*.whl -# Install C-Tools, man-pages, completion and kiwi default configuration -make buildroot=%{buildroot}/ install +%if 0%{?is_deb} +# Fix where files were installed +mv %{buildroot}%{_prefix}/local/* %{buildroot}%{_prefix} +mv %{buildroot}%{_prefix}/lib/python3* %{buildroot}%{_prefix}/lib/python3 +%endif + +# Install man-pages, completion and kiwi default configuration +make buildroot=%{buildroot}/ python=%{__python3} install # Install dracut modules -make buildroot=%{buildroot}/ install_dracut +make buildroot=%{buildroot}/ python=%{__python3} install_dracut -# Install documentation in PDF format -make buildroot=%{buildroot}/ docdir=%{_defaultdocdir}/ install_package_docs +# Install documentation README / LICENSE +make buildroot=%{buildroot}/ docdir=%{_defaultdocdir}/ python=%{__python3} install_package_docs # Create symlinks for correct binaries ln -sr %{buildroot}%{_bindir}/kiwi-ng %{buildroot}%{_bindir}/kiwi ln -sr %{buildroot}%{_bindir}/kiwi-ng %{buildroot}%{_bindir}/kiwi-ng-3 -ln -sr %{buildroot}%{_bindir}/kiwicompat %{buildroot}%{_bindir}/kiwicompat-3 %if "%{_vendor}" != "debbuild" # kiwi pxeboot directory structure to be packed in kiwi-pxeboot @@ -702,24 +718,16 @@ fi %dir %{_defaultdocdir}/python-kiwi %{_bindir}/kiwi %{_bindir}/kiwi-ng -%{_bindir}/kiwicompat %{_bindir}/kiwi-ng-3* -%{_bindir}/kiwicompat-3* %{python3_sitelib}/kiwi* %{_usr}/share/bash-completion/completions/kiwi-ng %{_defaultdocdir}/python-kiwi/LICENSE %{_defaultdocdir}/python-kiwi/README %files -n kiwi-man-pages -%{_defaultdocdir}/python-kiwi/kiwi.pdf %config %_sysconfdir/kiwi.yml %doc %{_mandir}/man8/* -%files -n kiwi-tools -%{_bindir}/dcounter -%{_bindir}/isconsole -%{_bindir}/utimer - %files -n dracut-kiwi-lib %{_usr}/lib/dracut/modules.d/99kiwi-lib diff --git a/python-kiwi.tar.gz b/python-kiwi.tar.gz index 3d92808..3144f09 100644 --- a/python-kiwi.tar.gz +++ b/python-kiwi.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cf8eb8ee80591af07b72947285246be929a554b8fdb3b76ab3fca3ae3fe7f538 -size 2300044 +oid sha256:0589cf390fef19e20e27af540ea72e0dd3a313429aaf3424f056b4bf409389ff +size 1000549