Blob Blame History Raw
Name:           mkosi
Version:        12
Release:        %autorelease
Summary:        Create bespoke OS images

License:        LGPLv2+
URL:            https://github.com/systemd/mkosi
Source0:        https://github.com/systemd/mkosi/archive/v%{version}/%{name}-%{version}.tar.gz

Patch:          0001-py3.11-fix-Enum-formatting-to-work-with-python3.11-a.patch

BuildArch:      noarch
BuildRequires:  python3-devel
BuildRequires:  python3-setuptools
BuildRequires:  python3-pytest

%global recoreq %{?el7:Requires}%{!?el7:Recommends}

%{recoreq}:     dnf
%{recoreq}:     gnupg
%{recoreq}:     xz
%{recoreq}:     tar
%{recoreq}:     e2fsprogs
%{recoreq}:     squashfs-tools
%{recoreq}:     veritysetup
%if 0%{?el7} == 0
Recommends:     debootstrap
Recommends:     arch-install-scripts
Recommends:     edk2-ovmf
Recommends:     btrfs-progs
Recommends:     dosfstools
Recommends:     cpio
Recommends:     zstd
Recommends:     python3dist(argcomplete)
Recommends:     python3dist(cryptography)
%endif

%description
A fancy wrapper around "dnf --installroot", "debootstrap", "pacman", "zypper",
"emerge", and "swupd-extract" that may generate disk images with a number of
bells and whistles.

Generated images are tailed to the purose. This means GPT disk labels are used
by default, though MBR disk labels are supported, and only systemd based images
may be generated.

%prep
%autosetup -p1

%build
%py3_build

%install
%py3_install

%files
%license LICENSE
%doc README.md
%_bindir/mkosi
%{python3_sitelib}/mkosi/
%{python3_sitelib}/mkosi-%{version}-py*.egg-info/
%_mandir/man1/mkosi.1*

%check
%pytest tests/ -v

# just a smoke test for syntax or import errors
%buildroot/usr/bin/mkosi --help >/dev/null

%changelog
%autochangelog