Re: [Sugar-devel] [PATCH v2][sucrose-0.94][RFC] Add capability to connect to WPA/WPA2-Enterprise networks
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 =