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

De l’épice pour la pensée

Qui dit nouvelle version d'OpenBSD dit nouvelle version d'isotop.
Pour les bavards du fond, isotop est une OpenBSD "simplifiée" qui permet d'avoir rapidement un environnement de travail sur un pc de bureau pour découvrir ce système. Autant que possible, les outils de base dans OpenBSD sont utilisés, et sont accompagnés par quelques scripts qui se veulent aussi légers que possible. Une série de programmes courants sont présents, comme par exemple la suite bureautique libreoffice ou encore le navigateur Firefox.
L'objectif d'isotop n'est pas d'être la plus rapide ni proposer les programmes les plus récents. Je souhaite faciliter l'accès à ce système réputé robuste et sûr, ce qui n'est pas une mince affaire de nos jours.

Pour récupérer la dernière version, vous pouvez lire la page de téléchargement ou bien la suite :

Cliquez sur un des magnets suivants :

Ou alors, les copains hébergent les isos sur leurs serveurs :

Outre les améliorations déjà présentes dans OpenBSD 6.3, on pourra entre autres noter les points suivants dans isotop :

  • Xenodm, le gestionnaire de connexion est plus joli.
  • Un outil pour configurer Xenodm est disponible. Il permet de changer le fond d'écran, en définir plusieurs aléatoirements ou bien configurer une connexion automatique pour un utilisateur (⚠️)
  • Une interface simple pour qu'un utilisateur puisse accéder à des privilèges root est intégrée. Ça évite de configurer doas pour chaque application nécessitant ces droits. On peut voir ça comme un "gksu" simplifié, qui ne retire rien à doas.
  • La possibilité de traduire l'interface est présente. Pour l'instant, c'est le français et l'anglais seulement, selon l'agencement du clavier définit à l'installation.
  • Les médias insérés sont automatiquement montés dans /vol. Un raccourci dans le dossier utilisateur est présent pour y faciliter l'accès.
  • Un peu moins de programmes sont présents par défaut, ça allège les images.
  • L'apparence est plus sobre, libre à chacun de personnaliser le thème à son goût.
  • Si un utilisateur décide d'envoyer aux développeurs d'OpenBSD son "dmesg" (ça aide à améliorer le support matériel), un message de confirmation lui est affiché.
  • Unbound est toujours présent pour se charger des résolutions DNS en local, le FAI n'a pas à savoir ces choses-là.
  • Ffom est intégré pour trouver un miroir rapide.
  • De nouveaux fonds d'écran (merci péhä!)

J'aurais souhaité proposer une installation automatisée. À vrai dire, ce n'est pas si compliqué à mettre en place. J'ai toutefois dû revoir ma copie, puisque cela imposait des choix par défaut à l'utilisateur qui peuvent s'avérer aussi perturbants voire plus que l'installateur normal. Normalement, tout le monde est capable de lire les quelques instructions pour l'installation, à savoir :

  • Laisser au moins de 4G pour les programmes installés avec isotop (je compte large) ;
  • Bien installer le set site63.tgz lors de l'installation.

Par ailleurs, c'est Firefox ESR 52 qui est installé par défaut, simplement pour assurer un support convenable dans le temps au cas où on installerait isotop dans 3 mois. Rien ne vous empêche d'installer la version 59 avec pkg_add.

Bref, j'espère que ça vous donnera envie de découvrir OpenBSD et que les petits ajouts vous feront plaisir :)

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' ;)

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 ;)