Bonjour chers internautes de Logram,
Je me suis absenté durant 2-3 semaines car j'étais en voie de "dégeekisme". Mais ceci a échoué. Comment le sais-je ? Tout simplement parce que quiquonque créé une distribution Linux blindé d'outils BSD n'est qu'un gros geek :)
Donc GnuSrc comme je l'ai appellé est une distribution linux (pour l'instant toujours pas fini car je suis un grand flemmard, elle est dans mon disque dur externe et n'attend que son geek pour l'entretenir). Bon quel interêt me direz vous ? Pourquoi je m'occupe pas de la LFS de logram ?
Ici l'interêt est que cette distribution mixe les outils GNU avec les outils BSD, pour faire simple :
- Gestionnaire de paquet pkgsrc (celui de NetBSD)
- Pas de SysVinit, mais plutot OpenRC (encore une fois NetBSD)
- Pas de LFS mais le stage3 de Gentoo épuré de portage/emerge.
- Et d'autres choses pas encore prévu, comme par exemple l'installation sur mon PC local.
Elle n'est pas disponible au téléchargement, sinon j'aurais quitté ma Debian :)
Qu'en est-il de Logram ?
Nonon je ne l'abandonne pas, je vais m'en occuper n'ayez crainte. Il faut juste que je prenne le temps de le faire (flemme quand tu nous tiens). Je me suis fixé de faire cette foutu LFS pendant les prochaines vacances (d'ici une semaine et demie) et d'y installer Setup, après il ne me restera plus qu'à créer les paquets si steckdenis me confirme que la structure des paquets ne changera plus (il serait domage de créer une cinquantaine de paquet pour devoir les refaire car la structure change).
Et le reste ?
Et bien j'ai repris le développement de Cream-Browser, mon navigateur internet. Mais désormais d'une manière bien plus propre, souple et efficace. J'ai séparé la partie navigateur (l'interface) de la partie intégration, cette seconde partie est donc situé dans une librairie statique (libcream.a) qui contient un objet CreamView (widget GTK), cet objet va choisir selon l'URL qu'on lui donne le module à utiliser. S'il s'agit d'un FTP, on utilisera le module FTP situé dans libcream-module-ftp.a, si c'est une page about:xxx on utilisera le module About situé dans libcream-module-about.a et pour le reste on utilisera le module WebView situé dans libcream-module-webview.a. Résumons :
- Cream : le navigateur
- libcream.a : CreamView
- libcream-module-about.a : AboutModule
- libcream-module-ftp.a : FTPModule
- libcream-module-webview.a : WebViewModule
- creamctl : Programme permettant de manipuler le navigateur en externe
- Il permettera donc de créer des plugins dans nimporte quels langage de la même manière que UZBL
La structure risque d'évoluer avec le temps, par exemple, j'ai fini l'objet CreamView, bientot fini l'objet ModuleWebView, et je me heurte à un problème : L'utilisateur affiche une page HTTP (utilisation de WebKit), il clique sur un lien en ftp:// (nécessite le module FTP). Je réfléchis donc à comment faire pour changer de module (je pense à emettre un signal GTK et le CreamView s'occupe du reste).
Le code est disponible ici, bien que le code progresse lentement cela n'empèche pas au navigateur d'évoluer dans ma tête.
Les avantages de cette structure sont les suivants :
- Le développeur souhaite coder un navigateur sans faire d'intégration de WebKit, il a libcream-module-webview.a à sa disposition.
- Le développeur souhaite intégrer un FTP dans son navigateur déjà codé, il a libcream-module-ftp.a à sa disposition.
- Le développeur souhaite voir comment est constitué une application Vim-like, il regarde le code de l'interface sans être dérangé par toute la partie intégration de WebKit et autres.
- etc...
Et pour finir...
...je vous invite à faire un tour sur mon blog
Cordialement, linkdd