Du libre, du code, des idées, du mélange d’ArraKISS…

De l’épice pour la pensée

Depuis la publication d'isotop, je me dis que ça serait intéressant d'expliquer un peu comment cette "non-distribution" est faîte. Vous allez, voir, c'est enfantin.
Je vais décrire la procédure en détaillant les commandes utilisées, sachant qu'en réalité tout ceci est mis dans des scripts pour se simplifier la vie.

Isotop n'est qu'une OpenBSD personnalisée. Pour ça, on récupère d'abord une image d'installation iso depuis un miroir.

ftp -o install6.2.iso https://ftp.fr.openbsd.org/pub/OpenBSD/6.2/amd64/install62.iso

Ensuite, on décompresse cette iso pour pouvoir modifier son contenu :

    mkdir -p loopdir
    mkdir -p ./install6.2
    if [ "$(uname)" = "OpenBSD" ]; then
        vnconfig vnd0 install6.2.iso
        mount -t cd9660 /dev/vnd0c loopdir/
        cp -r loopdir/* ./install6.2
        umount loopdir/
        vnconfig -u vnd0
    else
        mount -o loop install6.2.iso loopdir
        cp -r loopdir/* ./install6.2
        umount loopdir/
    fi
    rm -r loopdir/

Selon si on est sous OpenBSD ou Linux, la procédure n'est pas tout à fait la même. Ces commandes n'ont rien de magique, on trouve facilement sur le web comment extraire une iso.

Nous voilà donc avec un dossier install6.2 qui contient tout le nécessaire pour installer OpenBSD. C'est maintenant que la personnalisation commence. On peut configurer l'installation grâce à 3 mécanismes :

  • Intégrer une archive siteXX.tgz (remplacez XX par le numéro de version, ici 62) qui sera décompressée à l'installation sur la racine /. Cela permet d'intégrer les configurations voulues. Par exemple, le fichier /etc/doas.conf personnalisé, ou encore un dossier /etc/skel qui contient tout ce qui sera copié dans le dossier personnel d'un nouvel utilisateur (langue, profil firefox...)).
  • Ajouter un script "install.site" dans cette archive. ce dernier sera exécuté juste à la fin de l'installation. On peut y mettre un miroir pour récupérer les paquets, activer par défaut certains services comme le résolveur unbound...
  • Ajouter un script "etc/rc.firsttime" qui sera lancé au premier démarrage de la machine. Ce dernier me sert principalement à installer les paquets de logiciels.

C'est parti, on crée un dossier "site" dans lequel on va mettre tout notre bazar :

mkdir site

Allez, pour l'exemple, je vais ajouter un set d'icônes dedans :

mkdir -p site/usr/local/share/icons
cp -r /usr/local/share/icons/Arc site/usr/local/share/icons

J'y met aussi un script "install.site" qui va activer la gestion d'énergie juste après l'installation :

echo "rcctl enable apmd" >> site/install.site
echo "rcctl set apmd status on" >> site/install.site
echo "rcctl set apmd flags -A">> site/install.site
chmod +x site/install.site

Enfin, je mets dans le script lancé au premier démarrage de quoi installer un environnement de bureau :

echo "pkg_add xfce" >> site/etc/rc.firsttime
chmod +x site/etc/rc.firsttime

Allez zou, on met ces configurations dans une archive comme prévu :

cd site
tar cvzf ../site62.tgz *

Ne reste plus qu'à copier cette archive dans l'iso extraite :

cp site62.tgz install6.2/6.2/amd64/site62.tgz 

Lors de l'installation, il sera proposé d'installer le set site62 afin de profiter de cette configuration.

Enfin, on reconstruit l'iso. Remplacez genisoimage par mkisofs selon ce qui est disponible sur votre système :

genisoimage -r -no-emul-boot -b 6.2/amd64/cdbr -c boot.catalog -o ./CustomOBSD.iso install6.2 

Et voilà ;)
Fastoche non ?

Pour plus de détails ou d'idées, je vous invite à aller regarder le code source d'isotop, en particulier les scripts qui servent à la génération des images. Ces derniers permettent notamment de générer une iso personnalisée d'OpenBSD même à partir d'un sysètme Linux.

Première mise à jour pour isotop, l'OpenBSD personnalisée et préparée pour une utilisation bureau.

Parmi les changements effectués, vous remarquerez que :

  • Le tkmenu comprte des entrées vers les outils relatifs à isotop : mise à jour, gestion des paquets...
  • L'outil OPaMa pour gérer les paquets est inclus
  • Les divers outils livrés avec xfce sont triés sur le volet. Cela entraîne le remplacement de mpd/xfmpc par deadbeef, parole a disparu.
  • Un lecteur PDF plus "commun" que mupdf est intégré.
  • La gestion des traductions est prêt et plus pratique à modifier pour ajouter d'autres langues (seulement le français et l'anglais sont gérés pour l'instant).
  • Lorsqu'une imprimante est branchée, elle peut être configurée par simple utilisateur (le module ulpt est désactivé au premier démarrage, cela nécessite un redémarrage. Si vous voulez installer une imprimante, redémarrez le pc juste après l'installation ;) )
  • Quelques jeux ont été ajoutés. La ludothèque d'OpenBSD est très fournie oO .
  • Compression des images au format xz pour limiter le temps de transfert.

Tous les liens sont sur la page officielle, je recopie ici uniquement les magnets à ouvrir avec un client bittorrent (avec trackers publics)

magnet:?xt=urn:btih:45e36d480c6e813e822fbd36f454799a0bde686d&dn=isotop-0.2.1-amd64-full.fs.xz&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:8d86b6c82bec186da5ce800c6497ec04d9d42f59&dn=isotop-0.2.1-amd64-full.iso.xz&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:6523d3c7a9923ec0b78d12501afffe05c6960e95&dn=isotop-0.2.1-amd64-netinst.fs.xz&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:81d3582a2988699746ea896b96b2a596d99ddb08&dn=isotop-0.2.1-amd64-netinst.iso.xz&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:42f765c3d53ee04b2a85b694fa9b0a5994885d91&dn=isotop-0.2.1-i386-full.fs.xz&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:f28fad02eb0bcf4d155930f6374243674c857418&dn=isotop-0.2.1-i386-full.iso.xz&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:27c53186b29bd785ebbf6ff48563191f2a2014a9&dn=isotop-0.2.1-i386-netinst.fs.xz&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:fc9fc6b8f57cf9773071eb8deda187eb59cdbd8d&dn=isotop-0.2.1-i386-netinst.iso.xz&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337

Pour finir, je laisse ici une petite vidéo d'une installation filmée, en 15 minutes 34 secondes chrono, pour fred' ;)

Sur les longs documents, je souhaitais faire une barre de progression en haut ou fin de page à la place de la numérotation de page classique.
J'ai enfin trouvé, donc je met le bout de code ici pour ceux que ça intéresse.

Il faut inclure les packages "calc" et "lastpage".

Voici le bout de code :

% progress bar instead of page number
\newcounter{progress}               % progression dans le document
\newlength{\pbarlength}              % Longueur de la barre de progression
\newcounter{lastpagenumber}   % On enregistre le numéro de la dernière page
\setcounter{lastpagenumber}{\getrefbykeydefault{LastPage}{page}{1}}
\newcommand{\calcprogress}{
		\setcounter{progress}{\value{page} * 100 / \value{lastpagenumber}}  % On calcule la progression
		\setlength{\pbarlength}{\textwidth / 100 * \value{progress}} % on en déduit une longueur de barre
		\rule{\pbarlength}{0.5pt} % La barre
}

Mettez la commande "\calprogress" dans le "\cfoot" si vous utilisez le package "fancyhdr" et vous êtes bons.

Bien sûr, il est possible de remplacer "\rule" par à peu près n'importe quoi :)

Par exemple, sur le futur manuel pour s'auto-héberger, ça sera une petite image qui se déplacera :)

OPaMa est un gestionnaire de paquets pour OpenBSD. qui utilise les outils pkg_*.

Comment ça, ça ne sert à rien :D ?
Peut-être pas à tout le monde, mais j'avais envie, voilà. :P

Il permet notamment de :

  • Chercher des paquets.
  • Obtenir la description d'un paquet.
  • Lister les paquets installés.
  • Installer/Désinstaller un paquet.
  • Supprimer les paquets inutiles.
  • Modifier le dépôt utilisé (fichier /etc/installurl).

Vous le trouverez sur framagit : https://framagit.org/Thuban/opama.

aperçu d'opama 1
aperçu d'opama 2
aperçu d'opama 3
aperçu d'opama 4
aperçu d'opama 5

C'est avec joie que je vous annonce la publication d'isotop en version 0.2.

Pour rappel, il s'agit d'une non-distribution dont l'objectif est faciliter la découverte et la prise en main d'OpenBSD. En effet, ce système peut tout aussi bien servir en "desktop" qu'en serveur. Isotop n'est finalement qu'une OpenBSD pré-configurée.

Cette nouvelle version apporte quelques changements faits par les 3hg :

  • Le bureau privilégie XFCE plutôt que fluxbox.
  • Des outils tels que le tkmenu sont disponibles et faciles à retrouver.
  • Script de mise à jour inclus et corrigé.
  • Passage à OpenBSD 6.2.
  • Thèmes plus jolis (merci arpi :) ).
  • Support des architectures amd64 et i386.
  • Génération d'images d'installation hors-ligne, plus légères. Des améliorations pour avoir des images encore plus légères sont prévues.
  • Tout ceci prépare le terrain pour davantage d'évolution et d'améliorations à l'avenir : documentation complète, utilisation de paquets pour les outils inclus...

Malgré les nombreux tests (merci Starsheep), il peut rester des soucis qu'il ne faut pas hésiter à rapporter. Une OpenBSD personnalisée, c'est peu fréquent et j'ai pu laisser passer des boulettes.

Tous les détails (téléchargement, installation) sont disponibles sur la page du projet. N'hésitez plus, tentez le coup ;)

×

⚠ Il se peut que votre navigateur ne respecte pas votre vie privee.