Evolution des outils de Mageia
Développements avec YUI
Annonces, Actus et Infos / Mageia.org

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Citation :
Bonjour la liste,
Suite à la demande d'explication de Filip sur mon travail sur rpmdragora, je vais décrire notre travail (Angelo, Steven et moi)
avec la fonction de UIAbstraction4mcc [1]. Je pense que le préambule est nécessaire, merci d'être patient. Si çà ne vous intéresse pas, passez à adminpanel.
= Préambule =
Cette fonctionnalité résulte de la fusion de la fonctionnalité DrakXtoolsReview (commencé par Angelo et moi) à l'une de Steven, car les objectifs sont communs.
DrakXtoolsReview visait à rendre MCC (et les outils * DrakX plus en général) indépendent de gtk:
- Afin d'éviter l'installation de trucs sur qt gtk-orientés installations et vice-versa
- Afin d'éviter l'installation de GTK sur les installation vocationtextuelle (c'est à dire sans interface graphique du tout)
- De rendre les outils drakx tels que rpmdrake utilisables à partir d'une interface utilisateur texte (TUI, cruses, par exemple, en mode console).
Note importante : nous essayons d'éviter une réécriture complète du code déjà disponibles pour réduire nos efforts en tenant compte aussi du fait que les outils actuels fonctionnent encore très bien. C'est pourquoi nous avons principalement utilisé perl.
Après quelques semaines de travail pour ajouter le support qt à drakx nous (anaselli et moi) ont fait face à de grands problèmes principalement liés aux façons différentes de gtk et qt de faire leur travail.
Ici intervient alors UIAbastraction4mcc et sa valeur ajoutée: la bibliothèque YUI.
YUI est une bibliothèque visant à simplifier la vie des développeurs en leur permettant d'écrire du code une fois et de l'exécuter en tant qu'application qt, gtk ou ncurses. Cette bibliothèque a été initialement développée par SuSE pour ses outils (yast).
Nous avons donc décidé d'unir nos forces et de commencer à travailler sur ce nouveau sujet, qui est actuellement connu sous le nom adminpanel.
J'ai immédiatement commencé à empaqueter libyui et ses liaisons (perl, python, ruby), tandis que Steven (alias tuxta) et Angelo ont commencé à écrire beaucoup de code perl (très lisible) pour jeter les bases d'adminpanel.
Après quelques tests initiaux, nous avons été confrontés certains vilains bugs imputables à yui.
C'est pourquoi Angelo (anaselli) a commencé à contribuer largement au code C + + par des patches au projet en amont (on peut presque se considérer comme l'amont). Angelo a également fait un excellent travail pour m'aider à maintenir les paquets yui pour Mageia.
Une fois que les classes de base étaient complètes, Angelo a écrit un module de test simple en C + + et YUI, ce qui démontre que adminpanel fonctionne correctement, alors que j'écrivait un module perl - nommé Privileges - permettant à adminpanel d'acquérir des privilèges d'administrateur (c'est-à-dire à la façon dont le Mageia Control Center actuel se comporte quand il vous demandera le mot de passe root). La solution actuelle du MCC travaille avec pam uniquement, tandis que la mise en œuvre actuelle des privilèges permettant à adminpanel d'obtenir les privilèges root se base sur trois "backends":
- Sudo
- Polkit
- Pam
Ce n'est pas seulement une question de portage, mais nous essayons aussi d'améliorer les choses quand nous sommes capables de le faire.
Je dois remercier Guillaume Rousse (guillomovitch) pour ses conseils précieux de ce côté.
= Adminpanel =
Actuellement adminpanel [3] peut être considérée comme un lanceur, à savoir une application capable de recueillir et d'exécuter d'autres applications.
C'est là que vient la partie la plus difficile du travail : essayer de «migrer» les outils actuels vers le nouveau cadre (yui).
Angelo a déjà porté avec succès logdrake (logviewer nouveau nom) et il a trouvé le moyen de l'améliorer en ajoutant un support de base pour journalctl (man journalctl).
Je travaille actuellement sur rpmdragora, le portage de rpmdrake pour yui, mais il faudra beaucoup plus de temps par rapport à logdrake. Ce n'est pas seulement une question de changer les méthodes de gtk avec les homologues yui, nous avons souvent besoin de réécrire les routines entières utilisées pour construire et / ou pour remplir les éléments graphiques (étiquettes, tables, vues, etc.)
Hier, nous avons publié une capture d'écran de rpmdragora, mais beaucoup de travail reste à faire pour le rendre pleinement fonctionnel.
Note importante: nous avons utilisé les noms d'applications différentes pour éviter la confusion entre les outils, mais en essayant de préserver, lorsque cela est possible-les racines.
Une autre remarque importante: comme déjà dit, libyui nous donner la possibilité d'exécuter une application en utilisant deux différentes interfaces graphiques ou TUI mais cette capacité a un coût: les thèmes et les styles beaux et brillants ne sont pas toujours portables, Angelo travaille sur le code source de YUI d'améliorer également cet aspect.
- Du point de vue i18n (je fais également partie de l'équipe i18n-it, après tout), je tiens à souligner la possibilité de réutiliser par exemple les traductions déjà disponibles pour rpmdrake sans efforts supplémentaires. Nous devons encore profondément enquêter sur cet aspect, mais, comme vous pouvez le voir sur les captures d'écran d'Angelo [4] de logviewer, il apparaît déjà localisé (italien dans ce cas).
J'espère avoir été complet et pas trop ennuyeux
Si vous avez des réponses, n'hésitez pas à demander
Cordialement
[1] https://wiki.mageia.org/en/Feature:UiAbstraction4mcc
[2] https://wiki.mageia.org/en/Feature:DrakXtoolsReview
[3] http://svnweb.mageia.org/soft/AdminPanel/trunk/
[4] https://plus.google.com/u/0/109802167766760530845/posts/4dwkYHrd5tX
/ Matteo
Suite à la demande d'explication de Filip sur mon travail sur rpmdragora, je vais décrire notre travail (Angelo, Steven et moi)
avec la fonction de UIAbstraction4mcc [1]. Je pense que le préambule est nécessaire, merci d'être patient. Si çà ne vous intéresse pas, passez à adminpanel.
= Préambule =
Cette fonctionnalité résulte de la fusion de la fonctionnalité DrakXtoolsReview (commencé par Angelo et moi) à l'une de Steven, car les objectifs sont communs.
DrakXtoolsReview visait à rendre MCC (et les outils * DrakX plus en général) indépendent de gtk:
- Afin d'éviter l'installation de trucs sur qt gtk-orientés installations et vice-versa
- Afin d'éviter l'installation de GTK sur les installation vocationtextuelle (c'est à dire sans interface graphique du tout)
- De rendre les outils drakx tels que rpmdrake utilisables à partir d'une interface utilisateur texte (TUI, cruses, par exemple, en mode console).
Note importante : nous essayons d'éviter une réécriture complète du code déjà disponibles pour réduire nos efforts en tenant compte aussi du fait que les outils actuels fonctionnent encore très bien. C'est pourquoi nous avons principalement utilisé perl.
Après quelques semaines de travail pour ajouter le support qt à drakx nous (anaselli et moi) ont fait face à de grands problèmes principalement liés aux façons différentes de gtk et qt de faire leur travail.
Ici intervient alors UIAbastraction4mcc et sa valeur ajoutée: la bibliothèque YUI.
YUI est une bibliothèque visant à simplifier la vie des développeurs en leur permettant d'écrire du code une fois et de l'exécuter en tant qu'application qt, gtk ou ncurses. Cette bibliothèque a été initialement développée par SuSE pour ses outils (yast).
Nous avons donc décidé d'unir nos forces et de commencer à travailler sur ce nouveau sujet, qui est actuellement connu sous le nom adminpanel.
J'ai immédiatement commencé à empaqueter libyui et ses liaisons (perl, python, ruby), tandis que Steven (alias tuxta) et Angelo ont commencé à écrire beaucoup de code perl (très lisible) pour jeter les bases d'adminpanel.
Après quelques tests initiaux, nous avons été confrontés certains vilains bugs imputables à yui.
C'est pourquoi Angelo (anaselli) a commencé à contribuer largement au code C + + par des patches au projet en amont (on peut presque se considérer comme l'amont). Angelo a également fait un excellent travail pour m'aider à maintenir les paquets yui pour Mageia.
Une fois que les classes de base étaient complètes, Angelo a écrit un module de test simple en C + + et YUI, ce qui démontre que adminpanel fonctionne correctement, alors que j'écrivait un module perl - nommé Privileges - permettant à adminpanel d'acquérir des privilèges d'administrateur (c'est-à-dire à la façon dont le Mageia Control Center actuel se comporte quand il vous demandera le mot de passe root). La solution actuelle du MCC travaille avec pam uniquement, tandis que la mise en œuvre actuelle des privilèges permettant à adminpanel d'obtenir les privilèges root se base sur trois "backends":
- Sudo
- Polkit
- Pam
Ce n'est pas seulement une question de portage, mais nous essayons aussi d'améliorer les choses quand nous sommes capables de le faire.
Je dois remercier Guillaume Rousse (guillomovitch) pour ses conseils précieux de ce côté.
= Adminpanel =
Actuellement adminpanel [3] peut être considérée comme un lanceur, à savoir une application capable de recueillir et d'exécuter d'autres applications.
C'est là que vient la partie la plus difficile du travail : essayer de «migrer» les outils actuels vers le nouveau cadre (yui).
Angelo a déjà porté avec succès logdrake (logviewer nouveau nom) et il a trouvé le moyen de l'améliorer en ajoutant un support de base pour journalctl (man journalctl).
Je travaille actuellement sur rpmdragora, le portage de rpmdrake pour yui, mais il faudra beaucoup plus de temps par rapport à logdrake. Ce n'est pas seulement une question de changer les méthodes de gtk avec les homologues yui, nous avons souvent besoin de réécrire les routines entières utilisées pour construire et / ou pour remplir les éléments graphiques (étiquettes, tables, vues, etc.)
Hier, nous avons publié une capture d'écran de rpmdragora, mais beaucoup de travail reste à faire pour le rendre pleinement fonctionnel.
Note importante: nous avons utilisé les noms d'applications différentes pour éviter la confusion entre les outils, mais en essayant de préserver, lorsque cela est possible-les racines.
Une autre remarque importante: comme déjà dit, libyui nous donner la possibilité d'exécuter une application en utilisant deux différentes interfaces graphiques ou TUI mais cette capacité a un coût: les thèmes et les styles beaux et brillants ne sont pas toujours portables, Angelo travaille sur le code source de YUI d'améliorer également cet aspect.
- Du point de vue i18n (je fais également partie de l'équipe i18n-it, après tout), je tiens à souligner la possibilité de réutiliser par exemple les traductions déjà disponibles pour rpmdrake sans efforts supplémentaires. Nous devons encore profondément enquêter sur cet aspect, mais, comme vous pouvez le voir sur les captures d'écran d'Angelo [4] de logviewer, il apparaît déjà localisé (italien dans ce cas).
J'espère avoir été complet et pas trop ennuyeux
Si vous avez des réponses, n'hésitez pas à demander
Cordialement
[1] https://wiki.mageia.org/en/Feature:UiAbstraction4mcc
[2] https://wiki.mageia.org/en/Feature:DrakXtoolsReview
[3] http://svnweb.mageia.org/soft/AdminPanel/trunk/
[4] https://plus.google.com/u/0/109802167766760530845/posts/4dwkYHrd5tX
/ Matteo
Citation :
Hello list,
following the Filip request of explanation about my work on
rpmdragora, I'm going to describe our (Angelo, Steven and me) work
with the [url= https://wiki.mageia.org/en/Feature:UiAbstraction4mcc]UIAbstraction4mcc feature[/url]. I think a preamble is needed so be patient, please. If you have no interest, jump to =AdminPanel=
=Preamble=
This feature results from the merge of the DrakXtoolsReview feature
(started by Angelo and me) to the Steven's one because of the common aims.
DrakXtoolsReview was aiming to make mcc (and the drakx* tools more in
general) indipendent from gtk:
- - to avoid the installation of gtk stuff on qt-oriented installations
and viceversa
- - to avoid the installation of gtk stuff on text-oriented
installations (i.e. without gui at all)
- - to make drakx* tools like rpmdrake usable from a text user interface
(tui, e.g. curses, console mode).
Important note: we are trying to avoid a full rewrite of the code
already available to reduce our efforts also considering that the
current tools are still working fine. That's why we mainly used perl.
After a few weeks of work to add qt support to drakx we (anaselli and
me) have faced some big issues mainly related to the different ways
gtk and qt do their job.
Here it comes UIAbastraction4mcc and its added value: the YUI library.
YUI is a library aiming to simplify the developers lifes allowing them
to write code once and executing it as a qt, gtk or ncurses
application. This lib was originally developed by SuSE for its tools
(i.e. yast).
So we decided to join our forces and start working on this new
subject, currently known as AdminPanel.
I started packaging libyui and its bindings (perl, python, ruby)
immediately while Steven (aka tuxta) and Angelo began writing a lot of
(very readable) perl code to build the foundations of AdminPanel.
After some initial test we faced some nasty bug imputable to yui.
That's why Angelo (anaselli) started contributing a lot of C++
code/patches to the upstream project (we can almost consider himself
the upstream ). Angelo does also a great job helping me
maintaining the yui packages for Mageia.
Once base classes were complete, Angelo wrote a simple test module
using C++ and YUI, demonstrating that adminpanel was working
correctly, while I wrote a perl module -namely Privileges- allowing
AdminPanel to acquire administrator privileges (i.e. think at how the
current Mageia Control Center behaves when it ask you for the root
password). The current MCC solution works with pam only while the
current implementation of Privileges allows adminpanel to gain root
privileges using three "backends":
- - sudo
- - polkit
- - pam
It's not only a matter of porting but we also try to improve things
when we are able to do it.
I've to thanks Guillaume Rousse (guillomovitch) for his precious
feedbacks on this side.
=AdminPanel=
Currently AdminPanel[3] can be considered like a launcher namely an
application able to collect and execute other applications.
There comes the hard part of the job: trying to "migrate" current
tools to the new framework (yui).
Angelo has already successfully ported logdrake (new name logviewer)
and he found the way of improve it adding a basic support to
journalctl (man journalctl).
I'm currently working on rpmdragora, the rpmdrake port to yui, but it
will require much more time compared to logdrake. It's not only a
matter of changing gtk methods with the yui counterparts, we often
need to rewrite entire routines used to build and/or to populate
graphical items (labels, tables, views, etc).
Yesterday we released some screenshot of rpmdragora, but a lot of work
is still needed to make it fully functional.
Important note: we used different application names to avoid confusion
between the tools but trying to preserve -when possible- the roots.
Another important note: as already said, libyui give us the ability to
run an application using two different GUIs or a TUI but this ability
has a cost: nice themes and shiny styles are not always portable;
Angelo is working on the YUI source code to improve also this aspect.
- From a i18n perspective (I'm also part of the i18n-it team after all)
I want to highlight the ability to reuse for example the translations
already available for rpmdrake with no extra efforts. We still need to
deeply investigate this aspect but, as you can see from the[url= https://plus.google.com/u/0/109802167766760530845/posts/4dwkYHrd5tX] Angelo's
screenshots[/url] of logviewer, it appears already localized (Italian in
that case).
I hope I've been thorough and not too boring
If you have answers feel free to ask
Regards
/matteo
following the Filip request of explanation about my work on
rpmdragora, I'm going to describe our (Angelo, Steven and me) work
with the [url= https://wiki.mageia.org/en/Feature:UiAbstraction4mcc]UIAbstraction4mcc feature[/url]. I think a preamble is needed so be patient, please. If you have no interest, jump to =AdminPanel=
=Preamble=
This feature results from the merge of the DrakXtoolsReview feature
(started by Angelo and me) to the Steven's one because of the common aims.
DrakXtoolsReview was aiming to make mcc (and the drakx* tools more in
general) indipendent from gtk:
- - to avoid the installation of gtk stuff on qt-oriented installations
and viceversa
- - to avoid the installation of gtk stuff on text-oriented
installations (i.e. without gui at all)
- - to make drakx* tools like rpmdrake usable from a text user interface
(tui, e.g. curses, console mode).
Important note: we are trying to avoid a full rewrite of the code
already available to reduce our efforts also considering that the
current tools are still working fine. That's why we mainly used perl.
After a few weeks of work to add qt support to drakx we (anaselli and
me) have faced some big issues mainly related to the different ways
gtk and qt do their job.
Here it comes UIAbastraction4mcc and its added value: the YUI library.
YUI is a library aiming to simplify the developers lifes allowing them
to write code once and executing it as a qt, gtk or ncurses
application. This lib was originally developed by SuSE for its tools
(i.e. yast).
So we decided to join our forces and start working on this new
subject, currently known as AdminPanel.
I started packaging libyui and its bindings (perl, python, ruby)
immediately while Steven (aka tuxta) and Angelo began writing a lot of
(very readable) perl code to build the foundations of AdminPanel.
After some initial test we faced some nasty bug imputable to yui.
That's why Angelo (anaselli) started contributing a lot of C++
code/patches to the upstream project (we can almost consider himself
the upstream ). Angelo does also a great job helping me
maintaining the yui packages for Mageia.
Once base classes were complete, Angelo wrote a simple test module
using C++ and YUI, demonstrating that adminpanel was working
correctly, while I wrote a perl module -namely Privileges- allowing
AdminPanel to acquire administrator privileges (i.e. think at how the
current Mageia Control Center behaves when it ask you for the root
password). The current MCC solution works with pam only while the
current implementation of Privileges allows adminpanel to gain root
privileges using three "backends":
- - sudo
- - polkit
- - pam
It's not only a matter of porting but we also try to improve things
when we are able to do it.
I've to thanks Guillaume Rousse (guillomovitch) for his precious
feedbacks on this side.
=AdminPanel=
Currently AdminPanel[3] can be considered like a launcher namely an
application able to collect and execute other applications.
There comes the hard part of the job: trying to "migrate" current
tools to the new framework (yui).
Angelo has already successfully ported logdrake (new name logviewer)
and he found the way of improve it adding a basic support to
journalctl (man journalctl).
I'm currently working on rpmdragora, the rpmdrake port to yui, but it
will require much more time compared to logdrake. It's not only a
matter of changing gtk methods with the yui counterparts, we often
need to rewrite entire routines used to build and/or to populate
graphical items (labels, tables, views, etc).
Yesterday we released some screenshot of rpmdragora, but a lot of work
is still needed to make it fully functional.
Important note: we used different application names to avoid confusion
between the tools but trying to preserve -when possible- the roots.
Another important note: as already said, libyui give us the ability to
run an application using two different GUIs or a TUI but this ability
has a cost: nice themes and shiny styles are not always portable;
Angelo is working on the YUI source code to improve also this aspect.
- From a i18n perspective (I'm also part of the i18n-it team after all)
I want to highlight the ability to reuse for example the translations
already available for rpmdrake with no extra efforts. We still need to
deeply investigate this aspect but, as you can see from the[url= https://plus.google.com/u/0/109802167766760530845/posts/4dwkYHrd5tX] Angelo's
screenshots[/url] of logviewer, it appears already localized (Italian in
that case).
I hope I've been thorough and not too boring
If you have answers feel free to ask
Regards
/matteo
Yves
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie