feat(pkgbuilds): add anaconda dependencies packaging

Add PKGBUILD files for four Anaconda installer dependencies:
- pykickstart: Kickstart language parser (>= 3.73)
- python-blivet: Storage management abstraction layer
- python-productmd: OS product metadata parsers
- python-requests-file: file:// URL transport adapter for requests

These packages are required by rhinstaller but absent from Arch repos and AUR.
All use manual module installation to avoid unnecessary build dependencies.

Also fix .gitignore by removing pkgbuilds/ exclusion to allow tracking these new packages.
This commit is contained in:
2026-06-17 11:15:53 +02:00
parent 2420bf2404
commit c6f066b0d9
5 changed files with 123 additions and 2 deletions
+1 -2
View File
@@ -1,5 +1,4 @@
out/ out/
local-repo/ local-repo/
configs/baseline/airootfs/etc/systemd/system/multi-user.target.wants/ configs/baseline/airootfs/etc/systemd/system/multi-user.target.wants/
configs/releng/airootfs/etc/systemd/system/multi-user.target.wants/ configs/releng/airootfs/etc/systemd/system/multi-user.target.wants/
pkgbuilds/
+28
View File
@@ -0,0 +1,28 @@
# Maintainer: FWS
# Dépendance de l'installateur Anaconda (rhinstaller) — parseur du langage
# Kickstart (Anaconda l'exige >= 3.73 ; absent des dépôts Arch et de l'AUR).
# Pur Python (setuptools, install_requires=['requests']) : on installe
# l'arborescence du module à la main pour éviter d'exiger python-build/installer.
pkgname=pykickstart
pkgver=3.74
pkgrel=1
pkgdesc="Library for manipulating kickstart files (dépendance Anaconda)"
arch=('any')
url="https://github.com/pykickstart/pykickstart"
license=('GPL-2.0-or-later')
depends=('python' 'python-requests')
_tag="r$pkgver"
source=("$pkgname-$pkgver.tar.gz::https://github.com/pykickstart/pykickstart/archive/refs/tags/$_tag.tar.gz")
sha256sums=('05b19c5af3453f90464428c418b0c79bbe0a87718d1db1812f9006ba151e5c63')
_srcdir="pykickstart-$_tag"
package() {
cd "$srcdir/$_srcdir"
local sitedir
sitedir=$(python -c 'import site; print(site.getsitepackages()[0])')
install -d "$pkgdir$sitedir"
cp -a pykickstart "$pkgdir$sitedir/pykickstart"
# -d : grave le chemin d'exécution réel dans les .pyc (pas le $pkgdir de build).
python -m compileall -q -d "$sitedir/pykickstart" "$pkgdir$sitedir/pykickstart" || true
install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
+41
View File
@@ -0,0 +1,41 @@
# 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 UNE seule modification FWS :
# 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. Tout le reste est identique à l'amont.
_py='python'
_pkg="blivet"
pkgname="python-${_pkg}"
pkgver=3.13.2
_tag="${_pkg}-${pkgver}"
pkgrel=1
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'
'lsof'
'multipath-tools'
'parted'
"${_py}"
"${_py}-six"
"${_py}-pyparted"
"${_py}-pyudev"
"${_py}-gobject"
'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
}
+28
View File
@@ -0,0 +1,28 @@
# Maintainer: FWS
# Dépendance de l'installateur Anaconda (rhinstaller) — parseur des métadonnées
# de produit/compose (.treeinfo, .discinfo). Absent des dépôts Arch et de l'AUR.
# Pur Python, stdlib uniquement (aucun install_requires) : install manuel de
# l'arborescence du module.
pkgname=python-productmd
pkgver=1.50
pkgrel=1
pkgdesc="Library providing parsers for metadata related to OS products (dépendance Anaconda)"
arch=('any')
url="https://github.com/release-engineering/productmd"
license=('LGPL-2.1-or-later')
depends=('python')
_tag="v$pkgver"
source=("$pkgname-$pkgver.tar.gz::https://github.com/release-engineering/productmd/archive/refs/tags/$_tag.tar.gz")
sha256sums=('2b780882e529cf5a26a9a7d55a269a360886bf2b50357fcca0934a9fa3437d27')
_srcdir="productmd-$pkgver"
package() {
cd "$srcdir/$_srcdir"
local sitedir
sitedir=$(python -c 'import site; print(site.getsitepackages()[0])')
install -d "$pkgdir$sitedir"
cp -a productmd "$pkgdir$sitedir/productmd"
# -d : grave le chemin d'exécution réel dans les .pyc (pas le $pkgdir de build).
python -m compileall -q -d "$sitedir/productmd" "$pkgdir$sitedir/productmd" || true
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
+25
View File
@@ -0,0 +1,25 @@
# Maintainer: FWS
# Dépendance de l'installateur Anaconda (rhinstaller) — adaptateur Requests
# pour les URL file:// (utilisé par le payload). Absent des dépôts Arch et de
# l'AUR. Module Python mono-fichier (pyproject : py-modules=["requests_file"]).
pkgname=python-requests-file
pkgver=2.1.0
pkgrel=1
pkgdesc="Transport adapter for using file:// URLs with python-requests (dépendance Anaconda)"
arch=('any')
url="https://github.com/dashea/requests-file"
license=('Apache-2.0')
depends=('python' 'python-requests')
source=("$pkgname-$pkgver.tar.gz::https://github.com/dashea/requests-file/archive/refs/tags/$pkgver.tar.gz")
sha256sums=('f5bf0a9d5a220b03ded522d0992b9c2778adaa084a8735710ad66f663fd91c6b')
_srcdir="requests-file-$pkgver"
package() {
cd "$srcdir/$_srcdir"
local sitedir
sitedir=$(python -c 'import site; print(site.getsitepackages()[0])')
# Module mono-fichier (pas de package dir) → on installe requests_file.py seul.
install -Dm644 requests_file.py "$pkgdir$sitedir/requests_file.py"
python -m compileall -q -d "$sitedir" "$pkgdir$sitedir/requests_file.py" || true
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}