[Mageia-i18n] rpmdragora: AdminPanel and the UIAbastraction4mcc feature

Matteo Pasotti matteo.pasotti at gmail.com
Tue Jan 8 16:47:23 CET 2013

Hash: SHA1

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 UIAbstraction4mcc feature[1]. I think a preamble is needed so
be patient, please. If you have no interest, jump to =AdminPanel= :-)


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 :-P ). 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.


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 Angelo's
screenshots[4] of logviewer, it appears already localized (Italian in
that case).

I hope I've been thorough and not too boring :-P
If you have answers feel free to ask :-)


[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

Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/


More information about the Mageia-i18n mailing list