[Mageia-dev] The shiny new Control Center

Steven Tucker tuxta2 at gmail.com
Sun Sep 30 13:07:15 CEST 2012

On 30/09/12 17:03, nicolas.lecureuil at free.fr wrote:
>> Hi everyone,
>> I have been doing a little work on the proposed control center - mcc2
>> https://wiki.mageia.org/en/Feature:UiAbstraction4mcc
>> and would like to put a couple of questions forward to find some direction.
> i don't see the point of this rewrite. This have not been discussed a lot but i think that
> this is a lack of time. For me the prior thing to do would be to write a interactive::qt for mcc using perl-qt4 or perl-kde4

Okay, so I see the argument of prioritizing and putting your resources 
towards the highest valued projects, however, the fact is that if I was 
not putting time into this, I would be putting time into my academic 
projects, not another Mageia project.

Also, if it was not a Mageia Control Center, I would be writing the 
Debian Control Center or the Fedora Control Center or the generic 
control center that any distro can use if they find it useful, but I 
would be most happy with Mageia, because the distro and the community rock.
Angelo and Matteo have put time into packaging (and now bug fixing) 
libyui, but that is something that should be looked at regardless. 
libyui is already in the other major distros, and is useful for writing 
other programs.

So the reality is, there is no waste of resources.

> I think  that if you want to write it in an other language this is more because you have not saw  that all our code is linked
> so you will double the code base,  the code to maintain, the possible bugs, etc etc.

If it was my language of choice I would be writing it in C++. It was 
100% due to discussions on the list and in IRC that led to writing it in 
Perl. As noted, I have previously never written any Perl, and so it 
would not have been my first or even second choice, I did it purely 
because of the feedback I received from the Mageia community.

When talking about other languages, I am not referring to the main 
program, but only optional (not core) modules.

>> 1/ What should we call it ??
>>           I have been using mcc2 as a working name, however I'm not
>> convinced this is the right approach. I will soon be uploading the code
>> (been using my own svn repo up till now), and it would be good to start
>> with the name it will stick with. Should the name relate to Mageia?, or
>> should it be more generic?
> you will upload it where ? you can use a github repo i think to make it public.

Currently I am using a university server with svn and Redmine, and I am 
completely happy with it. I was going to move it to the mageia repo so 
that people could see the program as it progresses, and perhaps even 
contribute if they feel motivated to do so. If anyone is interested they 
can let me know and I'll create them an account, Angelo and Matteo 
already have full access.

>> 2/ What languages should be available for writing modules? (Perl, C++,
>> python and Ruby are possibilities)
>>           So far mcc2 has been written in Perl (even though I had never
>> written a line of Perl prior to starting this) so as to make porting
>> existing modules a matter of just replacing the Ui calls, but I do like
>> the idea of allowing the modules to be written in more than 1 language
>> to encourage more contributors who may be turned off by having to learn
>> another language.
>> Sticking with Perl will make mcc2 core easier, so I may do that
>> initially regardless. What do you all think?? Is sticking with 1
>> language preferred even if it means less contributors, or is the goal to
>> attract as many module developers as possible?
> yes but our libraries are in perl too don't forget this ( libDrakX ). In general i am not a big fan of
> mixing languages.

Okay, so +1 for Perl only.
>> 3/ What should the license be?
>>           I would be happy to make it GPL V3, but is there any argument
>> for something different ?
> As mcc is in gplv2+ i think you have to stick with this licence ( not 100% sure )

Well, the core is a full rewrite, so potentially it could be licensed 
any way I choose. The modules however are planned to reuse code to save 
time and so they would have to respect the existing licenses.

When asking about licensing, I am referring to the core, not modules.

>> Just to give you an idea of where my code is at ......
>> It is still in early stages, with I would guess about 400 - 500 lines of
>> code.
>> It works across ncurses, gtk and qt with a consistent interface, however
>> there seems to be a bug in the libyui-qt libriaries which Angelo and
>> Matteo will be looking into (Big thank you to those guys for packaging
>> the libyui libraries and helping out when I have questions).
> libyui has been choosen w/o real discussions, i don't want you to loose you time if
> at final we don't choose it.

There were discussions both on mailing list and IRC, a proposal was 
written and accepted. I'm not sure what extra discussion is required?

One of the biggest critisims the first time this was discussed, was that 
such a rewrite has been suggested many times in the past, but the amount 
of discussion out weighed the amount of code. Now that I have actually 
written some code there is a call for more discussion.

Don't worry about me loosing time, if it does not become a Mageia 
project it will become my own private project, and if any distro sees 
potential I will work with them, other wise I will just do it for myself.

>> I have little time to work on this for the next 6 weeks, but I hope to
>> have the core system complete, or near to complete when Santa visits,
>> though porting (and adding new) modules will be the bigger task.
> better work would be to fix existing one and add new interactive::qt ( or qt4 ).
> And seeing the != between qt4 and qt5 the port to qt5 will be a 'piece of cake'.

I disagree entirely. The existing mcc makes ncurses a second rate 
citizen. The main reason I started this project was that when I was 
putting a cluster together I realised with a couple of extra modules, it 
would be trivial to do it all in mcc. When I actually had a look at the 
ncurses version it was incomplete, not all modules are shared, and the 
interface was not consistent. The work that would be required to "fix 
the existing one" amounts to writing an abstraction layer and then 
rewriting mcc, using libyui elimated the first part (which is also the 
largest part).  I also looked at writing a module anyway, and found docs 
and tutorials lacking.

There are a number of reasons why libyui is the right choice, even 
though we may have to extend it ourselves, but I have already had this 
discussion so don't want to lay it all out here again. Please see the 
proposal and mail archives.

One last but very important point. This is very much in its infancy! 
While I hope it will go all the way, the reality is that projects 
sometimes fail. I will work to prevent that, but some times life gets in 
the way. My point is, I don't want to waste time on endless discussions 
if it was never going to really make it anyway. My plan is to keep 
writing small snippets of code when I get the chance, and once semester 
is finished, have more of a go and see where it leads. The time used for 
this email for instance, could have been spent working on the module 
launching section, or helping Angelo with the window title bug. If 
putting it into the Mageia repo is going to be a big deal, I'd rather 
just keep working in silence.



More information about the Mageia-dev mailing list