From a95139d6aebcef155a8d2a1314725dfa834a93c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Fri, 25 Sep 2026 23:50:38 +0200 Subject: [PATCH] =?UTF-8?q?Donner=20=C3=A0=20ces=20scripts=20un=20d=C3=A9p?= =?UTF-8?q?=C3=B4t=20qui=20dit=20ce=20qu'ils=20sont?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ces trois fichiers vivaient dans le dépôt du wiki, seuls fichiers exécutables parmi cent dix pages de documentation. Le wiki est public et sa branche main n'est pas protégée ; le serveur de l'install party en recopie deux toutes les heures et les distribue en root aux machines des participants. Un commit de documentation et un commit de code y avaient donc les mêmes conséquences, et rien ne le disait. Ils sont désormais chez eux, classés par contexte d'exécution — qui les lance, sur quelle machine, avec quels droits — et non par distribution : « poste/ » tient les trois ensemble, ce qu'impose de toute façon l'appel du relevé par install.sh, qui le cherche à côté de lui. La branche stable est ce que les machines reçoivent, main ce sur quoi on travaille. Avancer l'une sur l'autre demande d'avoir essayé sur une machine : c'est le relecteur qui manquait. L'historique des trois fichiers est conservé, depuis la migration du monorepo alpinux.site.2026 en mai. Les adresses de téléchargement de leurs en-têtes sont reprises. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01BssvzfDMeXVoUQHEcnavW7 --- README.md | 69 +++++++++++++++++++++++++++++++++++++++++++ poste/alpi-fiche.sh | 4 +-- poste/install.sh | 2 +- poste/verif-disque.sh | 2 +- 4 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..3db4829 --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +# alpinux.scripts + +Les scripts qu'Alpinux fait tourner sur des machines qui ne sont pas les +siennes. Ils sont publics parce qu'ils doivent pouvoir se télécharger sans +compte, depuis une session live, par quelqu'un qui découvre Linux le matin +même — et parce que du code qui s'exécute en root chez autrui doit pouvoir +être lu par celui qui le lance. + +La documentation, elle, vit dans le wiki : +[guide Linux Mint depuis Windows](https://wiki.alpinux.org/guides/linux-mint-depuis-windows/). + +## Ce que contient chaque dossier + +Le classement suit **qui lance le script, sur quelle machine, avec quels +droits** — c'est ce qui commande la prudence à lui appliquer. Il ne suit ni les +distributions, ni les dates : un script ne change pas de nature quand Mint +change de version. + +| Dossier | Ce qui y entre | +|---|---| +| `poste/` | Ce qui tourne sur la machine d'un participant, le plus souvent en root. Rien n'y entre sans avoir été essayé sur une vraie machine. | + +D'autres dossiers viendront — la part publiable des scripts du serveur, des +outils de bénévole sans privilège. Chacun avec sa règle, écrite ici. + +## `poste/` — trois scripts, dans cet ordre + +| Script | Quand | Ce qu'il fait | +|---|---|---| +| `verif-disque.sh` | depuis la session live, **avant** de toucher au disque | lit et affiche : partitions, Windows, BitLocker, réseau. Ne modifie rien. | +| `alpi-fiche.sh` | avant (`--check`) et après l'installation | relève la fiche matérielle, juge l'état des disques, l'envoie au serveur de l'install party s'il est joignable. | +| `install.sh` | après l'installation de Mint | post-installation : paquets, Firefox en français, GRUB. Appelle `alpi-fiche.sh` s'il le trouve. | + +**Les trois vont ensemble, dans le même dossier.** `install.sh` cherche le +relevé à côté de lui — `$(dirname "$0")/alpi-fiche.sh` — et ne le télécharge +jamais : aucun code n'est tiré du réseau pendant une installation. Un +`install.sh` téléchargé seul fonctionne, mais ne relève rien, et sans le dire. + +Sur le réseau d'une install party, le serveur les sert tous les trois : + +```bash +wget http://10.0.0.1/install.sh http://10.0.0.1/alpi-fiche.sh +chmod +x install.sh alpi-fiche.sh +sudo ./install.sh +``` + +Ailleurs, l'en-tête de chaque script donne son adresse de téléchargement. + +## `main` et `stable` + +`main` est la branche de travail. **`stable` est celle que les machines +reçoivent** : c'est elle que le serveur de l'install party recopie et +redistribue, sans que personne ne la relise au passage. + +On avance donc `stable` sur `main` quand le changement a été essayé sur une +machine — pas quand il a été écrit. Sans cette règle, un commit de vingt-deux +heures part en root sur le poste d'un inconnu avant minuit. + +```bash +git switch stable && git merge --ff-only main && git push +``` + +## Ce qui a déjà mordu + +Un fichier corrigé sur le serveur sans être poussé ici est un fichier perdu : +le serveur se resynchronise toutes les heures et rétablit cette version-ci. +C'est arrivé le 24 septembre 2026, et les correctifs ne se sont retrouvés que +parce qu'ils vivaient aussi dans le dépôt du serveur. On corrige ici, on +déploie ensuite. diff --git a/poste/alpi-fiche.sh b/poste/alpi-fiche.sh index 6b6e2ce..de4bb2e 100755 --- a/poste/alpi-fiche.sh +++ b/poste/alpi-fiche.sh @@ -1,10 +1,10 @@ #!/bin/bash # Relève la fiche d'une machine, et l'envoie au serveur de l'install party. # -# Ce script vit dans le dépôt du wiki, à côté d'install.sh : il est lu et +# Ce script vit dans alpinux.scripts, à côté d'install.sh : il est lu et # versionné comme lui, et c'est de là qu'il faut le prendre. # -# wget https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-wiki/raw/branch/main/code/linux/linux-mint/alpi-fiche.sh +# wget https://gitea.alpinux.org/alpinux.cedrica5l/alpinux.scripts/raw/branch/stable/poste/alpi-fiche.sh # chmod +x alpi-fiche.sh # sudo ./alpi-fiche.sh --check # depuis la session live, avant d'installer # sudo ./alpi-fiche.sh # après l'installation diff --git a/poste/install.sh b/poste/install.sh index 30cf719..8c6f4e8 100644 --- a/poste/install.sh +++ b/poste/install.sh @@ -26,7 +26,7 @@ fi # testé le 25/03/2026 # # utilisation -# wget https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-wiki/raw/branch/main/code/linux/linux-mint/install.sh +# wget https://gitea.alpinux.org/alpinux.cedrica5l/alpinux.scripts/raw/branch/stable/poste/install.sh # && chmod +x install.sh # && ./install.sh diff --git a/poste/verif-disque.sh b/poste/verif-disque.sh index 455bd6d..a967c11 100755 --- a/poste/verif-disque.sh +++ b/poste/verif-disque.sh @@ -3,7 +3,7 @@ # Alpinux — état des lieux d'une machine avant d'installer Linux Mint # # À lancer depuis la session live, AVANT de toucher au disque : -# wget https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-wiki/raw/branch/main/code/linux/linux-mint/verif-disque.sh +# wget https://gitea.alpinux.org/alpinux.cedrica5l/alpinux.scripts/raw/branch/stable/poste/verif-disque.sh # chmod +x verif-disque.sh # ./verif-disque.sh #