feat(anaconda): integrate anaconda installer with openbox and add licensing documentation
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.
This commit is contained in:
@@ -13,18 +13,25 @@ arch=('x86_64')
|
||||
url="https://github.com/rhinstaller/anaconda"
|
||||
license=('GPL-2.0-or-later')
|
||||
depends=('gtk3' 'glib2' 'pango' 'gdk-pixbuf2' 'python-gobject')
|
||||
# NB : pas de 'glade' — on désactive le module Glade (catalogue pour le designer,
|
||||
# inutile au runtime). Sur Arch le paquet s'appelle 'glade' (pas 'gladeui').
|
||||
# glib2-devel : fournit gdbus-codegen / glib-mkenums / glib-genmarshal (outils
|
||||
# de codegen GLib, scindés de glib2 sur Arch). Indispensable au build des widgets.
|
||||
makedepends=('autoconf' 'automake' 'libtool' 'gettext' 'intltool'
|
||||
'gobject-introspection' 'gtk-doc' 'gladeui' 'python')
|
||||
'gobject-introspection' 'gtk-doc' 'glib2-devel' 'python')
|
||||
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/widgets"
|
||||
# Glade désactivé : le flag doit être posé À LA FOIS pour autoreconf (variable
|
||||
# d'env lue par m4 dans configure.ac) ET pour configure (--disable-glade).
|
||||
export ANACONDA_DISABLE_GLADE=yes
|
||||
# autogen.sh : autoreconf -vfi + copie /usr/share/gettext/gettext.h dans src/.
|
||||
./autogen.sh
|
||||
./configure --prefix=/usr --libdir=/usr/lib \
|
||||
--disable-static --disable-gtk-doc --enable-introspection
|
||||
--disable-static --disable-gtk-doc --disable-glade --enable-introspection
|
||||
make
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
# ============================================================================
|
||||
pkgname=anaconda
|
||||
pkgver=45.8
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
pkgdesc="The Anaconda installer (porté sur Arch pour FWS, payload liveimg)"
|
||||
arch=('x86_64')
|
||||
url="https://github.com/rhinstaller/anaconda"
|
||||
@@ -47,10 +47,11 @@ depends=(
|
||||
'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' 'gladeui' 'python' 'gdk-pixbuf2' 'libxml2'
|
||||
'desktop-file-utils' 'glib2' 'libarchive' 'rpm-tools'
|
||||
'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')
|
||||
@@ -58,11 +59,14 @@ _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
|
||||
# --disable-glade : pas de catalogue Glade (outil de design, inutile au run).
|
||||
# ANACONDA_RELEASE=1 : release réelle, pas la date de création du tarball.
|
||||
ANACONDA_DISABLE_GLADE=yes ./configure \
|
||||
./configure \
|
||||
--prefix=/usr --libdir=/usr/lib --sysconfdir=/etc \
|
||||
--disable-glade --disable-gtk-doc ANACONDA_RELEASE=1
|
||||
make
|
||||
@@ -78,9 +82,30 @@ package() {
|
||||
"$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).
|
||||
# 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
|
||||
}
|
||||
|
||||
@@ -2,23 +2,52 @@
|
||||
# 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.
|
||||
# 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=1
|
||||
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'
|
||||
@@ -27,6 +56,8 @@ depends=(
|
||||
"${_py}-pyparted"
|
||||
"${_py}-pyudev"
|
||||
"${_py}-gobject"
|
||||
# blivet importe dasbus en dur (blivet/util.py: from dasbus.connection ...).
|
||||
"${_py}-dasbus"
|
||||
'systemd-libs'
|
||||
'util-linux'
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user