SHA256
1
0
forked from pool/mkosi
mkosi/mkosi.spec

89 lines
2.5 KiB
RPMSpec
Raw Normal View History

#
# spec file for package mkosi
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define pythons python3
Name: mkosi
Accepting request 1127786 from home:flonnegren:branches:Virtualization Mon Nov 20 09:21:06 UTC 2023 - Fredrik Lönnegren <fredrik.lonnegren@suse.com> - update to v19: * Support for RHEL was added! * Added journalctl and coredumpctl verbs for running the respective tools on built directory or disk images. * Added a burn verb to write the output image to a block device. * Added a new esp output format, which is large similar to the existing uki output format but wraps it in a disk image with only an ESP. * Presets were renamed to Images. mkosi.images/ is now used instead of mkosi.presets/, the Presets= setting was renamed to Images= and the Presets section was merged into the Config section. The old names can still be used for backwards compatibility. * Added profiles to support building variants of the same image in one repository. Profiles can be defined in mkosi.profiles/ and one can be selected using the new Profile= setting. * mkosi will now parse mkosi.local.conf before any other config files if that exists. * Added a kernel-install plugin. This is only shipped in source tree and not included in the Python module. * Added a --json option to get the output of mkosi summary as JSON. * Added shorthand -a for --autologin. * Scripts with the .chroot extension are now executed in the image automatically. * Added rpm helper script to have rpm automatically operate on the image when running scripts. * Added mkosi-as-caller helper script that can be used in scripts to run commands as the user invoking mkosi. * mkosi-chroot will now start a shell if no arguments are specified. * Added WithRecommends= to configure whether to install recommended packages by default or not where this is supported. It is disabled by default. * Added ToolsTreeMirror= setting for configuring the mirror to use for the default tools tree. * WithDocs= is now enabled by default. * Added BuildSourcesEphemeral= to make source directories ephemeral when running scripts. This means any changes made to source directories while running scripts will be undone after the scripts have finished executing. * Added QemuDrives= to have mkosi create extra qemu drives and pass them to qemu when using the qemu verb. * Added BuildSources= match to match against configured build source targets. * PackageManagerTrees= was moved to the Distribution section. * We now automatically configure the qemu firmware, kernel cmdline and initrd based on what type of kernel is passed by the user via -kernel or QemuKernel=. * The mkosi repository itself now ships configuration to build basic bootable images that can be used to test mkosi. * Added support for enabling updates-testing repositories for Fedora. * GPG keys for CentOS, Fedora, Alma and Rocky are now looked up locally first before fetching them remotely. * Signatures are not required for local packages on Arch anymore. * Packages on opensuse are now always downloaded in advance before installation when using zypper. * The tar output is now reproducible. * We now make sure git can be executed from mkosi scripts without running into permission errors. * We don't create subdirectories beneath the configured cache directory anymore. * Workspace directories are now created outside of any source directories. mkosi will either use XDG_CACHE_HOME, $HOME/.cache or /var/tmp depending on the situation. * Added environment variable MKOSI_DNF to override which dnf to use for building images (dnf or dnf5). * The rootfs can now be modified when running build scripts (with all changes thrown away after the last build script has been executed). * mkosi now fails if configuration specified via the CLI does not apply to any image (because it is overridden). * Added a new doc on building rpms from source with mkosi (docs/building-rpms-from-source.md). * /etc/resolv.conf will now only be mounted for scripts when they are run with network access. OBS-URL: https://build.opensuse.org/request/show/1127786 OBS-URL: https://build.opensuse.org/package/show/Virtualization/mkosi?expand=0&rev=19
2023-11-20 22:18:07 +01:00
Version: 19
Release: 0
Summary: Build Legacy-Free OS Images
License: LGPL-2.1-or-later
Group: System/Management
URL: https://github.com/systemd/mkosi
Source: https://github.com/systemd/mkosi/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module wheel}
BuildRequires: %{pythons}
BuildRequires: fdupes
BuildRequires: pandoc
BuildRequires: python-rpm-macros
Requires: python3 >= 3.9
Requires: squashfs
Requires: tar
Requires: xz
Recommends: arch-install-scripts
Recommends: btrfsprogs
Recommends: debootstrap >= 1.0.117
Recommends: dnf >= 4.8.0
Recommends: dosfstools
Recommends: dpkg
Recommends: edk2-ovmf
Recommends: gnupg
Recommends: pacman >= 6.0.1
Recommends: veritysetup
Recommends: zstd
BuildArch: noarch
ExclusiveArch: x86_64 aarch64
%description
A fancy wrapper around dnf --installroot, debootstrap, pacstrap and zypper that
may generate disk images with a number of bells and whistles.
Generated images are "legacy-free". This means only GPT disk labels
(and no MBR disk labels) are supported, and only systemd based images
may be generated. Moreover, for bootable images only EFI systems are
supported (not plain MBR/BIOS).
%prep
%setup -q
%build
tools/make-man-page.sh
%pyproject_wheel
%install
%pyproject_install
%python_expand %fdupes %{buildroot}/%{$python_sitelib}/mkosi
mkdir -p %{buildroot}%{_mandir}/man1
cp %{buildroot}%{python3_sitelib}/mkosi/resources/mkosi.1* %{buildroot}%{_mandir}/man1/
%check
%pytest
%files
%doc mkosi.md README.md
%license LICENSE
%{_bindir}/mkosi
%{_mandir}/man1/mkosi.1*
%{python3_sitelib}/mkosi
%{python3_sitelib}/mkosi-%{version}.dist-info
%changelog