# Maintainer: FWS # Dépendance de l'installateur Anaconda (rhinstaller) — couche d'abstraction # de gestion du stockage (partitions, LVM, LUKS, RAID). # # VENDORISÉ depuis l'AUR (python-blivet) avec DEUX modifications FWS : # # 1. Retrait de 'libselinux' des depends. Arch n'est pas SELinux et blivet # importe selinux en try/except (blivet/util.py + flags.py → # HAVE_SELINUX/self.selinux = False si absent), donc il fonctionne sans. # Ça évite de tirer toute la pile SELinux (libselinux/libsepol) de l'AUR # juste pour une fonctionnalité inutile sur FWS. # # 2. depends COMPLÉTÉS. L'AUR ne déclare QUE 'libblockdev' → sur une vraie ISO # blivet crashe à l'import. Il lui faut en plus : # - python-libblockdev : l'OVERRIDE GObject-introspection # (gi/overrides/BlockDev.py) qui définit les helpers (plugin_specs_from_names) # ET les alias d'enum (DMTech.MAP, LoopTech, MDTech…) qu'utilise blivet. # SANS lui : « AttributeError: 'gi.repository.BlockDev' object has no # attribute 'plugin_specs_from_names' » puis « DMTech has no attribute MAP ». # C'est LA pièce maîtresse (les symboles n'existent QUE dans cet override, # pas dans le typelib ni l'amont libblockdev). # - les 11 sous-paquets plugins libblockdev-* (sur Arch ils sont SÉPARÉS du # cœur 'libblockdev') : sinon « failed to load module lvm: libbd_lvm.so.3 ». # - libbytesize : fournit le module Python 'bytesize' (blivet/size.py). # - python-dasbus : importé en dur (blivet/util.py). # # Tout le reste (code source) est identique à l'amont. _py='python' _pkg="blivet" pkgname="python-${_pkg}" pkgver=3.13.2 _tag="${_pkg}-${pkgver}" pkgrel=4 pkgdesc="A DBus service and python module for management of the system storage configuration (dépendance Anaconda)" arch=('any') license=('LGPL-2.1-only') depends=( 'libblockdev' # Override GI (gi/overrides/BlockDev.py) : helpers + alias d'enum exigés par # blivet. ABSENT du paquet 'libblockdev' → paquet séparé. Pièce maîtresse. "${_py}-libblockdev" # Plugins libblockdev : sous-paquets SÉPARÉS sur Arch (le cœur 'libblockdev' # ne fournit PAS les libbd_*.so.3). blivet les charge à l'import via # try_reinit() ; sans eux : « failed to load module lvm: libbd_lvm.so.3 ». 'libblockdev-lvm' 'libblockdev-btrfs' 'libblockdev-swap' 'libblockdev-loop' 'libblockdev-crypto' 'libblockdev-mpath' 'libblockdev-dm' 'libblockdev-mdraid' 'libblockdev-part' 'libblockdev-fs' 'libblockdev-nvme' # libbytesize fournit le module Python 'bytesize' (blivet/size.py: # « from bytesize import bytesize ») — sinon ModuleNotFoundError. 'libbytesize' 'lsof' 'multipath-tools' 'parted' "${_py}" "${_py}-six" "${_py}-pyparted" "${_py}-pyudev" "${_py}-gobject" # blivet importe dasbus en dur (blivet/util.py: from dasbus.connection ...). "${_py}-dasbus" 'systemd-libs' 'util-linux' ) makedepends=("${_py}-setuptools") url='https://github.com/storaged-project/blivet' source=("${pkgname}-${pkgver}.tar.gz::https://github.com/storaged-project/${_pkg}/archive/${_pkg}-${pkgver}.tar.gz") sha512sums=('6142ee7e25416c13d751bffab22ba287895e256611254fb87652f1005d6303df50cb116683552bbbad28b818a515e6a20f7073d313e024996a99b449c29132bf') package() { cd "${srcdir}/${_pkg}-${_tag}" "${_py}" setup.py install --root="${pkgdir}" --optimize=1 }