# Maintainer: FWS # ============================================================================ # anaconda — l'installateur Fedora (rhinstaller) PORTÉ sur Arch pour FWS. # Build autotools : ./autogen.sh && ./configure && make && make install # (le source compile aussi widgets/ via AC_CONFIG_SUBDIRS → on retire ces # fichiers en package(), ils sont fournis par le paquet anaconda-widgets). # # ⚠️ SCAFFOLD À ITÉRER : ce PKGBUILD est un point de départ fidèle au spec # amont, mais Anaconda est profondément couplé à Fedora. Il faudra très # probablement itérer sur Arch RÉEL (via ./setup-aur.sh) pour : # - des BuildRequires manquants au configure, # - des chemins/macros Fedora (systemd-rpm-macros, find_lang…), # - la compat Python 3.14 d'Arch (Anaconda vise le Python de Fedora). # # DÉVIATIONS FWS vs Requires du spec (justifiées) : # - RETIRÉS car payload liveimg (jamais le payload DNF) : python3-libdnf5, # python3-rpm. → cf. verdict « drop DNF » (libdnf5 importé seulement dans # dnf_manager.py, chemin non pris avec liveimg). # - RETIRÉ libselinux : Arch n'est pas SELinux (blivet/anaconda gèrent son # absence). - RETIRÉS Fedora-only / N/A archiso : subscription-manager, # s390utils-*, crypto-policies(-scripts), glibc-langpack-*, dracut-network, # teamd/NetworkManager-team, flatpak(-libs). - grub2-common → grub (Arch). # - RISQUE connu : python3-crypt-r (module `crypt` retiré de Python ≥ 3.13) # n'a peut-être pas d'équivalent Arch → à packager si l'import casse. # ============================================================================ pkgname=anaconda pkgver=45.8 pkgrel=2 pkgdesc="The Anaconda installer (porté sur Arch pour FWS, payload liveimg)" arch=('x86_64') url="https://github.com/rhinstaller/anaconda" license=('GPL-2.0-or-later') depends=( # — interface & widgets — 'anaconda-widgets' 'gtk3' 'python-gobject' 'gsettings-desktop-schemas' 'adwaita-icon-theme' 'librsvg' 'nm-connection-editor' # — cœur Python Anaconda — 'python' 'python-meh' 'python-simpleline' 'pykickstart' 'python-dasbus' 'python-productmd' 'python-pid' 'python-langtable' 'python-iso639' 'python-requests' 'python-requests-file' 'python-requests-ftp' # — stockage — 'python-blivet' 'libblockdev' 'python-pyparted' 'parted' 'util-linux' 'lvm2' 'cryptsetup' 'mdadm' 'dosfstools' 'e2fsprogs' 'xfsprogs' 'btrfs-progs' # — rapport de crash (python-meh importe `report` en dur) — 'libreport' # — système / réseau / boot — 'networkmanager' 'kbd' 'chrony' 'systemd' 'dbus' 'openssh' 'grub' 'libpwquality' 'python-systemd' 'python-xkbregistry' 'cracklib' ) # NB : pas de 'glade' — module Glade désactivé au build (cf. build()). makedepends=( 'autoconf' 'automake' 'libtool' 'gettext' 'intltool' 'gtk-doc' 'gobject-introspection' 'python' 'gdk-pixbuf2' 'libxml2' 'desktop-file-utils' 'glib2-devel' 'libarchive' 'rpm-tools' ) source=("anaconda-$pkgver.tar.gz::https://github.com/rhinstaller/anaconda/archive/refs/tags/anaconda-$pkgver.tar.gz") sha256sums=('5ef1464bff7f28a4a09a821cbb0121f09ef504ec169288d742373f86807ec4ed') _srcdir="anaconda-anaconda-$pkgver" build() { cd "$srcdir/$_srcdir" # Glade désactivé (catalogue designer, inutile au runtime) → pas de dép glade. # La variable d'env doit être posée AVANT autogen.sh (lue par m4 à l'autoreconf) # EN PLUS du flag --disable-glade au configure. export ANACONDA_DISABLE_GLADE=yes # autogen.sh : autoreconf -vfi racine + (cd widgets && ./autogen.sh). ./autogen.sh # ANACONDA_RELEASE=1 : release réelle, pas la date de création du tarball. ./configure \ --prefix=/usr --libdir=/usr/lib --sysconfdir=/etc \ --disable-glade --disable-gtk-doc ANACONDA_RELEASE=1 make } package() { cd "$srcdir/$_srcdir" make DESTDIR="$pkgdir" install find "$pkgdir" -name '*.la' -delete # Répertoires attendus par Anaconda (créés vides par le spec). install -d "$pkgdir/usr/share/anaconda/addons" \ "$pkgdir/usr/share/anaconda/post-scripts" # Fichiers widgets : fournis par le paquet anaconda-widgets → on les retire # ici (le build principal recompile widgets/ via AC_CONFIG_SUBDIRS) pour # éviter le conflit de fichiers à l'install. On enlève TOUT l'empreinte # widgets : lib, typelib, pkgconfig, headers, .gir, doc, override gi. rm -f "$pkgdir"/usr/lib/libAnacondaWidgets.so* rm -f "$pkgdir"/usr/lib/girepository-*/AnacondaWidgets*.typelib rm -f "$pkgdir"/usr/lib/pkgconfig/AnacondaWidgets.pc rm -rf "$pkgdir"/usr/include/AnacondaWidgets rm -f "$pkgdir"/usr/share/gir-1.0/AnacondaWidgets*.gir rm -rf "$pkgdir"/usr/share/gtk-doc/html/AnacondaWidgets rm -f "$pkgdir"/usr/lib/python*/site-packages/gi/overrides/AnacondaWidgets* # interactive-defaults.ks : FWS le fournit via l'overlay airootfs # (configs/*/airootfs/usr/share/anaconda/) avec le payload liveimg. mkarchiso # copie l'overlay AVANT pacstrap → si le paquet livrait aussi ce fichier, pacman # planterait (« exists in filesystem »). On retire donc la version amont : le # fichier de l'overlay reste la seule à ce chemin, et anaconda le lit au runtime. rm -f "$pkgdir"/usr/share/anaconda/interactive-defaults.ks # usr-merge Arch : /usr/sbin est un LIEN → /usr/bin. Anaconda installe dans # /usr/sbin (vrai dossier sur Fedora) → conflit avec le paquet 'filesystem'. # On rapatrie le contenu dans /usr/bin et on supprime le dossier sbin. if [ -d "$pkgdir/usr/sbin" ] && [ ! -L "$pkgdir/usr/sbin" ]; then install -d "$pkgdir/usr/bin" cp -aT "$pkgdir/usr/sbin" "$pkgdir/usr/bin" rm -rf "$pkgdir/usr/sbin" fi }