92bae9e4a6
Add Anaconda installer integration to FWS live environment: - Implement Anaconda launcher in .xinitrc with comprehensive error logging and debugging support - Add anaconda and anaconda-widgets packages to baseline and releng ISO configs - Fix anaconda-widgets PKGBUILD: replace gladeui with glib2-devel, disable Glade module - Update anaconda PKGBUILD with improved dependencies and build configuration - Add python-blivet PKGBUILD with detailed dependency documentation Enhance documentation and branding: - Expand AUTHORS.rst to clarify FWS vs archiso authorship and licensing - Update CONTRIBUTING.rst with inbound=outbound licensing policy and DCO requirements - Extend README.md with comprehensive legal basis table and licensing checklist - Remove Arch Linux references from MOTD and update to FWS GitHub project page - Fix fastfetch.sh to avoid read-only variable conflict in zsh - Add xterm to packages for installer debugging All changes maintain GPL-3.0-or-later compliance and improve GPL offer transparency.
112 lines
5.6 KiB
Bash
112 lines
5.6 KiB
Bash
# 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
|
|
}
|