Re: [Sugar-devel] [PATCH v2][sucrose-0.94][RFC] Add capability to connect to WPA/WPA2-Enterprise networks

2011-12-09 Thread Anish Mangal
On Sat, Dec 10, 2011 at 01:32, Daniel Drake  wrote:
> On Fri, Dec 9, 2011 at 9:08 AM, Anish Mangal  
> wrote:
>> This feature is originally being developed for f14/0.94.1 based dx3
>> based on a request from OLPC-Australia. At this moment, I'd consider
>> trying to upstream this for the sucrose-0.94 branch.
>
> 0.94 is feature frozen since a long time ago.
>

Right.

0.96 also passed the new feature acceptance deadline (though not very long ago)

> If you are proposing to undo the feature freeze (which is not
> unthinkable) then you should do that in a separate thread - but you'll
> probably also have to offer to become the maintainer as well. And I
> think the community will require you to enforce a "master first"
> policy from the outset for this to fly.
>

Thinking in terms of master first, how do you find the patch aside
from the fact that it is probably not applicable to mainline in its
current form. I ask this since the patch is building upon the 0.94
(and prev) sugar scheme of having its settings stored in local
connections.cfg rather than share these settings with gnome/globally
(current nm0.9 efforts).

> Daniel

Anish

P.S. I may have misunderstood since I'm not upto speed with what your
nm0.9 patch(es) exactly do, but I have that impression.
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Touchpad icon: update for upstream kernel API

2011-12-09 Thread Frederick Grose
On Fri, Dec 9, 2011 at 6:23 PM, Daniel Drake  wrote:

> On Mon, Nov 28, 2011 at 7:51 AM, Sascha Silbe 
> wrote:
> >> Port the touchpad icon to this new API.
> >
> > You're doing more than this. The additional changes are fine, but should
> > be mentioned.
>
> I've checked again and I don't see any changes in the patch other than
> porting the touchpad icon to the new kernel interface.
>
> >> Compatibility with the old non-upstream API has been dropped; I don't
> >> anticipate users running this new sugar with an old kernel.
> >
> > FWIW, I'm still running a 2.6.35 kernel on my XO-1 (but Sugar from
> > sugar-jhbuild, i.e. mainline/master). Not sure if anyone who cares about
> > this Frame device icon does, though.
>
> For simplicity I think we should go ahead and merge this despite
> breaking uncommon use cases.
>
> > [extensions/deviceicon/touchpad.py]
> >> @@ -31,19 +31,15 @@ from sugar.graphics import style
> >>
> >>  from jarabe.frame.frameinvoker import FrameWidgetInvoker
> >>
> >> -TOUCHPAD_MODE_CAPACITIVE = 'capacitive'
> >> -TOUCHPAD_MODE_RESISTIVE = 'resistive'
> >> -TOUCHPAD_MODES = [TOUCHPAD_MODE_CAPACITIVE, TOUCHPAD_MODE_RESISTIVE]
> >> -STATUS_TEXT = {
> >> -TOUCHPAD_MODE_CAPACITIVE: _('finger'),
> >> -TOUCHPAD_MODE_RESISTIVE: _('stylus'),
> >> -}
> >> -STATUS_ICON = {
> >> -TOUCHPAD_MODE_CAPACITIVE: 'touchpad-' + TOUCHPAD_MODE_CAPACITIVE,
> >> -TOUCHPAD_MODE_RESISTIVE: 'touchpad-' + TOUCHPAD_MODE_RESISTIVE,
> >> -}
> >
> >> +TOUCHPAD_MODE_MOUSE = 'mouse'
> >> +TOUCHPAD_MODE_PENTABLET = 'pentablet'
> >
> > Do we need these as individual constants? I don't see them used anywhere
> > except when defining TOUCHPAD_MODES and since we seem to change the name
> > of the constants any time the content changes, I see no reason to use
> > them at all. Especially since we don't do the same for STATUS_TEXT and
> > STATUS_ICON:
>
> The constants are used elsewhere - take another look. It also follows
> the earlier design which had e.g. TOUCHPAD_MODE_CAPACITIVE. Does that
> change your opinion?
>
> > Typo: s/indice/index/
> > I find "if a not in b" easier to read than "if not a in b"; YMMV.
>
> If  these are the only real issues that you have identified then I
> would be happy to fix them up at commit time.
>
> Daniel
>

There is also a Sugar themed icon available for this.
https://bugs.sugarlabs.org/ticket/2950

 --Fred
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Touchpad icon: update for upstream kernel API

2011-12-09 Thread Daniel Drake
On Mon, Nov 28, 2011 at 7:51 AM, Sascha Silbe  wrote:
>> Port the touchpad icon to this new API.
>
> You're doing more than this. The additional changes are fine, but should
> be mentioned.

I've checked again and I don't see any changes in the patch other than
porting the touchpad icon to the new kernel interface.

>> Compatibility with the old non-upstream API has been dropped; I don't
>> anticipate users running this new sugar with an old kernel.
>
> FWIW, I'm still running a 2.6.35 kernel on my XO-1 (but Sugar from
> sugar-jhbuild, i.e. mainline/master). Not sure if anyone who cares about
> this Frame device icon does, though.

For simplicity I think we should go ahead and merge this despite
breaking uncommon use cases.

> [extensions/deviceicon/touchpad.py]
>> @@ -31,19 +31,15 @@ from sugar.graphics import style
>>
>>  from jarabe.frame.frameinvoker import FrameWidgetInvoker
>>
>> -TOUCHPAD_MODE_CAPACITIVE = 'capacitive'
>> -TOUCHPAD_MODE_RESISTIVE = 'resistive'
>> -TOUCHPAD_MODES = [TOUCHPAD_MODE_CAPACITIVE, TOUCHPAD_MODE_RESISTIVE]
>> -STATUS_TEXT = {
>> -    TOUCHPAD_MODE_CAPACITIVE: _('finger'),
>> -    TOUCHPAD_MODE_RESISTIVE: _('stylus'),
>> -}
>> -STATUS_ICON = {
>> -    TOUCHPAD_MODE_CAPACITIVE: 'touchpad-' + TOUCHPAD_MODE_CAPACITIVE,
>> -    TOUCHPAD_MODE_RESISTIVE: 'touchpad-' + TOUCHPAD_MODE_RESISTIVE,
>> -}
>
>> +TOUCHPAD_MODE_MOUSE = 'mouse'
>> +TOUCHPAD_MODE_PENTABLET = 'pentablet'
>
> Do we need these as individual constants? I don't see them used anywhere
> except when defining TOUCHPAD_MODES and since we seem to change the name
> of the constants any time the content changes, I see no reason to use
> them at all. Especially since we don't do the same for STATUS_TEXT and
> STATUS_ICON:

The constants are used elsewhere - take another look. It also follows
the earlier design which had e.g. TOUCHPAD_MODE_CAPACITIVE. Does that
change your opinion?

> Typo: s/indice/index/
> I find "if a not in b" easier to read than "if not a in b"; YMMV.

If  these are the only real issues that you have identified then I
would be happy to fix them up at commit time.

Daniel
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] sugar-toolkit-gtk3 patches

2011-12-09 Thread Daniel Drake
On Mon, Dec 5, 2011 at 5:24 PM, Sascha Silbe
 wrote:
> Hi Simon et al.,
>
> sugar-toolkit-gtk3 is starting to get into shape (branch
> silbe-rework-20111205). Remaining issues:
>
> 1. 7431584: Restructure for new /usr/bin/sugar-activity behaviour
>   (Daniel Drake)
>
>   This patch, back-ported to the GTK2 sugar-toolkit, and it's sugar
>   counterpart should be posted to sugar-devel for review. In its
>   current state I can't tell whether it's correct.

Posted.

> 2. 9ca0113: activity.py: Apply sugar GTK3 theme and icon theme (Daniel
>   Drake)
>
>   Lacks an explanation why we need this. IIRC it had something to do
>   with not being able to do it from the rc file anymore, but why
>   doesn't the patch include an rc file change then?

Here is my suggested commit message:
---
activity.py: Apply sugar GTK3 theme and icon theme

In GTK2, theme name and icon theme name properties could be set in the
GTK2 RC file, at runtime, or by the X settings daemon.

For GTK3, the RC file configuration route for these settings has been
removed. As we do not currently have a settings daemon implementation,
apply these important settings at runtime, early in the Activity
class.
---

GTK3 does not have RC files so there is no file to modify here.

> 3. a6513e6: Switch sugarext to be an introspectable library (Simon
>   Schampijer)
>
>   Some links explaining what this means and how it's done would be
>   nice.

Simon will reply with this info.

> 4. a0a6c92: _TimeoutIcon: use markup instead of Pango for bold text
>   (Simon Schampijer)
>
>   Lacks escaping. See e.g. [1]. Since I don't know for sure how to do
>   this in the introspection world, I haven't fixed it myself.

Thanks for catching this. You can fix it as follows:
  from gi.repository import GLib
  self._text.set_markup('%s' % GLib.markup_escape_text(str(text)))

> 5. 288428c: Port key handling code to GTK3 (Raul Gutierrez Segales)
>
>   Description lacks details of what was changed and why.
>
>   I don't see a good reason for the GDK_KEY macro. GDK_KEY_Num_Lock
>   (to pick an example) is as readable as GDK_KEY(Num_Lock) and the
>   former has the advantage that searching the documentation (or the web)
>   for this string will yield something useful.
>
>   Introduces lines > 79 characters.

Fixed, here is a replacement patch:
http://dev.laptop.org/~dsd/20111209/0001-Port-key-handling-code-to-GTK3.patch

> 6. b3ae42d: Add GdkWrapper to access non-introspectable Gdk API (Raul
>   Gutierrez Segales)
>
>   Is this still required? Where's the upstream (i.e. GTK/GDK) ticket?

Yes, it is required.
Ticket is https://bugzilla.gnome.org/show_bug.cgi?id=663261

> 7. 8a4e452: Add wrapper for rsvg, c7d3870: Use rsvg wrapper while rsvg
>   gains introspection support (Raul Gutierrez Segales)
>
>   AIUI rsvg is introspectable now, so we can drop these patches? Is
>   there some other patch we need instead (to adapt to rsvg API
>   changes)?

As Simon mentioned, this would be fine but would cause a little pain
for developers at this time, as it would not be possible to run Sugar
at all if not running a cutting-edge rsvg version. However, I could
provide a F16 RPM with introspection support added, which would ease
the pain. let us know what you prefer.

> 8. f709d24: Add examples for Alert, Animator, ComboBox, IconEntry and
>   Notebook (Simon Schampijer)
>
>   The examples have no comments at all. But maybe still better than
>   not having examples.

These look pretty self explanatory to me, I'm not sure what can be added.

Simon says these were just quick widget tests and they will be
expanded and prettied up later.

> 9. 3b2cf71: Import sugar-base into sugar-toolkit (Daniel Drake)
>
>   Needs to mention the exact revision of sugar-base so we know which
>   bug fix patches to forward-port from sugar-base.

b9406e5c9c9df5404c5b0d995178b5edb4d93628

>   There are white space issues with several of the files (including
>   text files, Python sources and C sources), BTW.

Since this patch was almost entirely moving files, these are not new
issues. Nevertheless, if you want to fix these issues, I would not
object.

> Several patches also lack a Signed-off-by from their respective author
> (Daniel Drake, Simon Schampijer, Benjamin Berg, Raul Gutierrez Segales).

It has never been clear to me that this is a requirement for patch
submission, nor what people are actually signing off for in sugar
context (other projects I have seen specifically document what is
being signed off on, and this varies a little from place to place).
However, I have checked, and the above 4 people are all more pragmatic
than that and are happy for Signed-off tags to be added anyway. Please
add them as you see fit.

cheers
Daniel
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH sugar-toolkit] Restructure for new /usr/bin/sugar-activity behaviour

2011-12-09 Thread Daniel Drake
This patch accompanies a sugar patch titled
"sugar-activity: make independent of sugar-toolkit GTK versions"

The core Activity-instantiating functionality of main.py has been moved
into the sugar-activity binary and can be removed from here.

The remaining functionality (and everything that is GTK-specific) is moved
into the Activity class in this commit.

This is needed to make /usr/bin/sugar-activity independent of sugar/sugar3
and GTK2/GTK3, which is a crucial step for GTK3 activity support.

Signed-off-by: Daniel Drake 
---
 src/sugar/activity/Makefile.am |1 -
 src/sugar/activity/activity.py |   22 ++
 src/sugar/activity/main.py |  160 
 3 files changed, 22 insertions(+), 161 deletions(-)
 delete mode 100644 src/sugar/activity/main.py

diff --git a/src/sugar/activity/Makefile.am b/src/sugar/activity/Makefile.am
index 2c2eff1..f3a663a 100644
--- a/src/sugar/activity/Makefile.am
+++ b/src/sugar/activity/Makefile.am
@@ -7,6 +7,5 @@ sugar_PYTHON =  \
activityservice.py  \
bundlebuilder.py\
i18n.py \
-   main.py \
namingalert.py  \
widgets.py
diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py
index 6548b61..5844506 100644
--- a/src/sugar/activity/activity.py
+++ b/src/sugar/activity/activity.py
@@ -70,8 +70,10 @@ from telepathy.interfaces import CHANNEL, \
 from telepathy.constants import CONNECTION_HANDLE_TYPE_CONTACT
 from telepathy.constants import CONNECTION_HANDLE_TYPE_ROOM
 
+import sugar
 from sugar import util
 from sugar.presence import presenceservice
+from sugar.activity import i18n
 from sugar.activity.activityservice import ActivityService
 from sugar.activity.namingalert import NamingAlert
 from sugar.graphics import style
@@ -258,6 +260,23 @@ class Activity(Window, gtk.Container):
 the base class __init()__ before doing Activity specific things.
 
 """
+
+# Stuff that needs to be done early
+
+locale_path = i18n.get_locale_path(self.get_bundle_id())
+gettext.bindtextdomain(self.get_bundle_id(), locale_path)
+gettext.bindtextdomain('sugar-toolkit', sugar.locale_path)
+gettext.textdomain(self.get_bundle_id())
+
+icons_path = os.path.join(get_bundle_path(), 'icons')
+gtk.icon_theme_get_default().append_search_path(icons_path)
+
+# This code can be removed when we grow an xsettings daemon (the GTK+
+# init routines will then automatically figure out the font settings)
+settings = gtk.settings_get_default()
+settings.set_property('gtk-font-name',
+  '%s %f' % (style.FONT_FACE, style.FONT_SIZE))
+
 Window.__init__(self)
 
 if 'SUGAR_ACTIVITY_ROOT' in os.environ:
@@ -348,6 +367,9 @@ class Activity(Window, gtk.Container):
self.__jobject_updated_cb)
 self.set_title(self._jobject.metadata['title'])
 
+def run_main_loop(self):
+gtk.main()
+
 def _initialize_journal_object(self):
 title = _('%s Activity') % get_bundle_name()
 client = gconf.client_get_default()
diff --git a/src/sugar/activity/main.py b/src/sugar/activity/main.py
deleted file mode 100644
index d2a9302..000
--- a/src/sugar/activity/main.py
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright (C) 2008 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-import os
-import sys
-import gettext
-from optparse import OptionParser
-
-import gtk
-import dbus
-import dbus.service
-import dbus.glib
-
-import sugar
-from sugar.activity import activityhandle
-from sugar.activity import i18n
-from sugar.bundle.activitybundle import ActivityBundle
-from sugar.graphics import style
-from sugar import logger
-
-
-def create_activity_instance(constructor, handle):
-activity = constructor(handle)
-activity.show()
-
-
-def get_single_process_name(bundle_id):
-return bundle_id
-
-
-def get_single_process_path(bundle_id):
-return '/' + bundle_id.replace('.', '/')
-
-
-class SingleProcess(dbus.service.Object):
-
-def __init__(self, name_service, constructor):
-self.constructor = constructor
-
-bus = dbus.SessionBus()
- 

[Sugar-devel] [PATCH] sugar-activity: make independent of sugar-toolkit GTK versions

2011-12-09 Thread Daniel Drake
As we move to adding support for a second UI toolkit (GTK+ 3.x),
the sugar-activity binary used by all activities must become
backend-toolkit-independent. It would be wasteful to have two backend
toolkits loaded in memory, and in the GTK2/GTK3 case, it is impossible
(importing both results in an instant crash).

To achieve this, we split the existing sugar-toolkit activity/main.py:main()
functionality into two parts, moving it into the sugar-activity binary and
the Activity class as follows:
 1. All toolkit-specific stuff is moved into the Activity class (i.e.
everything that interacts with GTK)
 2. Everything that can be reasonably/easily moved into the Activity class
is also moved.
 3. What remains is the stuff that is inherently involved with the
construction of the Activity object, not related to UI toolkits. This
is moved into the sugar-activity binary.

main.py is then removed from sugar-toolkit.

With this work done, the one remaining question is how to invoke the main
loop. An optional run_main_loop() method is added to the activity class,
for GTK2 this will run the GTK2 main loop, for GTK3 the GTK3 main loop will
be run, etc.

This patch is accompanied by a sugar-toolkit patch titled
"Restructure for new /usr/bin/sugar-activity behaviour"
which adapts the GTK2 sugar-toolkit to these changes.

Signed-off-by: Daniel Drake 
---
 bin/sugar-activity |  130 +++-
 1 files changed, 128 insertions(+), 2 deletions(-)

diff --git a/bin/sugar-activity b/bin/sugar-activity
index 4abdd80..2b1b9b3 100644
--- a/bin/sugar-activity
+++ b/bin/sugar-activity
@@ -16,6 +16,132 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-from sugar.activity import main
+import os
+import sys
+import gettext
+from optparse import OptionParser
 
-main.main()
+import dbus
+import dbus.service
+import dbus.glib
+
+import sugar
+from sugar.activity import activityhandle
+from sugar.bundle.activitybundle import ActivityBundle
+from sugar import logger
+
+
+def create_activity_instance(constructor, handle):
+activity = constructor(handle)
+activity.show()
+return activity
+
+
+def get_single_process_name(bundle_id):
+return bundle_id
+
+
+def get_single_process_path(bundle_id):
+return '/' + bundle_id.replace('.', '/')
+
+
+class SingleProcess(dbus.service.Object):
+
+def __init__(self, name_service, constructor):
+self.constructor = constructor
+
+bus = dbus.SessionBus()
+bus_name = dbus.service.BusName(name_service, bus=bus)
+object_path = get_single_process_path(name_service)
+dbus.service.Object.__init__(self, bus_name, object_path)
+
+@dbus.service.method('org.laptop.SingleProcess', in_signature='a{sv}')
+def create(self, handle_dict):
+handle = activityhandle.create_from_dict(handle_dict)
+create_activity_instance(self.constructor, handle)
+
+def main():
+parser = OptionParser()
+parser.add_option('-b', '--bundle-id', dest='bundle_id',
+  help='identifier of the activity bundle')
+parser.add_option('-a', '--activity-id', dest='activity_id',
+  help='identifier of the activity instance')
+parser.add_option('-o', '--object-id', dest='object_id',
+  help='identifier of the associated datastore object')
+parser.add_option('-u', '--uri', dest='uri',
+  help='URI to load')
+parser.add_option('-s', '--single-process', dest='single_process',
+  action='store_true',
+  help='start all the instances in the same process')
+parser.add_option('-i', '--invited', dest='invited',
+  action='store_true', default=False,
+  help='the activity is being launched for handling an '
+   'invite from the network')
+(options, args) = parser.parse_args()
+
+logger.start()
+
+if 'SUGAR_BUNDLE_PATH' not in os.environ:
+print 'SUGAR_BUNDLE_PATH is not defined in the environment.'
+sys.exit(1)
+
+if len(args) == 0:
+print 'A python class must be specified as first argument.'
+sys.exit(1)
+
+bundle_path = os.environ['SUGAR_BUNDLE_PATH']
+sys.path.append(bundle_path)
+
+bundle = ActivityBundle(bundle_path)
+
+os.environ['SUGAR_BUNDLE_ID'] = bundle.get_bundle_id()
+os.environ['SUGAR_BUNDLE_NAME'] = bundle.get_name()
+os.environ['SUGAR_BUNDLE_VERSION'] = str(bundle.get_activity_version())
+
+splitted_module = args[0].rsplit('.', 1)
+module_name = splitted_module[0]
+class_name = splitted_module[1]
+
+module = __import__(module_name)
+for comp in module_name.split('.')[1:]:
+module = getattr(module, comp)
+
+activity_constructor = getattr(module, class_name)
+activity_handle = activityhandle.ActivityHandle(
+

Re: [Sugar-devel] [PATCH v2][sucrose-0.94][RFC] Add capability to connect to WPA/WPA2-Enterprise networks

2011-12-09 Thread Daniel Drake
On Fri, Dec 9, 2011 at 9:08 AM, Anish Mangal  wrote:
> This feature is originally being developed for f14/0.94.1 based dx3
> based on a request from OLPC-Australia. At this moment, I'd consider
> trying to upstream this for the sucrose-0.94 branch.

0.94 is feature frozen since a long time ago.

If you are proposing to undo the feature freeze (which is not
unthinkable) then you should do that in a separate thread - but you'll
probably also have to offer to become the maintainer as well. And I
think the community will require you to enforce a "master first"
policy from the outset for this to fly.

Daniel
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] Sugar upstreaming strategy and Activity Central upstreaming work

2011-12-09 Thread Marco
On 9 Dec 2011, at 19:13, Pablo Flores  wrote:
> 1. Many community members I talked to agreed that it would be better having 
> only one single maintainer, if possible working full time on it. What do you 
> think about that?

Why? My feeling is pretty much the opposite. The more (competent and with 
enough time to dedicate) maintainers the better!

Marco
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] Sugar upstreaming strategy and Activity Central upstreaming work

2011-12-09 Thread Walter Bender
On Fri, Dec 9, 2011 at 2:13 PM, Pablo Flores
 wrote:
> I'd like to openly discuss some aspects of Sugar upstreaming strategy and
> the role that AC is playing on it and may play in the future.
>
> As I understand it, there are 2 Sugar core maintainers: Sascha Silbe (silbe)
> and Simon Schampijer (erikos). Both have been working very hard for Sugar
> for a long time, reaching to good results.
>
> Silbe's work in the last more than 1 year has been paid by AC. He has been
> dedicating an important portion of his working time on upstreaming all kind
> of patches submitted by sugar developers all around. That's a contribution
> that AC has been giving to the community, as well as OLPC is making theirs
> by having erikos hired.
>
> In this moment, there are 3 main concerns I have related to this topic, and
> I'd like to know the community developers thoughts about them, looking at
> the future:
> 1. Many community members I talked to agreed that it would be better having
> only one single maintainer, if possible working full time on it. What do you
> think about that?

What is the rationale for this position?

> 2. In AC we're a bit behind in having our developments upstreamed (I asked
> silbe to summarize Dextrose status, as he recently did).

Great to see that report. Bernie forwarded it to sugar-devel where it
will undoubtedly reach more developers.

> So, in addition to
> needing to put an important amount of work on it, we're trying to have
> better working processes for upstreaming:
> ** Sending patches to sugar-devel as early as possible (if incomplete, as
> RFC for a first round of reviews).

+1 Sooner is almost always better.

> ** Having AC developers dedicating some hours for reviewing and testing
> patches submitted by community developers, participating on the lists and on
> the Development Team meetings.

I assume that some of this already happens. I have gotten great
feedback from Sascha over the years.

> ** Having AC developers trained for collaborating with and contributing to
> upstream themselves as much as possible. I asked silbe to help our
> developers on that.

Hard to argue with that :)

> 3. All this requires additional resources from AC, particularly silbe's
> time, which is not easy to find with all the work he already has. However,
> if we unilaterally take a decision on that (for instance, asking him to
> dedicate xx hours of his time for dextrose upstreaming, or on training our
> developers) we could be harming Sugar maintenance work. So, in my opinion,
> the current scheme for maintaining Sugar may not be sustainable in the mid
> term.

 It is not always clear from the outside who is responsible what; in
any case, this seems to be an internal AC matter.

> Do you agree with these observations? Looking forward for your feedback!
>
> Regards,
> Pablo Flores
> activitycentral.com
>
>
>
> ___
> Sugar-devel mailing list
> Sugar-devel@lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
>

regards.

-walter

-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] Sugar upstreaming strategy and Activity Central upstreaming work

2011-12-09 Thread Pablo Flores
I'd like to openly discuss some aspects of Sugar upstreaming strategy and
the role that AC is playing on it and may play in the future.

As I understand it, there are 2 Sugar core maintainers: Sascha Silbe
(silbe) and Simon Schampijer (erikos). Both have been working very hard for
Sugar for a long time, reaching to good results.

Silbe's work in the last more than 1 year has been paid by AC. He has been
dedicating an important portion of his working time on upstreaming all kind
of patches submitted by sugar developers all around. That's a contribution
that AC has been giving to the community, as well as OLPC is making theirs
by having erikos hired.

In this moment, there are 3 main concerns I have related to this topic, and
I'd like to know the community developers thoughts about them, looking at
the future:
1. Many community members I talked to agreed that it would be better having
only one single maintainer, if possible working full time on it. What do
you think about that?
2. In AC we're a bit behind in having our developments upstreamed (I asked
silbe to summarize Dextrose status, as he recently did). So, in addition to
needing to put an important amount of work on it, we're trying to have
better working processes for upstreaming:
** Sending patches to sugar-devel as early as possible (if incomplete, as
RFC for a first round of reviews).
** Having AC developers dedicating some hours for reviewing and testing
patches submitted by community developers, participating on the lists and
on the Development Team meetings.
** Having AC developers trained for collaborating with and contributing to
upstream themselves as much as possible. I asked silbe to help our
developers on that.
3. All this requires additional resources from AC, particularly silbe's
time, which is not easy to find with all the work he already has. However,
if we unilaterally take a decision on that (for instance, asking him to
dedicate xx hours of his time for dextrose upstreaming, or on training our
developers) we could be harming Sugar maintenance work. So, in my opinion,
the current scheme for maintaining Sugar may not be sustainable in the mid
term.

Do you agree with these observations? Looking forward for your feedback!

Regards,
Pablo Flores
activitycentral.com
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [ASLO] Release Flip-2

2011-12-09 Thread Sugar Labs Activities
Activity Homepage:
http://activities.sugarlabs.org/addon/4518

Sugar Platform:
0.82 - 0.96

Download Now:
http://activities.sugarlabs.org/downloads/file/27778/flip-2.xo

Release notes:
2

ENHANCEMENT
* Added solver
* Spanish translation


Sugar Labs Activities
http://activities.sugarlabs.org

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH v2][sucrose-0.94][RFC] Add capability to connect to WPA/WPA2-Enterprise networks

2011-12-09 Thread Anish Mangal
On Fri 09 Dec 2011 06:31:51 PM IST, Peter Robinson wrote:
> This really needs to be ported to the master branch which now used
> NetworkManager 0.9
>

I guess there is great work being done by dsd et. al to get NM 0.9 
stuff working with sugar/0.96+. I'd be happy to assist with reviewing 
porting etc. if upstream thinks this a valuable addition for mainline. 
To that end [cc+=erikos, dsd]

The patch however, is a departure from the current mainline efforts to 
_integrate_ network settings between gnome and sugar. It is more on the 
lines of 0.94 networking sugar code where sugar stores its own network 
settings in connections.cfg

This feature is originally being developed for f14/0.94.1 based dx3 
based on a request from OLPC-Australia. At this moment, I'd consider 
trying to upstream this for the sucrose-0.94 branch.

Finally, I'd appreciate people testing and reviewing this patch, esp 
with LEAP, since we're finding it difficult to get that test 
environment up.

> Peter
>
> On Fri, Dec 9, 2011 at 11:27 AM, Anish Mangal  
> wrote:
>> From: Ajay Garg 
>>
>> As per user-workflow, there is no difference :-
>> ---
>>
>> 1a. The (WPA/WPA2-Enterprise) network-icon is available on the
>> neighbourhood-view.
>> 1b. Upon clicking the network-icon, a popup dialog appears, asking for
>>parameters.
>> 1c. Upon clicking ok, the connection is made (shown by the
>>'Network-Connected'-icon in the tray).
>>
>> 2. If the connection is made successfully, the network-profile is saved
>>   in "connections.cfg". From next reboot onwards, the connection is made
>>automatically.
>>
>> Configurations :-
>> 
>>
>> Following configurations have been tested to work :
>> 1. Tunnelled TLS (TTLS)
>> 2. Protected EAP (PEAP)
>>
>> Following configurations are still to be tested :
>> 1. LEAP (seems that it requires support from the access-point).
>> 2. TLS  (the testing couldn't be done, even with nm-applet. Would
>>   like to hear if anyone gets it working with nm-applet, since the
>>   sugar-parameters-UI is modelled on nm-applet-UI.)
>>
>> The patch contains the UI-frontend code for entering all 4
>> configuration parameters (modelled on nm-applet's "Connect
>> to Hidden Wireless Network" -> "WPA/WPA2 Enterprise".
>>
>> Signed-off-by: Ajay Garg 
>> Tested-by: Anish Mangal 
>> Signed-off-by: Anish Mangal 
>> ---
>>  src/jarabe/desktop/keydialog.py|  174 +-
>>  src/jarabe/desktop/networkviews.py |  248 
>> +++-
>>  src/jarabe/model/network.py|   22 +++-
>>  3 files changed, 437 insertions(+), 7 deletions(-)
>>
>> diff --git a/src/jarabe/desktop/keydialog.py 
>> b/src/jarabe/desktop/keydialog.py
>> index c72f498..53745df 100644
>> --- a/src/jarabe/desktop/keydialog.py
>> +++ b/src/jarabe/desktop/keydialog.py
>> @@ -32,6 +32,10 @@ WEP_PASSPHRASE = 1
>>  WEP_HEX = 2
>>  WEP_ASCII = 3
>>
>> +SETTING_TYPE_STRING = 1
>> +SETTING_TYPE_LIST = 2
>> +
>> +
>>
>>  def string_is_hex(key):
>> is_hex = True
>> @@ -120,6 +124,158 @@ class KeyDialog(gtk.Dialog):
>> return self._response
>>
>>
>> +# Plain Old Python Object (POPO)
>> +class NetworkParametersPOPO(gtk.HBox):
>> +def __init__(self, auth_param):
>> +gtk.HBox.__init__(self, homogeneous=True)
>> +self._key = auth_param._key_name
>> +self._label = gtk.Label(_(auth_param._key_label))
>> +self._key_type = auth_param._key_type
>> +
>> +# Decide, if we need to show a 'entry',
>> +# or a 'list-store'
>> +if len(auth_param._options) == 0:
>> +self._show_entry = True
>> +else:
>> +self._show_entry = False
>> +
>> +self.pack_start(self._label)
>> +self._label.show()
>> +
>> +if self._show_entry:
>> +self._entry = gtk.Entry()
>> +self.pack_start(self._entry)
>> +self._entry.show()
>> +else:
>> +self._option_store = gtk.ListStore(str, str)
>> +for option in auth_param._options:
>> +self._option_store.append(option)
>> +
>> +self._list_store_entry = auth_param._options[0][1]
>> +self._option_combo = gtk.ComboBox(self._option_store)
>> +cell = gtk.CellRendererText()
>> +self._option_combo.pack_start(cell, True)
>> +self._option_combo.add_attribute(cell, 'text', 0)
>> +self._option_combo.set_active(0)
>> +self._option_combo.connect('changed',
>> +self._option_combo_changed_cb)
>> +self.pack_start(self._option_combo)
>> +self.show()
>> +self._option_combo.show()
>> +
>> +def _option_combo_changed_cb(self, widget):
>> +it = self._option_combo.get_active_iter()
>> +(value, ) = self._option_store.get(it, 1)
>> +self._list_store_entry = value
>> +
>> +def _get_key(self):
>>

Re: [Sugar-devel] [PATCH v2][sucrose-0.94][RFC] Add capability to connect to WPA/WPA2-Enterprise networks

2011-12-09 Thread Peter Robinson
This really needs to be ported to the master branch which now used
NetworkManager 0.9

Peter

On Fri, Dec 9, 2011 at 11:27 AM, Anish Mangal  wrote:
> From: Ajay Garg 
>
> As per user-workflow, there is no difference :-
> ---
>
> 1a. The (WPA/WPA2-Enterprise) network-icon is available on the
> neighbourhood-view.
> 1b. Upon clicking the network-icon, a popup dialog appears, asking for
>    parameters.
> 1c. Upon clicking ok, the connection is made (shown by the
>    'Network-Connected'-icon in the tray).
>
> 2. If the connection is made successfully, the network-profile is saved
>   in "connections.cfg". From next reboot onwards, the connection is made
>    automatically.
>
> Configurations :-
> 
>
> Following configurations have been tested to work :
> 1. Tunnelled TLS (TTLS)
> 2. Protected EAP (PEAP)
>
> Following configurations are still to be tested :
> 1. LEAP (seems that it requires support from the access-point).
> 2. TLS  (the testing couldn't be done, even with nm-applet. Would
>   like to hear if anyone gets it working with nm-applet, since the
>   sugar-parameters-UI is modelled on nm-applet-UI.)
>
> The patch contains the UI-frontend code for entering all 4
> configuration parameters (modelled on nm-applet's "Connect
> to Hidden Wireless Network" -> "WPA/WPA2 Enterprise".
>
> Signed-off-by: Ajay Garg 
> Tested-by: Anish Mangal 
> Signed-off-by: Anish Mangal 
> ---
>  src/jarabe/desktop/keydialog.py    |  174 +-
>  src/jarabe/desktop/networkviews.py |  248 
> +++-
>  src/jarabe/model/network.py        |   22 +++-
>  3 files changed, 437 insertions(+), 7 deletions(-)
>
> diff --git a/src/jarabe/desktop/keydialog.py b/src/jarabe/desktop/keydialog.py
> index c72f498..53745df 100644
> --- a/src/jarabe/desktop/keydialog.py
> +++ b/src/jarabe/desktop/keydialog.py
> @@ -32,6 +32,10 @@ WEP_PASSPHRASE = 1
>  WEP_HEX = 2
>  WEP_ASCII = 3
>
> +SETTING_TYPE_STRING = 1
> +SETTING_TYPE_LIST = 2
> +
> +
>
>  def string_is_hex(key):
>     is_hex = True
> @@ -120,6 +124,158 @@ class KeyDialog(gtk.Dialog):
>         return self._response
>
>
> +# Plain Old Python Object (POPO)
> +class NetworkParametersPOPO(gtk.HBox):
> +    def __init__(self, auth_param):
> +        gtk.HBox.__init__(self, homogeneous=True)
> +        self._key = auth_param._key_name
> +        self._label = gtk.Label(_(auth_param._key_label))
> +        self._key_type = auth_param._key_type
> +
> +        # Decide, if we need to show a 'entry',
> +        # or a 'list-store'
> +        if len(auth_param._options) == 0:
> +            self._show_entry = True
> +        else:
> +            self._show_entry = False
> +
> +        self.pack_start(self._label)
> +        self._label.show()
> +
> +        if self._show_entry:
> +            self._entry = gtk.Entry()
> +            self.pack_start(self._entry)
> +            self._entry.show()
> +        else:
> +            self._option_store = gtk.ListStore(str, str)
> +            for option in auth_param._options:
> +                self._option_store.append(option)
> +
> +            self._list_store_entry = auth_param._options[0][1]
> +            self._option_combo = gtk.ComboBox(self._option_store)
> +            cell = gtk.CellRendererText()
> +            self._option_combo.pack_start(cell, True)
> +            self._option_combo.add_attribute(cell, 'text', 0)
> +            self._option_combo.set_active(0)
> +            self._option_combo.connect('changed',
> +                    self._option_combo_changed_cb)
> +            self.pack_start(self._option_combo)
> +            self.show()
> +            self._option_combo.show()
> +
> +    def _option_combo_changed_cb(self, widget):
> +        it = self._option_combo.get_active_iter()
> +        (value, ) = self._option_store.get(it, 1)
> +        self._list_store_entry = value
> +
> +    def _get_key(self):
> +        return self._key
> +
> +    def _get_value(self):
> +        if self._show_entry:
> +            return self._entry.get_text()
> +        else:
> +            return self._list_store_entry
> +
> +
> +class KeyValuesDialog(gtk.Dialog):
> +    def __init__(self, auth_lists, final_callback, uuid, settings):
> +        gtk.Dialog.__init__(self, flags=gtk.DIALOG_MODAL)
> +        self.set_title(_('Wireless Parameters required'))
> +
> +        self._auth_lists = auth_lists
> +        self._final_callback = final_callback
> +        self._uuid = uuid
> +        self._settings = settings
> +
> +        label = gtk.Label(_("Please enter parameters\n"))
> +        self.vbox.pack_start(label)
> +
> +        self._auth_type_store = gtk.ListStore(str, str)
> +        for auth_list in self._auth_lists:
> +            self._auth_type_store.append([auth_list._auth_label,
> +                                          auth_list._auth_type])
> +
> +        self._auth_type_combo = gtk.ComboBox(self._auth_type

Re: [Sugar-devel] [PATCH v2][sucrose-0.94][RFC] Add capability to connect to WPA/WPA2-Enterprise networks

2011-12-09 Thread Anish Mangal
Minor change over the previous version so that the XO is able to 
reconnect to the enterprise network after a suspend-resume cycle.

On Fri 09 Dec 2011 04:57:54 PM IST, Anish Mangal wrote:
> From: Ajay Garg 
>
> As per user-workflow, there is no difference :-
> ---
>
> 1a. The (WPA/WPA2-Enterprise) network-icon is available on the
> neighbourhood-view.
> 1b. Upon clicking the network-icon, a popup dialog appears, asking for
> parameters.
> 1c. Upon clicking ok, the connection is made (shown by the
> 'Network-Connected'-icon in the tray).
>
> 2. If the connection is made successfully, the network-profile is saved
>in "connections.cfg". From next reboot onwards, the connection is made
> automatically.
>
> Configurations :-
> 
>
> Following configurations have been tested to work :
> 1. Tunnelled TLS (TTLS)
> 2. Protected EAP (PEAP)
>
> Following configurations are still to be tested :
> 1. LEAP (seems that it requires support from the access-point).
> 2. TLS  (the testing couldn't be done, even with nm-applet. Would
>like to hear if anyone gets it working with nm-applet, since the
>sugar-parameters-UI is modelled on nm-applet-UI.)
>
> The patch contains the UI-frontend code for entering all 4
> configuration parameters (modelled on nm-applet's "Connect
> to Hidden Wireless Network" -> "WPA/WPA2 Enterprise".
>
> Signed-off-by: Ajay Garg 
> Tested-by: Anish Mangal 
> Signed-off-by: Anish Mangal 
> ---
>  src/jarabe/desktop/keydialog.py|  174 +-
>  src/jarabe/desktop/networkviews.py |  248 
> +++-
>  src/jarabe/model/network.py|   22 +++-
>  3 files changed, 437 insertions(+), 7 deletions(-)
>
> diff --git a/src/jarabe/desktop/keydialog.py b/src/jarabe/desktop/keydialog.py
> index c72f498..53745df 100644
> --- a/src/jarabe/desktop/keydialog.py
> +++ b/src/jarabe/desktop/keydialog.py
> @@ -32,6 +32,10 @@ WEP_PASSPHRASE = 1
>  WEP_HEX = 2
>  WEP_ASCII = 3
>  
> +SETTING_TYPE_STRING = 1
> +SETTING_TYPE_LIST = 2
> +
> +
>  
>  def string_is_hex(key):
>  is_hex = True
> @@ -120,6 +124,158 @@ class KeyDialog(gtk.Dialog):
>  return self._response
>  
>  
> +# Plain Old Python Object (POPO)
> +class NetworkParametersPOPO(gtk.HBox):
> +def __init__(self, auth_param):
> +gtk.HBox.__init__(self, homogeneous=True)
> +self._key = auth_param._key_name
> +self._label = gtk.Label(_(auth_param._key_label))
> +self._key_type = auth_param._key_type
> +
> +# Decide, if we need to show a 'entry',
> +# or a 'list-store'
> +if len(auth_param._options) == 0:
> +self._show_entry = True
> +else:
> +self._show_entry = False
> +
> +self.pack_start(self._label)
> +self._label.show()
> +
> +if self._show_entry:
> +self._entry = gtk.Entry()
> +self.pack_start(self._entry)
> +self._entry.show()
> +else:
> +self._option_store = gtk.ListStore(str, str)
> +for option in auth_param._options:
> +self._option_store.append(option)
> +
> +self._list_store_entry = auth_param._options[0][1]
> +self._option_combo = gtk.ComboBox(self._option_store)
> +cell = gtk.CellRendererText()
> +self._option_combo.pack_start(cell, True)
> +self._option_combo.add_attribute(cell, 'text', 0)
> +self._option_combo.set_active(0)
> +self._option_combo.connect('changed',
> +self._option_combo_changed_cb)
> +self.pack_start(self._option_combo)
> +self.show()
> +self._option_combo.show()
> +
> +def _option_combo_changed_cb(self, widget):
> +it = self._option_combo.get_active_iter()
> +(value, ) = self._option_store.get(it, 1)
> +self._list_store_entry = value
> +
> +def _get_key(self):
> +return self._key
> +
> +def _get_value(self):
> +if self._show_entry:
> +return self._entry.get_text()
> +else:
> +return self._list_store_entry
> +
> +
> +class KeyValuesDialog(gtk.Dialog):
> +def __init__(self, auth_lists, final_callback, uuid, settings):
> +gtk.Dialog.__init__(self, flags=gtk.DIALOG_MODAL)
> +self.set_title(_('Wireless Parameters required'))
> +
> +self._auth_lists = auth_lists
> +self._final_callback = final_callback
> +self._uuid = uuid
> +self._settings = settings
> +
> +label = gtk.Label(_("Please enter parameters\n"))
> +self.vbox.pack_start(label)
> +
> +self._auth_type_store = gtk.ListStore(str, str)
> +for auth_list in self._auth_lists:
> +self._auth_type_store.append([auth_list._auth_label,
> +  auth_list._auth_type])
> +
> +   

[Sugar-devel] [PATCH v2][sucrose-0.94][RFC] Add capability to connect to WPA/WPA2-Enterprise networks

2011-12-09 Thread Anish Mangal
From: Ajay Garg 

As per user-workflow, there is no difference :-
---

1a. The (WPA/WPA2-Enterprise) network-icon is available on the
neighbourhood-view.
1b. Upon clicking the network-icon, a popup dialog appears, asking for
parameters.
1c. Upon clicking ok, the connection is made (shown by the
'Network-Connected'-icon in the tray).

2. If the connection is made successfully, the network-profile is saved
   in "connections.cfg". From next reboot onwards, the connection is made
automatically.

Configurations :-


Following configurations have been tested to work :
1. Tunnelled TLS (TTLS)
2. Protected EAP (PEAP)

Following configurations are still to be tested :
1. LEAP (seems that it requires support from the access-point).
2. TLS  (the testing couldn't be done, even with nm-applet. Would
   like to hear if anyone gets it working with nm-applet, since the
   sugar-parameters-UI is modelled on nm-applet-UI.)

The patch contains the UI-frontend code for entering all 4
configuration parameters (modelled on nm-applet's "Connect
to Hidden Wireless Network" -> "WPA/WPA2 Enterprise".

Signed-off-by: Ajay Garg 
Tested-by: Anish Mangal 
Signed-off-by: Anish Mangal 
---
 src/jarabe/desktop/keydialog.py|  174 +-
 src/jarabe/desktop/networkviews.py |  248 +++-
 src/jarabe/model/network.py|   22 +++-
 3 files changed, 437 insertions(+), 7 deletions(-)

diff --git a/src/jarabe/desktop/keydialog.py b/src/jarabe/desktop/keydialog.py
index c72f498..53745df 100644
--- a/src/jarabe/desktop/keydialog.py
+++ b/src/jarabe/desktop/keydialog.py
@@ -32,6 +32,10 @@ WEP_PASSPHRASE = 1
 WEP_HEX = 2
 WEP_ASCII = 3
 
+SETTING_TYPE_STRING = 1
+SETTING_TYPE_LIST = 2
+
+
 
 def string_is_hex(key):
 is_hex = True
@@ -120,6 +124,158 @@ class KeyDialog(gtk.Dialog):
 return self._response
 
 
+# Plain Old Python Object (POPO)
+class NetworkParametersPOPO(gtk.HBox):
+def __init__(self, auth_param):
+gtk.HBox.__init__(self, homogeneous=True)
+self._key = auth_param._key_name
+self._label = gtk.Label(_(auth_param._key_label))
+self._key_type = auth_param._key_type
+
+# Decide, if we need to show a 'entry',
+# or a 'list-store'
+if len(auth_param._options) == 0:
+self._show_entry = True
+else:
+self._show_entry = False
+
+self.pack_start(self._label)
+self._label.show()
+
+if self._show_entry:
+self._entry = gtk.Entry()
+self.pack_start(self._entry)
+self._entry.show()
+else:
+self._option_store = gtk.ListStore(str, str)
+for option in auth_param._options:
+self._option_store.append(option)
+
+self._list_store_entry = auth_param._options[0][1]
+self._option_combo = gtk.ComboBox(self._option_store)
+cell = gtk.CellRendererText()
+self._option_combo.pack_start(cell, True)
+self._option_combo.add_attribute(cell, 'text', 0)
+self._option_combo.set_active(0)
+self._option_combo.connect('changed',
+self._option_combo_changed_cb)
+self.pack_start(self._option_combo)
+self.show()
+self._option_combo.show()
+
+def _option_combo_changed_cb(self, widget):
+it = self._option_combo.get_active_iter()
+(value, ) = self._option_store.get(it, 1)
+self._list_store_entry = value
+
+def _get_key(self):
+return self._key
+
+def _get_value(self):
+if self._show_entry:
+return self._entry.get_text()
+else:
+return self._list_store_entry
+
+
+class KeyValuesDialog(gtk.Dialog):
+def __init__(self, auth_lists, final_callback, uuid, settings):
+gtk.Dialog.__init__(self, flags=gtk.DIALOG_MODAL)
+self.set_title(_('Wireless Parameters required'))
+
+self._auth_lists = auth_lists
+self._final_callback = final_callback
+self._uuid = uuid
+self._settings = settings
+
+label = gtk.Label(_("Please enter parameters\n"))
+self.vbox.pack_start(label)
+
+self._auth_type_store = gtk.ListStore(str, str)
+for auth_list in self._auth_lists:
+self._auth_type_store.append([auth_list._auth_label,
+  auth_list._auth_type])
+
+self._auth_type_combo = gtk.ComboBox(self._auth_type_store)
+cell = gtk.CellRendererText()
+self._auth_type_combo.pack_start(cell, True)
+self._auth_type_combo.add_attribute(cell, 'text', 0)
+self._auth_type_combo.set_active(0)
+self._auth_type_combo.connect('changed',
+self._auth_type_combo_changed_cb)
+self._auth_type_box = gtk.HBox(homogeneous=True)
+self._auth_label =