File PKGBUILD of Package mkosi-git

# Maintainer: Sebastian Wiesner <sebastian@swsnr.de>
# Contributor: Christian Rebischke <chris.rebischke@archlinux.org>
# Contributor: David Runge <dvzrv@archlinux.org>
# Contributor: Christian Heusel <gromit@archlinux.org>
# Contributor: Lucas Werkmeister <mail@lucaswerkmeister.de>
# Contributor: Dave Reisner <dreisner@archlinux.org>

pkgname=mkosi-git
_pkgname=mkosi
pkgver=26.r64.gae2d88d
pkgrel=1
pkgdesc="Build Legacy-Free OS Images"
arch=(any)
url="https://github.com/systemd/mkosi"
license=(LGPL-2.1-or-later)
provides=(mkosi)
conflicts=(mkosi)
depends=(
  python
  python-argcomplete
  sh
  systemd
)
makedepends=(
  git
  pandoc-cli
  python-build
  python-installer
  python-setuptools
  python-setuptools-scm
  python-wheel
)
checkdepends=(
  python-pytest
)
optdepends=(
  'acl: for removing directories created by mkosi'
  'apt: for creating Debian and Ubuntu images'
  'btrfs-progs: raw_btrfs and subvolume output formats'
  'cpio: for cpio output format'
  'debian-archive-keyring: build Debian images'
  'dnf: for creating CentOS, Fedora, OpenMandriva, Mageia and OpenSUSE images'
  'dosfstools: for FAT support'
  'e2fsprogs: for ext2/3/4 support'
  'edk2-ovmf: for running bootable images using QEMU'
  'erofs-utils: for EROFS support'
  'gnupg: for signing image checksums'
  'kmod: for images using Linux kernels'
  'mtools: for FAT support'
  'openssl: for UEFI SecureBoot'
  'python-pefile: for bootable images'
  'qemu: for running bootable images using QEMU'
  'sbsigntools: for UEFI SecureBoot'
  'socat: for running the "mkosi ssh" subcommand'
  'squashfs-tools: for squashfs support'
  'swtpm: for adding software TPM when running bootable images using QEMU'
  'systemd-ukify: for Unified Kernel Image (UKI) support'
  'tar: for tar output format and Debian or Ubuntu images'
  'ubuntu-keyring: for building Ubuntu images'
  'xfsprogs: for XFS support'
  'xz: for compressing images with xz'
  'zstd: for compressing images with zstd'
  'zypper: for creating OpenSUSE images'
)
source=(
  "git+$url.git"
  $_pkgname.tmpfiles
)
sha512sums=('SKIP'
            '1e50a3007aa3bf8c11998024823717557e911add5f9a6da923584ef9015dc6f1dc5b9ff0333396986a750a67bd4e6947fed88f12d32a9f987cd47902646d23ee')
b2sums=('SKIP'
        'b6a61967ca888d182c59fbecde7cafdd69598e2146dcb5fbcc5b11c5d90bc7626e452805fa2f68f5a53a9bbe2a0f011f869cfb194ba503474cd9eebbd223a71d')

pkgver() {
  git -C "${_pkgname}" describe --long --abbrev=7 | sed 's/^v//' | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}

build() {
  cd $_pkgname
  python -m build --wheel --no-isolation
  for manpage in mkosi-addon.1.md  mkosi-initrd.1.md  mkosi-sandbox.1.md  mkosi.1.md  mkosi.news.7.md; do
    pandoc -t man -s -o "$_pkgname/resources/man/${manpage%.md}" "$_pkgname/resources/man/${manpage}"
  done
}

check() {
  cd $_pkgname
  pytest -vv
}

package() {
  cd $_pkgname
  python -m installer --destdir="$pkgdir" dist/*.whl

  # add kernel-install integration
  install -vDm 755 kernel-install/50-$_pkgname.install -t "$pkgdir/usr/lib/kernel/install.d/"

  # NOTE: mkosi automatically uses the mkosi-initrd integration from Python's site-packages
  # distribution overrides can be added below /usr/lib/mkosi-initrd
  # user overrides can be added below /etc/mkosi-initrd
  install -vdm 755 "$pkgdir/etc/mkosi-initrd"
  install -vDm 644 ../$_pkgname.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"

  install -vDm 644 $_pkgname/resources/man/*.1 -t "$pkgdir/usr/share/man/man1/"
  install -vDm 644 $_pkgname/resources/man/*.7 -t "$pkgdir/usr/share/man/man7/"
  install -vDm 644 docs/*.md {NEWS,README}.md -t "$pkgdir/usr/share/doc/$pkgname/"


  python -m mkosi completion bash | install -vDm 644 /dev/stdin "$pkgdir/usr/share/bash-completion/completions/mkosi"
  python -m mkosi completion fish | install -vDm 644 /dev/stdin "$pkgdir/usr/share/fish/vendor_completions.d/mkosi.fish"
  python -m mkosi completion zsh  | install -vDm 644 /dev/stdin "$pkgdir/usr/share/zsh/site-functions/_mkosi"
}
openSUSE Build Service is sponsored by