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:
+16
-1
@@ -1,7 +1,22 @@
|
|||||||
===============
|
=======
|
||||||
|
Authors
|
||||||
|
=======
|
||||||
|
|
||||||
|
FWS
|
||||||
|
===
|
||||||
|
|
||||||
|
FWS is a fork of archiso. The FWS-specific work (build chain, installer
|
||||||
|
integration, package recipes under ``pkgbuilds/``) is © the FWS contributors,
|
||||||
|
distributed under ``GPL-3.0-or-later`` (see ``COPYRIGHT.md``).
|
||||||
|
|
||||||
|
* FWS contributors <suzuku295@gmail.com>
|
||||||
|
|
||||||
Archiso Authors
|
Archiso Authors
|
||||||
===============
|
===============
|
||||||
|
|
||||||
|
The build system (``mkarchiso``, profiles, man pages) derives from archiso and
|
||||||
|
retains the authorship of its original contributors:
|
||||||
|
|
||||||
* 2hexed <2hexed@protonmail.com>
|
* 2hexed <2hexed@protonmail.com>
|
||||||
* Aaron Griffin <aaron@archlinux.org>
|
* Aaron Griffin <aaron@archlinux.org>
|
||||||
* Adam Purkrt <adam@purkrt.net>
|
* Adam Purkrt <adam@purkrt.net>
|
||||||
|
|||||||
+23
-2
@@ -2,8 +2,29 @@
|
|||||||
Contributing
|
Contributing
|
||||||
============
|
============
|
||||||
|
|
||||||
These are the contribution guidelines for archiso.
|
These are the contribution guidelines for **FWS**. FWS is a fork of `archiso
|
||||||
All contributions fall under the terms of the GPL-3.0-or-later (see `LICENSE <LICENSE>`_).
|
<https://gitlab.archlinux.org/archlinux/archiso>`_; the build-system parts
|
||||||
|
derived from archiso retain their original history and authorship (see
|
||||||
|
`AUTHORS.rst <AUTHORS.rst>`_).
|
||||||
|
|
||||||
|
Licensing of contributions (inbound = outbound)
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
All contributions are accepted under the **same license as the project**,
|
||||||
|
``GPL-3.0-or-later`` (see `LICENSE <LICENSE>`_). By submitting a contribution you
|
||||||
|
agree that it is licensed under ``GPL-3.0-or-later`` and that you have the right
|
||||||
|
to submit it under that license.
|
||||||
|
|
||||||
|
Sign off every commit to certify the `Developer Certificate of Origin 1.1
|
||||||
|
<https://developercertificate.org/>`_:
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
git commit --signoff # adds a "Signed-off-by: Name <email>" trailer
|
||||||
|
|
||||||
|
For the full licensing, third-party and trademark picture, see `LICENSING.md
|
||||||
|
<LICENSING.md>`_, `THIRD-PARTY-LICENSES.md <THIRD-PARTY-LICENSES.md>`_ and
|
||||||
|
`TRADEMARKS.md <TRADEMARKS.md>`_.
|
||||||
|
|
||||||
Editorconfig
|
Editorconfig
|
||||||
============
|
============
|
||||||
|
|||||||
@@ -278,6 +278,21 @@ cat ~/.local/share/hyprland/hyprland.log
|
|||||||
|
|
||||||
FWS est un fork de **[archiso](https://gitlab.archlinux.org/archlinux/archiso)** (Arch Linux), redistribué sous les termes de la **GPL-3.0-or-later**.
|
FWS est un fork de **[archiso](https://gitlab.archlinux.org/archlinux/archiso)** (Arch Linux), redistribué sous les termes de la **GPL-3.0-or-later**.
|
||||||
|
|
||||||
Voir [LICENSE](LICENSE) pour le texte complet, et [AUTHORS.rst](AUTHORS.rst) pour la liste des auteurs originaux d'archiso.
|
|
||||||
|
|
||||||
Les modifications spécifiques à FWS (scripts `build.sh`, `setup-aur.sh`, overlay `configs/baseline/`, intégration de l'installateur + Xorg autostart, chaîne de build WSL) sont également distribuées sous GPL-3.0-or-later.
|
Les modifications spécifiques à FWS (scripts `build.sh`, `setup-aur.sh`, overlay `configs/baseline/`, intégration de l'installateur + Xorg autostart, chaîne de build WSL) sont également distribuées sous GPL-3.0-or-later.
|
||||||
|
|
||||||
|
### Base légale complète
|
||||||
|
|
||||||
|
| Document | Objet |
|
||||||
|
|---|---|
|
||||||
|
| [LICENSE](LICENSE) | Texte intégral GPL-3.0-or-later |
|
||||||
|
| [COPYRIGHT.md](COPYRIGHT.md) | Droits d'auteur du dépôt & périmètre |
|
||||||
|
| [LICENSING.md](LICENSING.md) | Politique de licences, **offre écrite GPL (sources)**, checklist release |
|
||||||
|
| [THIRD-PARTY-LICENSES.md](THIRD-PARTY-LICENSES.md) | Inventaire des logiciels tiers (Anaconda, deps…) & **analyse de compatibilité** |
|
||||||
|
| [TRADEMARKS.md](TRADEMARKS.md) | Marques & **non-affiliation** (Arch, Red Hat, Fedora, Anaconda, Windows…) |
|
||||||
|
| [NOTICE](NOTICE) | Attributions Apache/MIT/BSD |
|
||||||
|
| [AUTHORS.rst](AUTHORS.rst) | Auteurs FWS + auteurs originaux d'archiso |
|
||||||
|
| [CONTRIBUTING.rst](CONTRIBUTING.rst) | Contribuer (inbound = outbound, DCO) |
|
||||||
|
|
||||||
|
> ✅ **Déjà réglé** : offre écrite GPL (URL dépôt + contact), `os-release` FWS (le live ne s'annonce plus « Arch Linux », via hook pacman) et `motd` (plus de lien `archlinux.org`).
|
||||||
|
>
|
||||||
|
> ⚠️ **Reste avant diffusion publique** (détail dans [LICENSING.md](LICENSING.md) §6) : **rendre le dépôt public** (sinon l'offre GPL n'est pas opposable), retirer le branding Red Hat/Fedora de l'UI Anaconda lors de la migration, et **trancher sur `python-iso639`** (AGPL-3.0-only). **Ces documents ne sont pas un avis juridique.**
|
||||||
|
|||||||
@@ -6,8 +6,50 @@ fi
|
|||||||
|
|
||||||
xsetroot -solid "#1a1a2e"
|
xsetroot -solid "#1a1a2e"
|
||||||
|
|
||||||
# TODO (chantier C) : lancer l'installateur graphique Anaconda dans cette session.
|
# Openbox en arrière-plan : gestionnaire de fenêtres pour l'installateur.
|
||||||
# Calamares a été retiré (commit 05ae9c3) et son remplacement Anaconda n'est pas
|
openbox &
|
||||||
# encore câblé. En attendant, on lance Openbox au premier plan : le serveur X a
|
_OB_PID=$!
|
||||||
# ainsi un client (sinon startx rendrait la main et X se fermerait aussitôt).
|
|
||||||
|
# Chantier C : lance l'installateur Anaconda en mode live s'il est présent.
|
||||||
|
# « liveinst » re-exécute anaconda (ici on est déjà root → pas de pkexec/polkit).
|
||||||
|
#
|
||||||
|
# DEBUG (premier run réel) : on CAPTURE stdout+stderr — un plantage d'import
|
||||||
|
# précoce de Python n'apparaît QUE là, pas dans /tmp/anaconda.log — et, si
|
||||||
|
# liveinst quitte en erreur, on regroupe tous les logs Anaconda et on les AFFICHE
|
||||||
|
# (zenity) au lieu de laisser startx rendre la main → .zprofile relancerait X en
|
||||||
|
# boucle (symptôme « fond bleu qui clignote/reboote »). On NE rend jamais la main
|
||||||
|
# à startx : on reste sur Openbox pour lire les logs / rebooter proprement.
|
||||||
|
if command -v liveinst >/dev/null 2>&1; then
|
||||||
|
LIVEINST_LOG=/tmp/fws-liveinst.log
|
||||||
|
liveinst >"$LIVEINST_LOG" 2>&1
|
||||||
|
rc=$?
|
||||||
|
|
||||||
|
# ATTENTION : liveinst NE propage PAS le code de sortie d'anaconda — il
|
||||||
|
# enchaîne son propre nettoyage et sort souvent 0 même quand anaconda a
|
||||||
|
# planté. On ne se fie donc PAS à $rc : en phase debug on regroupe TOUS les
|
||||||
|
# logs et on les affiche systématiquement (zenity). Le traceback Python d'un
|
||||||
|
# crash d'import précoce n'est QUE dans $LIVEINST_LOG (stderr capturé).
|
||||||
|
DBG=/tmp/fws-debug.txt
|
||||||
|
{
|
||||||
|
echo "===== liveinst sorti (code $rc) — logs Anaconda ====="
|
||||||
|
echo
|
||||||
|
echo "########## sortie liveinst (stdout+stderr) ##########"
|
||||||
|
cat "$LIVEINST_LOG" 2>/dev/null
|
||||||
|
for f in /tmp/anaconda.log /tmp/syslog /tmp/program.log \
|
||||||
|
/tmp/storage.log /tmp/dbus.log /tmp/packaging.log /tmp/X.log; do
|
||||||
|
echo
|
||||||
|
echo "########## $f ##########"
|
||||||
|
tail -n 200 "$f" 2>/dev/null || echo "(absent)"
|
||||||
|
done
|
||||||
|
} >"$DBG" 2>&1
|
||||||
|
|
||||||
|
if command -v zenity >/dev/null 2>&1; then
|
||||||
|
zenity --text-info --title="FWS — logs Anaconda (sortie $rc)" \
|
||||||
|
--filename="$DBG" --width=1100 --height=720 2>/dev/null &
|
||||||
|
fi
|
||||||
|
|
||||||
|
wait "$_OB_PID"
|
||||||
|
else
|
||||||
|
echo "[FWS] Anaconda absent de l'ISO — à builder (setup-aur.sh) + ajouter à packages.x86_64." >&2
|
||||||
exec openbox
|
exec openbox
|
||||||
|
fi
|
||||||
|
|||||||
@@ -93,6 +93,8 @@ xorg-xrandr
|
|||||||
xorg-xsetroot
|
xorg-xsetroot
|
||||||
openbox
|
openbox
|
||||||
ttf-dejavu
|
ttf-dejavu
|
||||||
|
# Terminal X : debug de l'installateur + entrée « Terminals » du menu Openbox.
|
||||||
|
xterm
|
||||||
|
|
||||||
# --- Agents VM (pratique pour tester l'ISO) ---
|
# --- Agents VM (pratique pour tester l'ISO) ---
|
||||||
qemu-guest-agent
|
qemu-guest-agent
|
||||||
@@ -101,3 +103,8 @@ open-vm-tools
|
|||||||
|
|
||||||
# --- FWS (fws-local) ---
|
# --- FWS (fws-local) ---
|
||||||
winboat-bin
|
winboat-bin
|
||||||
|
|
||||||
|
# --- Installateur Anaconda (fws-local) ---
|
||||||
|
# 'anaconda' tire automatiquement anaconda-widgets + toutes ses dépendances
|
||||||
|
# (python-blivet, pykickstart, libreport, gtk3, NetworkManager…).
|
||||||
|
anaconda
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
To install [38;2;23;147;209mFWS[0m follow the installation guide:
|
Welcome to [38;2;23;147;209mFWS[0m live media.
|
||||||
https://wiki.archlinux.org/title/Installation_guide
|
|
||||||
|
To install FWS, see the project page:
|
||||||
|
https://github.com/You-re-like-Windows-a-bitch/fws
|
||||||
|
|
||||||
For Wi-Fi, authenticate to the wireless network using the [35miwctl[0m utility.
|
For Wi-Fi, authenticate to the wireless network using the [35miwctl[0m utility.
|
||||||
For mobile broadband (WWAN) modems, connect with the [35mmmcli[0m utility.
|
For mobile broadband (WWAN) modems, connect with the [35mmmcli[0m utility.
|
||||||
Ethernet, WLAN and WWAN interfaces using DHCP should work automatically.
|
Ethernet, WLAN and WWAN interfaces using DHCP should work automatically.
|
||||||
|
|
||||||
After connecting to the internet, the installation guide can be accessed
|
|
||||||
via the convenience script [35mInstallation_guide[0m.
|
|
||||||
|
|
||||||
[41m [41m [41m [40m [44m [40m [41m [46m [45m [41m [46m [43m [41m [44m [45m [40m [44m [40m [41m [44m [41m [41m [46m [42m [41m [44m [43m [41m [45m [40m [40m [44m [40m [41m [44m [42m [41m [46m [44m [41m [46m [47m [0m
|
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
status=$?
|
# NB : ce fichier est SOURCÉ par le shell de login (zsh sur le live), pas exécuté
|
||||||
if [ "${status}" -eq 0 ]; then
|
# → le shebang est ignoré. En zsh « status » est une variable spéciale EN LECTURE
|
||||||
|
# SEULE (alias de $?) : s'y affecter casse (« read-only variable: status »).
|
||||||
|
# On utilise donc un autre nom.
|
||||||
|
_fastfetch_rc=$?
|
||||||
|
if [ "${_fastfetch_rc}" -eq 0 ]; then
|
||||||
fastfetch
|
fastfetch
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -100,3 +100,8 @@ open-vm-tools
|
|||||||
|
|
||||||
# --- FWS (fws-local) ---
|
# --- FWS (fws-local) ---
|
||||||
winboat-bin
|
winboat-bin
|
||||||
|
|
||||||
|
# --- Installateur Anaconda (fws-local) ---
|
||||||
|
# 'anaconda' tire automatiquement anaconda-widgets + toutes ses dépendances
|
||||||
|
# (python-blivet, pykickstart, libreport, gtk3, NetworkManager…).
|
||||||
|
anaconda
|
||||||
|
|||||||
@@ -13,18 +13,25 @@ arch=('x86_64')
|
|||||||
url="https://github.com/rhinstaller/anaconda"
|
url="https://github.com/rhinstaller/anaconda"
|
||||||
license=('GPL-2.0-or-later')
|
license=('GPL-2.0-or-later')
|
||||||
depends=('gtk3' 'glib2' 'pango' 'gdk-pixbuf2' 'python-gobject')
|
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'
|
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")
|
source=("anaconda-$pkgver.tar.gz::https://github.com/rhinstaller/anaconda/archive/refs/tags/anaconda-$pkgver.tar.gz")
|
||||||
sha256sums=('5ef1464bff7f28a4a09a821cbb0121f09ef504ec169288d742373f86807ec4ed')
|
sha256sums=('5ef1464bff7f28a4a09a821cbb0121f09ef504ec169288d742373f86807ec4ed')
|
||||||
_srcdir="anaconda-anaconda-$pkgver"
|
_srcdir="anaconda-anaconda-$pkgver"
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd "$srcdir/$_srcdir/widgets"
|
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 : autoreconf -vfi + copie /usr/share/gettext/gettext.h dans src/.
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
./configure --prefix=/usr --libdir=/usr/lib \
|
./configure --prefix=/usr --libdir=/usr/lib \
|
||||||
--disable-static --disable-gtk-doc --enable-introspection
|
--disable-static --disable-gtk-doc --disable-glade --enable-introspection
|
||||||
make
|
make
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
# ============================================================================
|
# ============================================================================
|
||||||
pkgname=anaconda
|
pkgname=anaconda
|
||||||
pkgver=45.8
|
pkgver=45.8
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc="The Anaconda installer (porté sur Arch pour FWS, payload liveimg)"
|
pkgdesc="The Anaconda installer (porté sur Arch pour FWS, payload liveimg)"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
url="https://github.com/rhinstaller/anaconda"
|
url="https://github.com/rhinstaller/anaconda"
|
||||||
@@ -47,10 +47,11 @@ depends=(
|
|||||||
'networkmanager' 'kbd' 'chrony' 'systemd' 'dbus' 'openssh' 'grub'
|
'networkmanager' 'kbd' 'chrony' 'systemd' 'dbus' 'openssh' 'grub'
|
||||||
'libpwquality' 'python-systemd' 'python-xkbregistry' 'cracklib'
|
'libpwquality' 'python-systemd' 'python-xkbregistry' 'cracklib'
|
||||||
)
|
)
|
||||||
|
# NB : pas de 'glade' — module Glade désactivé au build (cf. build()).
|
||||||
makedepends=(
|
makedepends=(
|
||||||
'autoconf' 'automake' 'libtool' 'gettext' 'intltool' 'gtk-doc'
|
'autoconf' 'automake' 'libtool' 'gettext' 'intltool' 'gtk-doc'
|
||||||
'gobject-introspection' 'gladeui' 'python' 'gdk-pixbuf2' 'libxml2'
|
'gobject-introspection' 'python' 'gdk-pixbuf2' 'libxml2'
|
||||||
'desktop-file-utils' 'glib2' 'libarchive' 'rpm-tools'
|
'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")
|
source=("anaconda-$pkgver.tar.gz::https://github.com/rhinstaller/anaconda/archive/refs/tags/anaconda-$pkgver.tar.gz")
|
||||||
sha256sums=('5ef1464bff7f28a4a09a821cbb0121f09ef504ec169288d742373f86807ec4ed')
|
sha256sums=('5ef1464bff7f28a4a09a821cbb0121f09ef504ec169288d742373f86807ec4ed')
|
||||||
@@ -58,11 +59,14 @@ _srcdir="anaconda-anaconda-$pkgver"
|
|||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd "$srcdir/$_srcdir"
|
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 : autoreconf -vfi racine + (cd widgets && ./autogen.sh).
|
||||||
./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_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 \
|
--prefix=/usr --libdir=/usr/lib --sysconfdir=/etc \
|
||||||
--disable-glade --disable-gtk-doc ANACONDA_RELEASE=1
|
--disable-glade --disable-gtk-doc ANACONDA_RELEASE=1
|
||||||
make
|
make
|
||||||
@@ -78,9 +82,30 @@ package() {
|
|||||||
"$pkgdir/usr/share/anaconda/post-scripts"
|
"$pkgdir/usr/share/anaconda/post-scripts"
|
||||||
|
|
||||||
# Fichiers widgets : fournis par le paquet anaconda-widgets → on les retire
|
# 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/libAnacondaWidgets.so*
|
||||||
rm -f "$pkgdir"/usr/lib/girepository-*/AnacondaWidgets*.typelib
|
rm -f "$pkgdir"/usr/lib/girepository-*/AnacondaWidgets*.typelib
|
||||||
rm -f "$pkgdir"/usr/lib/pkgconfig/AnacondaWidgets.pc
|
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*
|
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
|
# Dépendance de l'installateur Anaconda (rhinstaller) — couche d'abstraction
|
||||||
# de gestion du stockage (partitions, LVM, LUKS, RAID).
|
# de gestion du stockage (partitions, LVM, LUKS, RAID).
|
||||||
#
|
#
|
||||||
# VENDORISÉ depuis l'AUR (python-blivet) avec UNE seule modification FWS :
|
# VENDORISÉ depuis l'AUR (python-blivet) avec DEUX modifications 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
|
# 1. Retrait de 'libselinux' des depends. Arch n'est pas SELinux et blivet
|
||||||
# = False si absent), donc il fonctionne sans. Ça évite de tirer toute la pile
|
# importe selinux en try/except (blivet/util.py + flags.py →
|
||||||
# SELinux (libselinux/libsepol) de l'AUR juste pour une fonctionnalité inutile
|
# HAVE_SELINUX/self.selinux = False si absent), donc il fonctionne sans.
|
||||||
# sur FWS. Tout le reste est identique à l'amont.
|
# Ç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'
|
_py='python'
|
||||||
_pkg="blivet"
|
_pkg="blivet"
|
||||||
pkgname="python-${_pkg}"
|
pkgname="python-${_pkg}"
|
||||||
pkgver=3.13.2
|
pkgver=3.13.2
|
||||||
_tag="${_pkg}-${pkgver}"
|
_tag="${_pkg}-${pkgver}"
|
||||||
pkgrel=1
|
pkgrel=4
|
||||||
pkgdesc="A DBus service and python module for management of the system storage configuration (dépendance Anaconda)"
|
pkgdesc="A DBus service and python module for management of the system storage configuration (dépendance Anaconda)"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
license=('LGPL-2.1-only')
|
license=('LGPL-2.1-only')
|
||||||
depends=(
|
depends=(
|
||||||
'libblockdev'
|
'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'
|
'lsof'
|
||||||
'multipath-tools'
|
'multipath-tools'
|
||||||
'parted'
|
'parted'
|
||||||
@@ -27,6 +56,8 @@ depends=(
|
|||||||
"${_py}-pyparted"
|
"${_py}-pyparted"
|
||||||
"${_py}-pyudev"
|
"${_py}-pyudev"
|
||||||
"${_py}-gobject"
|
"${_py}-gobject"
|
||||||
|
# blivet importe dasbus en dur (blivet/util.py: from dasbus.connection ...).
|
||||||
|
"${_py}-dasbus"
|
||||||
'systemd-libs'
|
'systemd-libs'
|
||||||
'util-linux'
|
'util-linux'
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user