<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sugarlabs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mstone</id>
	<title>Sugar Labs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sugarlabs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mstone"/>
	<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/go/Special:Contributions/Mstone"/>
	<updated>2026-05-30T20:58:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=User:Mstone&amp;diff=60691</id>
		<title>User:Mstone</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=User:Mstone&amp;diff=60691"/>
		<updated>2011-01-10T00:07:16Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See http://wiki.laptop.org/go/Profiles/mstone&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[User:Mstone/Notes/D-Bus|D-Bus]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Queries:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://bugs.sugarlabs.org/query?status=accepted&amp;amp;status=assigned&amp;amp;status=new&amp;amp;status=reopened&amp;amp;group=priority&amp;amp;order=changetime&amp;amp;desc=1&amp;amp;max=1000&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;col=component&amp;amp;component=sugar sugar]&lt;br /&gt;
&lt;br /&gt;
[http://bugs.sugarlabs.org/query?status=accepted&amp;amp;status=assigned&amp;amp;status=new&amp;amp;status=reopened&amp;amp;group=priority&amp;amp;order=changetime&amp;amp;desc=1&amp;amp;max=1000&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;col=component&amp;amp;component=sugar-toolkit sugar-toolkit]&lt;br /&gt;
&lt;br /&gt;
[http://bugs.sugarlabs.org/query?status=accepted&amp;amp;status=assigned&amp;amp;status=new&amp;amp;status=reopened&amp;amp;group=priority&amp;amp;order=changetime&amp;amp;desc=1&amp;amp;max=1000&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;col=component&amp;amp;component=journal journal]&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=User:Mstone&amp;diff=60528</id>
		<title>User:Mstone</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=User:Mstone&amp;diff=60528"/>
		<updated>2011-01-02T00:12:05Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See http://wiki.laptop.org/go/Profiles/mstone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
[[User:Mstone/Notes/D-Bus|D-Bus]]&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=User:Mstone/Notes/D-Bus&amp;diff=60527</id>
		<title>User:Mstone/Notes/D-Bus</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=User:Mstone/Notes/D-Bus&amp;diff=60527"/>
		<updated>2011-01-02T00:04:17Z</updated>

		<summary type="html">&lt;p&gt;Mstone: Created page with &amp;quot;=== DataStore ===    m:create(profs, file_path, transfer_ownership)   s:Created(uid) (null)   m:update(uid, props, file_path, transfer_ownership)   s:Updated(uid)   m:find(query,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== DataStore ===&lt;br /&gt;
&lt;br /&gt;
  m:create(profs, file_path, transfer_ownership)&lt;br /&gt;
  s:Created(uid) (null)&lt;br /&gt;
  m:update(uid, props, file_path, transfer_ownership)&lt;br /&gt;
  s:Updated(uid)&lt;br /&gt;
  m:find(query, properties) -&amp;gt; entries, count&lt;br /&gt;
  m:get_filename(uid, sender) -&amp;gt; path&lt;br /&gt;
  m:get_properties(uid) -&amp;gt; dict&lt;br /&gt;
  m:get_uniquevaluesfor(propertyname, query) -&amp;gt; [string]&lt;br /&gt;
  m:delete(uid)&lt;br /&gt;
  s:Deleted(uid) (null)&lt;br /&gt;
  s:Stopped() (null)&lt;br /&gt;
  m:mount(uri, options) -&amp;gt; &#039;&#039;&lt;br /&gt;
  m:mounts() -&amp;gt; [{&#039;id&#039;:1}]&lt;br /&gt;
  m:unmount(mountpoint_id) -&amp;gt; (null)&lt;br /&gt;
  s:Mounted(descriptor) (null)&lt;br /&gt;
  s:Unmounted(descriptor) (null)&lt;br /&gt;
 &lt;br /&gt;
  other users:&lt;br /&gt;
    copy-to-journal&lt;br /&gt;
    copy-from-journal&lt;br /&gt;
&lt;br /&gt;
=== Presence ===&lt;br /&gt;
&lt;br /&gt;
  oy. (invites)&lt;br /&gt;
&lt;br /&gt;
=== Journal (object-chooser) ===&lt;br /&gt;
&lt;br /&gt;
  m:ShowObject(object_id)&lt;br /&gt;
  m:ChooseObject(parent_xid, what_filter) -&amp;gt; chooser_id&lt;br /&gt;
  s:ObjectChooserResponse(chooser_id, object_id)&lt;br /&gt;
  s:ObjectChooserCancelled(chooser_id)&lt;br /&gt;
&lt;br /&gt;
=== ActivityService (view source) ===&lt;br /&gt;
&lt;br /&gt;
  m:SetActive(active)&lt;br /&gt;
  m:InviteContact(account_path, contact_id)&lt;br /&gt;
  m:HandleViewSource()&lt;br /&gt;
  m:GetDocumentPath()&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
&lt;br /&gt;
  m:SayText(text)&lt;br /&gt;
&lt;br /&gt;
=== Shell (UIService) ===&lt;br /&gt;
&lt;br /&gt;
  m:GetBundlePath(bundle_id) -&amp;gt; path&lt;br /&gt;
  m:ActivateActivity(activity_id) -&amp;gt; (real-activity-not-launcher : bool)&lt;br /&gt;
  m:NotifyLaunch(bundle_id, activity_id)&lt;br /&gt;
  m:NotifyLaunchFailure(activity_id)&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
  nm key dialog ...&lt;br /&gt;
  network view&lt;br /&gt;
  cp-power&lt;br /&gt;
  cp-network&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=50103</id>
		<title>Summer of Code/Mentors</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=50103"/>
		<updated>2010-03-20T16:22:54Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* Michael */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
==Mentors==&lt;br /&gt;
Our most important need right now is for quality mentors. If you (or someone you know) would make a good mentor, please nominate yourself (or them), both here on the ML (iaep AT sl.o) and on the wiki (if you can&#039;t handle a little redundant paperwork, you&#039;re probably not a good candidate :). Include relevant information such as:&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
*Timezone&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Please also add this page to your watchlist. We will probably later do some kind of &amp;quot;community interview&amp;quot; process where we ask you questions on this page.&lt;br /&gt;
&lt;br /&gt;
=== Jameson ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Jameson.Quinn at gmail&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Central / Central America (UTC-6)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements, especially interested in language or developer tools.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week. If we are short on mentors and I find project(s) that are an especially good match, I could do 8 hrs (double duty). Over the summer, I hope to be helping to work on an XO deployment, hopefully on a paid basis, but am currently unemployed.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Develop activity, have done some tinkering with Sugar, I&#039;ve been involved for over a year.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I have several years&#039; experience as a full-time teacher.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nrp|Nrp]] ===&lt;br /&gt;
&lt;br /&gt;
* Name/contact&lt;br /&gt;
&lt;br /&gt;
Nirav Patel nrpatel at gmail&lt;br /&gt;
&lt;br /&gt;
* Timezone&lt;br /&gt;
&lt;br /&gt;
UTC-5&lt;br /&gt;
&lt;br /&gt;
* What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Pygame or PyGTK based Activities&lt;br /&gt;
&lt;br /&gt;
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Graduating and no job prospects, so it is likely I will have quite a&lt;br /&gt;
bit of free time as of early May.  5 hours a week is certainly doable.&lt;br /&gt;
&lt;br /&gt;
* What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Some Pygame/PyGTK Activity development and a module for Pygame.&lt;br /&gt;
&lt;br /&gt;
* What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Teaching Assistant and miscellaneous mentoring experiences at school.&lt;br /&gt;
&lt;br /&gt;
* Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I survived GSoC on the student end of things in 2008.&lt;br /&gt;
&lt;br /&gt;
=== Tomeu ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Tomeu | Tomeu Vizoso]]&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Central European Time&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Coded activities and for the sugar shell for more than two years now.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Last year mentored one intern at OLPC.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Bobbyp|Bobby]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
firstnamelastname at gmail, nteon on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Eastern Standard Time (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities, lower level stuff.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Probably 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Model activity, have done some tinkering with Sugar/Rainbow, rewrote boot-animation.  Fairly confident with C/Python/Linux, have been involved with OLPC for about a year (although have been mostly lurking on the sugar side of things for a few months).&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Summer camp counselor for a number of years, OLPC intern summer &#039;08.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I&#039;m a few months behind on Sugar development, but think its a fabulous project.  Let me know what you need of me.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Sebastian|Sebastian]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Sebastian Silva (sebastian at fuentelibre.org), (gmail alternative: sebatustra)&lt;br /&gt;
&lt;br /&gt;
icarito on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Lima, Perú (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities, especially &amp;quot;social&amp;quot; activities.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I am helping a teacher group this (northern summer), that leaves me enough time to commit to this (at least 4-6 hours a week, more if needed). It also is a great chance for some user feedback.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Community volunteer for 2 years now, developed activities, led workshops. Confident in python and GNU. Worked professionally in programming for some years.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Wade|Wade]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Wade Brainerd (wadetb at gmail dot com) &lt;br /&gt;
&lt;br /&gt;
wadeb on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Portland, Maine (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
New activities, Games, Updates to/refreshes of existing activities, Frameworks for creating activities in new languages (Flash, Ajax, Mono)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I will be available for a single mentorship this year.  I work full time as a programmer but have a flexible schedule.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Community volunteer for 2 years now, developed activities.  Experienced in Python, C++, others.  11 years as a professional programmer, including 5 as a technical director and team lead.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was closely involved in the 2007 OLPC GSoC project, reviewing applications and communicating with students.  I mentored two students informally during 2007 after their GSoC projects were not funded.  Both projects were completed with my help.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
As the Sugar Labs Activity Team coordinator, I have plenty of access to deployments.  This gives me a good handle on what student projects will most effectively advance Sugar Labs&#039; goals in the community.  &lt;br /&gt;
&lt;br /&gt;
As a volunteer activity developer, I have also developed many new activities myself, and overhauled existing ones.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Lglira|Lglira]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Luis Gustavo Lira, BSc, MSc lira.lg at pucp.edu.pe&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Lima, Perú (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Networking, Hardware Projects, Python, Activities (science, math, entrepreneurship).&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could mentor 1 o 2 students.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Engineer 10 years working experience, CIO and Executive level since 2006.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Consultant for big telecomms, systems integrators, etc.&lt;br /&gt;
Lecturer at University undergraduate and graduate level.&lt;br /&gt;
GSoC 2007, 2008 and 2009 Mentor for OpenMoko&lt;br /&gt;
GSoC 2008 for OLPC but my student was not funded&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Fellow of Lemelson Foundation RAMP-Peru, Social Entrepreneur, Free Culture activist, Appropriate Technology developer, Teaching Science, Math and Entrepeneurship in rural terciary schools.&lt;br /&gt;
&lt;br /&gt;
=== [[User:benlau|Ben Lau]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
xbenlau at gmail.com&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
UTC+8&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
Video , Computer Vision , Speech Processing , Python, Activities (Educational software , Chinese language learning)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
I could commit up to 4-5 hours a week,  able to mentor 1 student.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
10 years Linux development experience , include kernel porting (ARM), Linux driver , GTK+ , opencv , GStreamer , C/C++ , python&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
I have led two teams of university students to join an embedded system contest called Intel Cup (China) in 2006. The teams got a first prize and a second prize award finally.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
I am leading a team of volunteers on technical side for OLPC APAC division.&lt;br /&gt;
&lt;br /&gt;
=== [[User:SayaminduDasgupta|Sayamindu]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Sayamindu Dasgupta (sayamindu at gmail)&lt;br /&gt;
&lt;br /&gt;
unmadindu on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Asia/Calcutta (UTC+0530) (I normally work on European timezones)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Activities, l10n/i18n related projects.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I am working a contractor for OLPC for the next few months. However, I think I can commit around 4-5 hours per week for the work.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Wrote the Imageviewer activity, maintainer of Terminal, in the process of implementing largish features to Read. Familiar with GTK+, Python, Gstreamer, etc.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was a mentor during SoC 2008 for the Translate toolkit project (my student worked successfully on enhancing the Pootle featureset). I have also experience informally mentoring/guiding students and volunteers for a number of Free Software projects (mostly i18n/l10n related).&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I was a successful student participant in Summer of Code 2007 under Federico Mena-Quintero for the GNOME project. I also helped in the rating of applications for OLPC as a mentoring organisation during 2008&#039;s SoC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Assim|Assim Deodia]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Assim Deodia (assim.deodia at gmail dot com)&lt;br /&gt;
&lt;br /&gt;
assimd on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Asia/Calcutta (UTC+0530)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
[[Activities/Listen Spell|Listen Spell]], Activities related to speech synthesis&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I can comfortably devote 4-5 hrs a week. &lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I have developed speech server in SoCon for OLPC [http://wiki.laptop.org/go/Speech_Server| Speech Server], Deducto for OLPC and have also developed Listen Spell for OLPC in GSoC.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I have successful completed Summer of Code 2008 under Dafydd Harries for the OLPC. I have also developed a low cost OMR processing application which is hosted on sourceforge [http://sourceforge.net/projects/omr-ai/| OMR AI]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Aa|aa]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
andresambrois at gmail&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
America/Montevideo (UTC-3)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities and Sugar projects, especially in collaboration and networking. &lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
5-6 hours a week. Currently unemployed, but studying computer engineering. I devote most of my time to free software projects and Ceibal-related volunteering. &lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I maintain the PlayGo activity, one of the developers of the [http://wiki.laptop.org/go/Educational_Blogger_Project| EduBlog project], written a couple of patches for sugar and currently working on some improvements. Familiar with Python, PHP, Tcl, Shell Scripting and (some) C. &lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I&#039;ve given technical talks and workshops, and was a math tutor years ago. &lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I fear velociraptors.&lt;br /&gt;
&lt;br /&gt;
=== Alfonsodg ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Alfonsodg | Alfonso de la Guarda]]&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
GMT -5&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Sugar activities based on python, gtk, glade and some electronical enhancements&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4 to 6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Coded multiple python apps since 2001, including some XO activities&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Lead Technology Consultor for the Peruvian Army with 7 projects based all on FLOSS&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Love technology and wanna that some of my activities could be better with the help of many people&lt;br /&gt;
&lt;br /&gt;
=== Alex Levenson ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
**Alex Levenson&lt;br /&gt;
**alev742@gwu.edu&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
**Eastern Time during the school year, Pacific Time during the summer&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
**Anything physics engine related&lt;br /&gt;
**Anything related to games, pygame, olpcgames, graphics, etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
**I&#039;ll be working for Google in San Francisco this summer.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
**I wrote a couple of physics simulation activities for OLPC last summer. I am a computer science major and have experience as a software developer. Resume: http://student.seas.gwu.edu/~alev742/resume.php&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
**I am a computer science tutor here at The George Washington University.&lt;br /&gt;
&lt;br /&gt;
*What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty)&lt;br /&gt;
**I would be glad to provide any kind of support I can, from high level software design strategy to code reviews. I would like to focus on keeping the code not only functional but elegant, readable, and scalable - something that&#039;s very important as this platform moves forward.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
**Please check out my resume: http://student.seas.gwu.edu/~alev742/resume.php&lt;br /&gt;
**And also my olpc userpage: http://wiki.laptop.org/go/User:Alexlevenson&lt;br /&gt;
&lt;br /&gt;
=== Guillaume Desmottes ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact: [[User:Cassidy|Guillaume Desmottes]]&lt;br /&gt;
&lt;br /&gt;
*Timezone: GMT+1 (UK)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor? Telepathy related&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
** If possible I&#039;d prefer co-mentoring so I would focus on the Telepathy part and a Sugar guy on the UI/integration one. I&#039;ll work this summer but my [http://www.collabora.co.uk/ employer] would probably let me allocate some time on mentoring if needed. I could maybe have another soc student on the GNOME front too.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
** I hack on Telepathy as my job. Did lot of the Telepathy integration in Sugar.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
** Never mentored soc projects but regularly help people on #telepathy and #sugar.&lt;br /&gt;
&lt;br /&gt;
*What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty)&lt;br /&gt;
** My main goal is to ensure than proposed projects are did the right way. I want to avoid that student did the code on his own without any input from relevant person and so is finally never merged because it was just the wrong approach.&lt;br /&gt;
&lt;br /&gt;
===[[User:BryanWB|Bryan W Berry]]===&lt;br /&gt;
&lt;br /&gt;
*Name: [[User:BryanWB|Bryan W Berry]]&lt;br /&gt;
*Timezone : GMT+5:45 (Nepal)&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
Using Web technologies to create Sugar activities, like [[Karma]]&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
&lt;br /&gt;
I can probably only mentor one person. I think I can contribute 10 hours per week for 3 months.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
For the past two years I have led a team of 10 full-time software developers creating open-source educational learning activities.  &lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I have mentored 12 Nepali interns at OLE Nepal over the last 12 months.&lt;br /&gt;
&lt;br /&gt;
What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty) &lt;br /&gt;
&lt;br /&gt;
There is a lot to creating learning activities that is not technical but procedure. I am particularly interested in making it easier for programmers to create learning activities.&lt;br /&gt;
&lt;br /&gt;
===[[User:Walter|Walter]]===&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Walter Bender / (walter AT sl.o)&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
EST (UTC+4)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Activities, and some Sugar UI-related projects (anything relevant to daily life in the classroom.)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
&lt;br /&gt;
Not sure what a &amp;quot;double mentor&amp;quot; is, but I could put in 10 hours/week...&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I have been with the Sugar project since the beginning and have been making the occasional Sugar patch; I have written and maintain a half-dozen activities.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was a GSoC coordinator and mentor in 2009. I have supervised hundreds of MIT undergraduate research projects and 50+ graduate-level (MS&amp;amp;PhD) thesis projects.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
You learn through doing, so I will roll up my sleeves along side whomever I mentor, because I want to keep learning.&lt;br /&gt;
&lt;br /&gt;
===[[User:Mstone|Michael]]===&lt;br /&gt;
*Name/contact&lt;br /&gt;
:: Michael Stone / michael@laptop.org&lt;br /&gt;
*Timezone&lt;br /&gt;
:: EDT (UTC-4)&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
:: One project&lt;br /&gt;
*How much time could you devote to mentoring?&lt;br /&gt;
:: 5-10 hr/week&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
:: I am the author of [http://wiki.laptop.org/go/Rainbow rainbow]. I also am intimately familiar with Sugar&#039;s architecture, design, and code base.&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
:: I analyze, critique, and improve software professionally, often working with less experienced coders. I also managed the release of a small operating system ([http://wiki.laptop.org/go/Release_notes/8.2.0 OLPC&#039;s 8.2.0 OS release]) in which I helped to fold the work of many contributors, both new and old, into a successful and coherent software development experience.&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
:: My entrée into professional software development, which I love, was an internship not unlike the ones you&#039;re applying for here.&lt;br /&gt;
&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=50102</id>
		<title>Summer of Code/Mentors</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=50102"/>
		<updated>2010-03-20T16:15:35Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* Michael */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
==Mentors==&lt;br /&gt;
Our most important need right now is for quality mentors. If you (or someone you know) would make a good mentor, please nominate yourself (or them), both here on the ML (iaep AT sl.o) and on the wiki (if you can&#039;t handle a little redundant paperwork, you&#039;re probably not a good candidate :). Include relevant information such as:&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
*Timezone&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Please also add this page to your watchlist. We will probably later do some kind of &amp;quot;community interview&amp;quot; process where we ask you questions on this page.&lt;br /&gt;
&lt;br /&gt;
=== Jameson ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Jameson.Quinn at gmail&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Central / Central America (UTC-6)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements, especially interested in language or developer tools.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week. If we are short on mentors and I find project(s) that are an especially good match, I could do 8 hrs (double duty). Over the summer, I hope to be helping to work on an XO deployment, hopefully on a paid basis, but am currently unemployed.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Develop activity, have done some tinkering with Sugar, I&#039;ve been involved for over a year.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I have several years&#039; experience as a full-time teacher.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nrp|Nrp]] ===&lt;br /&gt;
&lt;br /&gt;
* Name/contact&lt;br /&gt;
&lt;br /&gt;
Nirav Patel nrpatel at gmail&lt;br /&gt;
&lt;br /&gt;
* Timezone&lt;br /&gt;
&lt;br /&gt;
UTC-5&lt;br /&gt;
&lt;br /&gt;
* What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Pygame or PyGTK based Activities&lt;br /&gt;
&lt;br /&gt;
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Graduating and no job prospects, so it is likely I will have quite a&lt;br /&gt;
bit of free time as of early May.  5 hours a week is certainly doable.&lt;br /&gt;
&lt;br /&gt;
* What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Some Pygame/PyGTK Activity development and a module for Pygame.&lt;br /&gt;
&lt;br /&gt;
* What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Teaching Assistant and miscellaneous mentoring experiences at school.&lt;br /&gt;
&lt;br /&gt;
* Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I survived GSoC on the student end of things in 2008.&lt;br /&gt;
&lt;br /&gt;
=== Tomeu ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Tomeu | Tomeu Vizoso]]&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Central European Time&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Coded activities and for the sugar shell for more than two years now.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Last year mentored one intern at OLPC.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Bobbyp|Bobby]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
firstnamelastname at gmail, nteon on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Eastern Standard Time (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities, lower level stuff.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Probably 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Model activity, have done some tinkering with Sugar/Rainbow, rewrote boot-animation.  Fairly confident with C/Python/Linux, have been involved with OLPC for about a year (although have been mostly lurking on the sugar side of things for a few months).&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Summer camp counselor for a number of years, OLPC intern summer &#039;08.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I&#039;m a few months behind on Sugar development, but think its a fabulous project.  Let me know what you need of me.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Sebastian|Sebastian]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Sebastian Silva (sebastian at fuentelibre.org), (gmail alternative: sebatustra)&lt;br /&gt;
&lt;br /&gt;
icarito on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Lima, Perú (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities, especially &amp;quot;social&amp;quot; activities.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I am helping a teacher group this (northern summer), that leaves me enough time to commit to this (at least 4-6 hours a week, more if needed). It also is a great chance for some user feedback.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Community volunteer for 2 years now, developed activities, led workshops. Confident in python and GNU. Worked professionally in programming for some years.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Wade|Wade]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Wade Brainerd (wadetb at gmail dot com) &lt;br /&gt;
&lt;br /&gt;
wadeb on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Portland, Maine (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
New activities, Games, Updates to/refreshes of existing activities, Frameworks for creating activities in new languages (Flash, Ajax, Mono)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I will be available for a single mentorship this year.  I work full time as a programmer but have a flexible schedule.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Community volunteer for 2 years now, developed activities.  Experienced in Python, C++, others.  11 years as a professional programmer, including 5 as a technical director and team lead.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was closely involved in the 2007 OLPC GSoC project, reviewing applications and communicating with students.  I mentored two students informally during 2007 after their GSoC projects were not funded.  Both projects were completed with my help.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
As the Sugar Labs Activity Team coordinator, I have plenty of access to deployments.  This gives me a good handle on what student projects will most effectively advance Sugar Labs&#039; goals in the community.  &lt;br /&gt;
&lt;br /&gt;
As a volunteer activity developer, I have also developed many new activities myself, and overhauled existing ones.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Lglira|Lglira]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Luis Gustavo Lira, BSc, MSc lira.lg at pucp.edu.pe&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Lima, Perú (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Networking, Hardware Projects, Python, Activities (science, math, entrepreneurship).&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could mentor 1 o 2 students.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Engineer 10 years working experience, CIO and Executive level since 2006.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Consultant for big telecomms, systems integrators, etc.&lt;br /&gt;
Lecturer at University undergraduate and graduate level.&lt;br /&gt;
GSoC 2007, 2008 and 2009 Mentor for OpenMoko&lt;br /&gt;
GSoC 2008 for OLPC but my student was not funded&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Fellow of Lemelson Foundation RAMP-Peru, Social Entrepreneur, Free Culture activist, Appropriate Technology developer, Teaching Science, Math and Entrepeneurship in rural terciary schools.&lt;br /&gt;
&lt;br /&gt;
=== [[User:benlau|Ben Lau]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
xbenlau at gmail.com&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
UTC+8&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
Video , Computer Vision , Speech Processing , Python, Activities (Educational software , Chinese language learning)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
I could commit up to 4-5 hours a week,  able to mentor 1 student.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
10 years Linux development experience , include kernel porting (ARM), Linux driver , GTK+ , opencv , GStreamer , C/C++ , python&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
I have led two teams of university students to join an embedded system contest called Intel Cup (China) in 2006. The teams got a first prize and a second prize award finally.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
I am leading a team of volunteers on technical side for OLPC APAC division.&lt;br /&gt;
&lt;br /&gt;
=== [[User:SayaminduDasgupta|Sayamindu]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Sayamindu Dasgupta (sayamindu at gmail)&lt;br /&gt;
&lt;br /&gt;
unmadindu on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Asia/Calcutta (UTC+0530) (I normally work on European timezones)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Activities, l10n/i18n related projects.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I am working a contractor for OLPC for the next few months. However, I think I can commit around 4-5 hours per week for the work.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Wrote the Imageviewer activity, maintainer of Terminal, in the process of implementing largish features to Read. Familiar with GTK+, Python, Gstreamer, etc.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was a mentor during SoC 2008 for the Translate toolkit project (my student worked successfully on enhancing the Pootle featureset). I have also experience informally mentoring/guiding students and volunteers for a number of Free Software projects (mostly i18n/l10n related).&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I was a successful student participant in Summer of Code 2007 under Federico Mena-Quintero for the GNOME project. I also helped in the rating of applications for OLPC as a mentoring organisation during 2008&#039;s SoC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Assim|Assim Deodia]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Assim Deodia (assim.deodia at gmail dot com)&lt;br /&gt;
&lt;br /&gt;
assimd on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Asia/Calcutta (UTC+0530)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
[[Activities/Listen Spell|Listen Spell]], Activities related to speech synthesis&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I can comfortably devote 4-5 hrs a week. &lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I have developed speech server in SoCon for OLPC [http://wiki.laptop.org/go/Speech_Server| Speech Server], Deducto for OLPC and have also developed Listen Spell for OLPC in GSoC.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I have successful completed Summer of Code 2008 under Dafydd Harries for the OLPC. I have also developed a low cost OMR processing application which is hosted on sourceforge [http://sourceforge.net/projects/omr-ai/| OMR AI]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Aa|aa]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
andresambrois at gmail&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
America/Montevideo (UTC-3)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities and Sugar projects, especially in collaboration and networking. &lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
5-6 hours a week. Currently unemployed, but studying computer engineering. I devote most of my time to free software projects and Ceibal-related volunteering. &lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I maintain the PlayGo activity, one of the developers of the [http://wiki.laptop.org/go/Educational_Blogger_Project| EduBlog project], written a couple of patches for sugar and currently working on some improvements. Familiar with Python, PHP, Tcl, Shell Scripting and (some) C. &lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I&#039;ve given technical talks and workshops, and was a math tutor years ago. &lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I fear velociraptors.&lt;br /&gt;
&lt;br /&gt;
=== Alfonsodg ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Alfonsodg | Alfonso de la Guarda]]&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
GMT -5&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Sugar activities based on python, gtk, glade and some electronical enhancements&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4 to 6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Coded multiple python apps since 2001, including some XO activities&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Lead Technology Consultor for the Peruvian Army with 7 projects based all on FLOSS&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Love technology and wanna that some of my activities could be better with the help of many people&lt;br /&gt;
&lt;br /&gt;
=== Alex Levenson ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
**Alex Levenson&lt;br /&gt;
**alev742@gwu.edu&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
**Eastern Time during the school year, Pacific Time during the summer&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
**Anything physics engine related&lt;br /&gt;
**Anything related to games, pygame, olpcgames, graphics, etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
**I&#039;ll be working for Google in San Francisco this summer.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
**I wrote a couple of physics simulation activities for OLPC last summer. I am a computer science major and have experience as a software developer. Resume: http://student.seas.gwu.edu/~alev742/resume.php&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
**I am a computer science tutor here at The George Washington University.&lt;br /&gt;
&lt;br /&gt;
*What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty)&lt;br /&gt;
**I would be glad to provide any kind of support I can, from high level software design strategy to code reviews. I would like to focus on keeping the code not only functional but elegant, readable, and scalable - something that&#039;s very important as this platform moves forward.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
**Please check out my resume: http://student.seas.gwu.edu/~alev742/resume.php&lt;br /&gt;
**And also my olpc userpage: http://wiki.laptop.org/go/User:Alexlevenson&lt;br /&gt;
&lt;br /&gt;
=== Guillaume Desmottes ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact: [[User:Cassidy|Guillaume Desmottes]]&lt;br /&gt;
&lt;br /&gt;
*Timezone: GMT+1 (UK)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor? Telepathy related&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
** If possible I&#039;d prefer co-mentoring so I would focus on the Telepathy part and a Sugar guy on the UI/integration one. I&#039;ll work this summer but my [http://www.collabora.co.uk/ employer] would probably let me allocate some time on mentoring if needed. I could maybe have another soc student on the GNOME front too.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
** I hack on Telepathy as my job. Did lot of the Telepathy integration in Sugar.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
** Never mentored soc projects but regularly help people on #telepathy and #sugar.&lt;br /&gt;
&lt;br /&gt;
*What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty)&lt;br /&gt;
** My main goal is to ensure than proposed projects are did the right way. I want to avoid that student did the code on his own without any input from relevant person and so is finally never merged because it was just the wrong approach.&lt;br /&gt;
&lt;br /&gt;
===[[User:BryanWB|Bryan W Berry]]===&lt;br /&gt;
&lt;br /&gt;
*Name: [[User:BryanWB|Bryan W Berry]]&lt;br /&gt;
*Timezone : GMT+5:45 (Nepal)&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
Using Web technologies to create Sugar activities, like [[Karma]]&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
&lt;br /&gt;
I can probably only mentor one person. I think I can contribute 10 hours per week for 3 months.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
For the past two years I have led a team of 10 full-time software developers creating open-source educational learning activities.  &lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I have mentored 12 Nepali interns at OLE Nepal over the last 12 months.&lt;br /&gt;
&lt;br /&gt;
What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty) &lt;br /&gt;
&lt;br /&gt;
There is a lot to creating learning activities that is not technical but procedure. I am particularly interested in making it easier for programmers to create learning activities.&lt;br /&gt;
&lt;br /&gt;
===[[User:Walter|Walter]]===&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Walter Bender / (walter AT sl.o)&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
EST (UTC+4)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Activities, and some Sugar UI-related projects (anything relevant to daily life in the classroom.)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
&lt;br /&gt;
Not sure what a &amp;quot;double mentor&amp;quot; is, but I could put in 10 hours/week...&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I have been with the Sugar project since the beginning and have been making the occasional Sugar patch; I have written and maintain a half-dozen activities.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was a GSoC coordinator and mentor in 2009. I have supervised hundreds of MIT undergraduate research projects and 50+ graduate-level (MS&amp;amp;PhD) thesis projects.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
You learn through doing, so I will roll up my sleeves along side whomever I mentor, because I want to keep learning.&lt;br /&gt;
&lt;br /&gt;
===[[User:Mstone|Michael]]===&lt;br /&gt;
*Name/contact&lt;br /&gt;
:: Michael Stone / michael@laptop.org&lt;br /&gt;
*Timezone&lt;br /&gt;
:: EDT (UTC-4)&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
:: One project&lt;br /&gt;
*How much time could you devote to mentoring?&lt;br /&gt;
:: 5-10 hr/week&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
:: I am the author of [http://wiki.laptop.org/go/Rainbow rainbow]. I also am intimately familiar with Sugar&#039;s architecture, design, and code base.&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
:: I analyze, critique, and improve software professionally, often working with less experienced coders. I also managed the release of a small operating system ([http://wiki.laptop.org/go/Release_notes/8.2.0 OLPC&#039;s 8.2.0 OS release]) in which I helped to fold the work of many contributors, both new and old, into a successful and coherent software development experience.&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
:: My entrée into professional software development, [http://wiki.laptop.org/go/Rainbow rainbow], was begun in an internship not unlike the ones you&#039;re applying for here. Now it&#039;s time for me to &amp;quot;pay it forward&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=50101</id>
		<title>Summer of Code/Mentors</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=50101"/>
		<updated>2010-03-20T16:15:10Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* Michael */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
==Mentors==&lt;br /&gt;
Our most important need right now is for quality mentors. If you (or someone you know) would make a good mentor, please nominate yourself (or them), both here on the ML (iaep AT sl.o) and on the wiki (if you can&#039;t handle a little redundant paperwork, you&#039;re probably not a good candidate :). Include relevant information such as:&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
*Timezone&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Please also add this page to your watchlist. We will probably later do some kind of &amp;quot;community interview&amp;quot; process where we ask you questions on this page.&lt;br /&gt;
&lt;br /&gt;
=== Jameson ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Jameson.Quinn at gmail&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Central / Central America (UTC-6)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements, especially interested in language or developer tools.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week. If we are short on mentors and I find project(s) that are an especially good match, I could do 8 hrs (double duty). Over the summer, I hope to be helping to work on an XO deployment, hopefully on a paid basis, but am currently unemployed.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Develop activity, have done some tinkering with Sugar, I&#039;ve been involved for over a year.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I have several years&#039; experience as a full-time teacher.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nrp|Nrp]] ===&lt;br /&gt;
&lt;br /&gt;
* Name/contact&lt;br /&gt;
&lt;br /&gt;
Nirav Patel nrpatel at gmail&lt;br /&gt;
&lt;br /&gt;
* Timezone&lt;br /&gt;
&lt;br /&gt;
UTC-5&lt;br /&gt;
&lt;br /&gt;
* What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Pygame or PyGTK based Activities&lt;br /&gt;
&lt;br /&gt;
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Graduating and no job prospects, so it is likely I will have quite a&lt;br /&gt;
bit of free time as of early May.  5 hours a week is certainly doable.&lt;br /&gt;
&lt;br /&gt;
* What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Some Pygame/PyGTK Activity development and a module for Pygame.&lt;br /&gt;
&lt;br /&gt;
* What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Teaching Assistant and miscellaneous mentoring experiences at school.&lt;br /&gt;
&lt;br /&gt;
* Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I survived GSoC on the student end of things in 2008.&lt;br /&gt;
&lt;br /&gt;
=== Tomeu ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Tomeu | Tomeu Vizoso]]&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Central European Time&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Coded activities and for the sugar shell for more than two years now.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Last year mentored one intern at OLPC.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Bobbyp|Bobby]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
firstnamelastname at gmail, nteon on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Eastern Standard Time (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities, lower level stuff.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Probably 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Model activity, have done some tinkering with Sugar/Rainbow, rewrote boot-animation.  Fairly confident with C/Python/Linux, have been involved with OLPC for about a year (although have been mostly lurking on the sugar side of things for a few months).&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Summer camp counselor for a number of years, OLPC intern summer &#039;08.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I&#039;m a few months behind on Sugar development, but think its a fabulous project.  Let me know what you need of me.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Sebastian|Sebastian]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Sebastian Silva (sebastian at fuentelibre.org), (gmail alternative: sebatustra)&lt;br /&gt;
&lt;br /&gt;
icarito on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Lima, Perú (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities, especially &amp;quot;social&amp;quot; activities.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I am helping a teacher group this (northern summer), that leaves me enough time to commit to this (at least 4-6 hours a week, more if needed). It also is a great chance for some user feedback.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Community volunteer for 2 years now, developed activities, led workshops. Confident in python and GNU. Worked professionally in programming for some years.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Wade|Wade]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Wade Brainerd (wadetb at gmail dot com) &lt;br /&gt;
&lt;br /&gt;
wadeb on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Portland, Maine (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
New activities, Games, Updates to/refreshes of existing activities, Frameworks for creating activities in new languages (Flash, Ajax, Mono)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I will be available for a single mentorship this year.  I work full time as a programmer but have a flexible schedule.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Community volunteer for 2 years now, developed activities.  Experienced in Python, C++, others.  11 years as a professional programmer, including 5 as a technical director and team lead.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was closely involved in the 2007 OLPC GSoC project, reviewing applications and communicating with students.  I mentored two students informally during 2007 after their GSoC projects were not funded.  Both projects were completed with my help.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
As the Sugar Labs Activity Team coordinator, I have plenty of access to deployments.  This gives me a good handle on what student projects will most effectively advance Sugar Labs&#039; goals in the community.  &lt;br /&gt;
&lt;br /&gt;
As a volunteer activity developer, I have also developed many new activities myself, and overhauled existing ones.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Lglira|Lglira]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Luis Gustavo Lira, BSc, MSc lira.lg at pucp.edu.pe&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Lima, Perú (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Networking, Hardware Projects, Python, Activities (science, math, entrepreneurship).&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could mentor 1 o 2 students.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Engineer 10 years working experience, CIO and Executive level since 2006.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Consultant for big telecomms, systems integrators, etc.&lt;br /&gt;
Lecturer at University undergraduate and graduate level.&lt;br /&gt;
GSoC 2007, 2008 and 2009 Mentor for OpenMoko&lt;br /&gt;
GSoC 2008 for OLPC but my student was not funded&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Fellow of Lemelson Foundation RAMP-Peru, Social Entrepreneur, Free Culture activist, Appropriate Technology developer, Teaching Science, Math and Entrepeneurship in rural terciary schools.&lt;br /&gt;
&lt;br /&gt;
=== [[User:benlau|Ben Lau]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
xbenlau at gmail.com&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
UTC+8&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
Video , Computer Vision , Speech Processing , Python, Activities (Educational software , Chinese language learning)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
I could commit up to 4-5 hours a week,  able to mentor 1 student.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
10 years Linux development experience , include kernel porting (ARM), Linux driver , GTK+ , opencv , GStreamer , C/C++ , python&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
I have led two teams of university students to join an embedded system contest called Intel Cup (China) in 2006. The teams got a first prize and a second prize award finally.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
I am leading a team of volunteers on technical side for OLPC APAC division.&lt;br /&gt;
&lt;br /&gt;
=== [[User:SayaminduDasgupta|Sayamindu]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Sayamindu Dasgupta (sayamindu at gmail)&lt;br /&gt;
&lt;br /&gt;
unmadindu on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Asia/Calcutta (UTC+0530) (I normally work on European timezones)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Activities, l10n/i18n related projects.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I am working a contractor for OLPC for the next few months. However, I think I can commit around 4-5 hours per week for the work.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Wrote the Imageviewer activity, maintainer of Terminal, in the process of implementing largish features to Read. Familiar with GTK+, Python, Gstreamer, etc.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was a mentor during SoC 2008 for the Translate toolkit project (my student worked successfully on enhancing the Pootle featureset). I have also experience informally mentoring/guiding students and volunteers for a number of Free Software projects (mostly i18n/l10n related).&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I was a successful student participant in Summer of Code 2007 under Federico Mena-Quintero for the GNOME project. I also helped in the rating of applications for OLPC as a mentoring organisation during 2008&#039;s SoC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Assim|Assim Deodia]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Assim Deodia (assim.deodia at gmail dot com)&lt;br /&gt;
&lt;br /&gt;
assimd on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Asia/Calcutta (UTC+0530)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
[[Activities/Listen Spell|Listen Spell]], Activities related to speech synthesis&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I can comfortably devote 4-5 hrs a week. &lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I have developed speech server in SoCon for OLPC [http://wiki.laptop.org/go/Speech_Server| Speech Server], Deducto for OLPC and have also developed Listen Spell for OLPC in GSoC.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I have successful completed Summer of Code 2008 under Dafydd Harries for the OLPC. I have also developed a low cost OMR processing application which is hosted on sourceforge [http://sourceforge.net/projects/omr-ai/| OMR AI]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Aa|aa]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
andresambrois at gmail&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
America/Montevideo (UTC-3)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities and Sugar projects, especially in collaboration and networking. &lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
5-6 hours a week. Currently unemployed, but studying computer engineering. I devote most of my time to free software projects and Ceibal-related volunteering. &lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I maintain the PlayGo activity, one of the developers of the [http://wiki.laptop.org/go/Educational_Blogger_Project| EduBlog project], written a couple of patches for sugar and currently working on some improvements. Familiar with Python, PHP, Tcl, Shell Scripting and (some) C. &lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I&#039;ve given technical talks and workshops, and was a math tutor years ago. &lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I fear velociraptors.&lt;br /&gt;
&lt;br /&gt;
=== Alfonsodg ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Alfonsodg | Alfonso de la Guarda]]&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
GMT -5&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Sugar activities based on python, gtk, glade and some electronical enhancements&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4 to 6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Coded multiple python apps since 2001, including some XO activities&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Lead Technology Consultor for the Peruvian Army with 7 projects based all on FLOSS&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Love technology and wanna that some of my activities could be better with the help of many people&lt;br /&gt;
&lt;br /&gt;
=== Alex Levenson ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
**Alex Levenson&lt;br /&gt;
**alev742@gwu.edu&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
**Eastern Time during the school year, Pacific Time during the summer&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
**Anything physics engine related&lt;br /&gt;
**Anything related to games, pygame, olpcgames, graphics, etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
**I&#039;ll be working for Google in San Francisco this summer.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
**I wrote a couple of physics simulation activities for OLPC last summer. I am a computer science major and have experience as a software developer. Resume: http://student.seas.gwu.edu/~alev742/resume.php&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
**I am a computer science tutor here at The George Washington University.&lt;br /&gt;
&lt;br /&gt;
*What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty)&lt;br /&gt;
**I would be glad to provide any kind of support I can, from high level software design strategy to code reviews. I would like to focus on keeping the code not only functional but elegant, readable, and scalable - something that&#039;s very important as this platform moves forward.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
**Please check out my resume: http://student.seas.gwu.edu/~alev742/resume.php&lt;br /&gt;
**And also my olpc userpage: http://wiki.laptop.org/go/User:Alexlevenson&lt;br /&gt;
&lt;br /&gt;
=== Guillaume Desmottes ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact: [[User:Cassidy|Guillaume Desmottes]]&lt;br /&gt;
&lt;br /&gt;
*Timezone: GMT+1 (UK)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor? Telepathy related&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
** If possible I&#039;d prefer co-mentoring so I would focus on the Telepathy part and a Sugar guy on the UI/integration one. I&#039;ll work this summer but my [http://www.collabora.co.uk/ employer] would probably let me allocate some time on mentoring if needed. I could maybe have another soc student on the GNOME front too.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
** I hack on Telepathy as my job. Did lot of the Telepathy integration in Sugar.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
** Never mentored soc projects but regularly help people on #telepathy and #sugar.&lt;br /&gt;
&lt;br /&gt;
*What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty)&lt;br /&gt;
** My main goal is to ensure than proposed projects are did the right way. I want to avoid that student did the code on his own without any input from relevant person and so is finally never merged because it was just the wrong approach.&lt;br /&gt;
&lt;br /&gt;
===[[User:BryanWB|Bryan W Berry]]===&lt;br /&gt;
&lt;br /&gt;
*Name: [[User:BryanWB|Bryan W Berry]]&lt;br /&gt;
*Timezone : GMT+5:45 (Nepal)&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
Using Web technologies to create Sugar activities, like [[Karma]]&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
&lt;br /&gt;
I can probably only mentor one person. I think I can contribute 10 hours per week for 3 months.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
For the past two years I have led a team of 10 full-time software developers creating open-source educational learning activities.  &lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I have mentored 12 Nepali interns at OLE Nepal over the last 12 months.&lt;br /&gt;
&lt;br /&gt;
What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty) &lt;br /&gt;
&lt;br /&gt;
There is a lot to creating learning activities that is not technical but procedure. I am particularly interested in making it easier for programmers to create learning activities.&lt;br /&gt;
&lt;br /&gt;
===[[User:Walter|Walter]]===&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Walter Bender / (walter AT sl.o)&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
EST (UTC+4)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Activities, and some Sugar UI-related projects (anything relevant to daily life in the classroom.)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
&lt;br /&gt;
Not sure what a &amp;quot;double mentor&amp;quot; is, but I could put in 10 hours/week...&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I have been with the Sugar project since the beginning and have been making the occasional Sugar patch; I have written and maintain a half-dozen activities.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was a GSoC coordinator and mentor in 2009. I have supervised hundreds of MIT undergraduate research projects and 50+ graduate-level (MS&amp;amp;PhD) thesis projects.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
You learn through doing, so I will roll up my sleeves along side whomever I mentor, because I want to keep learning.&lt;br /&gt;
&lt;br /&gt;
===[[User:Mstone|Michael]]===&lt;br /&gt;
*Name/contact&lt;br /&gt;
:: Michael Stone / michael@laptop.org&lt;br /&gt;
*Timezone&lt;br /&gt;
:: EDT (UTC-4)&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
:: One project&lt;br /&gt;
*How much time could you devote to mentoring?&lt;br /&gt;
:: 5-10 hr/week&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
:: I am the author of [http://wiki.laptop.org/go/Rainbow rainbow]. I also am intimately familiar with Sugar&#039;s architecture, design, and code base.&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
:: I analyze, critique, and improve software professionally, often working with less experienced coders. I also managed the release of a small operating system ([http://wiki.laptop.org/go/Release_notes/8.2.0 OLPC&#039;s 8.2.0 OS release]) in which I helped to fold the work of many contributors, both large and small, into a successful and coherent software development experience.&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
:: My entrée into professional software development, [http://wiki.laptop.org/go/Rainbow rainbow], was begun in an internship not unlike the ones you&#039;re applying for here. Now it&#039;s time for me to &amp;quot;pay it forward&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=50100</id>
		<title>Summer of Code/Mentors</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&amp;diff=50100"/>
		<updated>2010-03-20T16:14:06Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
==Mentors==&lt;br /&gt;
Our most important need right now is for quality mentors. If you (or someone you know) would make a good mentor, please nominate yourself (or them), both here on the ML (iaep AT sl.o) and on the wiki (if you can&#039;t handle a little redundant paperwork, you&#039;re probably not a good candidate :). Include relevant information such as:&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
*Timezone&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Please also add this page to your watchlist. We will probably later do some kind of &amp;quot;community interview&amp;quot; process where we ask you questions on this page.&lt;br /&gt;
&lt;br /&gt;
=== Jameson ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Jameson.Quinn at gmail&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Central / Central America (UTC-6)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements, especially interested in language or developer tools.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week. If we are short on mentors and I find project(s) that are an especially good match, I could do 8 hrs (double duty). Over the summer, I hope to be helping to work on an XO deployment, hopefully on a paid basis, but am currently unemployed.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Develop activity, have done some tinkering with Sugar, I&#039;ve been involved for over a year.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I have several years&#039; experience as a full-time teacher.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nrp|Nrp]] ===&lt;br /&gt;
&lt;br /&gt;
* Name/contact&lt;br /&gt;
&lt;br /&gt;
Nirav Patel nrpatel at gmail&lt;br /&gt;
&lt;br /&gt;
* Timezone&lt;br /&gt;
&lt;br /&gt;
UTC-5&lt;br /&gt;
&lt;br /&gt;
* What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Pygame or PyGTK based Activities&lt;br /&gt;
&lt;br /&gt;
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Graduating and no job prospects, so it is likely I will have quite a&lt;br /&gt;
bit of free time as of early May.  5 hours a week is certainly doable.&lt;br /&gt;
&lt;br /&gt;
* What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Some Pygame/PyGTK Activity development and a module for Pygame.&lt;br /&gt;
&lt;br /&gt;
* What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Teaching Assistant and miscellaneous mentoring experiences at school.&lt;br /&gt;
&lt;br /&gt;
* Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I survived GSoC on the student end of things in 2008.&lt;br /&gt;
&lt;br /&gt;
=== Tomeu ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Tomeu | Tomeu Vizoso]]&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Central European Time&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities or Sugar improvements.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Coded activities and for the sugar shell for more than two years now.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Last year mentored one intern at OLPC.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Nah.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Bobbyp|Bobby]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
firstnamelastname at gmail, nteon on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
US Eastern Standard Time (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities, lower level stuff.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
Probably 4-6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Maintainer of Model activity, have done some tinkering with Sugar/Rainbow, rewrote boot-animation.  Fairly confident with C/Python/Linux, have been involved with OLPC for about a year (although have been mostly lurking on the sugar side of things for a few months).&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Summer camp counselor for a number of years, OLPC intern summer &#039;08.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I&#039;m a few months behind on Sugar development, but think its a fabulous project.  Let me know what you need of me.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Sebastian|Sebastian]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Sebastian Silva (sebastian at fuentelibre.org), (gmail alternative: sebatustra)&lt;br /&gt;
&lt;br /&gt;
icarito on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Lima, Perú (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities, especially &amp;quot;social&amp;quot; activities.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I am helping a teacher group this (northern summer), that leaves me enough time to commit to this (at least 4-6 hours a week, more if needed). It also is a great chance for some user feedback.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Community volunteer for 2 years now, developed activities, led workshops. Confident in python and GNU. Worked professionally in programming for some years.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Wade|Wade]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Wade Brainerd (wadetb at gmail dot com) &lt;br /&gt;
&lt;br /&gt;
wadeb on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Portland, Maine (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
New activities, Games, Updates to/refreshes of existing activities, Frameworks for creating activities in new languages (Flash, Ajax, Mono)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I will be available for a single mentorship this year.  I work full time as a programmer but have a flexible schedule.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Community volunteer for 2 years now, developed activities.  Experienced in Python, C++, others.  11 years as a professional programmer, including 5 as a technical director and team lead.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was closely involved in the 2007 OLPC GSoC project, reviewing applications and communicating with students.  I mentored two students informally during 2007 after their GSoC projects were not funded.  Both projects were completed with my help.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
As the Sugar Labs Activity Team coordinator, I have plenty of access to deployments.  This gives me a good handle on what student projects will most effectively advance Sugar Labs&#039; goals in the community.  &lt;br /&gt;
&lt;br /&gt;
As a volunteer activity developer, I have also developed many new activities myself, and overhauled existing ones.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Lglira|Lglira]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Luis Gustavo Lira, BSc, MSc lira.lg at pucp.edu.pe&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Lima, Perú (UTC-5)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Networking, Hardware Projects, Python, Activities (science, math, entrepreneurship).&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could mentor 1 o 2 students.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Engineer 10 years working experience, CIO and Executive level since 2006.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Consultant for big telecomms, systems integrators, etc.&lt;br /&gt;
Lecturer at University undergraduate and graduate level.&lt;br /&gt;
GSoC 2007, 2008 and 2009 Mentor for OpenMoko&lt;br /&gt;
GSoC 2008 for OLPC but my student was not funded&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Fellow of Lemelson Foundation RAMP-Peru, Social Entrepreneur, Free Culture activist, Appropriate Technology developer, Teaching Science, Math and Entrepeneurship in rural terciary schools.&lt;br /&gt;
&lt;br /&gt;
=== [[User:benlau|Ben Lau]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
xbenlau at gmail.com&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
UTC+8&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
Video , Computer Vision , Speech Processing , Python, Activities (Educational software , Chinese language learning)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
I could commit up to 4-5 hours a week,  able to mentor 1 student.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
10 years Linux development experience , include kernel porting (ARM), Linux driver , GTK+ , opencv , GStreamer , C/C++ , python&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
I have led two teams of university students to join an embedded system contest called Intel Cup (China) in 2006. The teams got a first prize and a second prize award finally.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
I am leading a team of volunteers on technical side for OLPC APAC division.&lt;br /&gt;
&lt;br /&gt;
=== [[User:SayaminduDasgupta|Sayamindu]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Sayamindu Dasgupta (sayamindu at gmail)&lt;br /&gt;
&lt;br /&gt;
unmadindu on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Asia/Calcutta (UTC+0530) (I normally work on European timezones)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Activities, l10n/i18n related projects.&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I am working a contractor for OLPC for the next few months. However, I think I can commit around 4-5 hours per week for the work.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Wrote the Imageviewer activity, maintainer of Terminal, in the process of implementing largish features to Read. Familiar with GTK+, Python, Gstreamer, etc.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was a mentor during SoC 2008 for the Translate toolkit project (my student worked successfully on enhancing the Pootle featureset). I have also experience informally mentoring/guiding students and volunteers for a number of Free Software projects (mostly i18n/l10n related).&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I was a successful student participant in Summer of Code 2007 under Federico Mena-Quintero for the GNOME project. I also helped in the rating of applications for OLPC as a mentoring organisation during 2008&#039;s SoC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Assim|Assim Deodia]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Assim Deodia (assim.deodia at gmail dot com)&lt;br /&gt;
&lt;br /&gt;
assimd on IRC&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
Asia/Calcutta (UTC+0530)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
[[Activities/Listen Spell|Listen Spell]], Activities related to speech synthesis&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I can comfortably devote 4-5 hrs a week. &lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I have developed speech server in SoCon for OLPC [http://wiki.laptop.org/go/Speech_Server| Speech Server], Deducto for OLPC and have also developed Listen Spell for OLPC in GSoC.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I have successful completed Summer of Code 2008 under Dafydd Harries for the OLPC. I have also developed a low cost OMR processing application which is hosted on sourceforge [http://sourceforge.net/projects/omr-ai/| OMR AI]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Aa|aa]] ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
andresambrois at gmail&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
America/Montevideo (UTC-3)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
PyGTK-based activities and Sugar projects, especially in collaboration and networking. &lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
5-6 hours a week. Currently unemployed, but studying computer engineering. I devote most of my time to free software projects and Ceibal-related volunteering. &lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I maintain the PlayGo activity, one of the developers of the [http://wiki.laptop.org/go/Educational_Blogger_Project| EduBlog project], written a couple of patches for sugar and currently working on some improvements. Familiar with Python, PHP, Tcl, Shell Scripting and (some) C. &lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I&#039;ve given technical talks and workshops, and was a math tutor years ago. &lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
I fear velociraptors.&lt;br /&gt;
&lt;br /&gt;
=== Alfonsodg ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
[[User:Alfonsodg | Alfonso de la Guarda]]&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
GMT -5&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Sugar activities based on python, gtk, glade and some electronical enhancements&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
&lt;br /&gt;
I could commit up to 4 to 6 hours a week.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
Coded multiple python apps since 2001, including some XO activities&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
Lead Technology Consultor for the Peruvian Army with 7 projects based all on FLOSS&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
Love technology and wanna that some of my activities could be better with the help of many people&lt;br /&gt;
&lt;br /&gt;
=== Alex Levenson ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact&lt;br /&gt;
**Alex Levenson&lt;br /&gt;
**alev742@gwu.edu&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
**Eastern Time during the school year, Pacific Time during the summer&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
**Anything physics engine related&lt;br /&gt;
**Anything related to games, pygame, olpcgames, graphics, etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
**I&#039;ll be working for Google in San Francisco this summer.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
**I wrote a couple of physics simulation activities for OLPC last summer. I am a computer science major and have experience as a software developer. Resume: http://student.seas.gwu.edu/~alev742/resume.php&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
**I am a computer science tutor here at The George Washington University.&lt;br /&gt;
&lt;br /&gt;
*What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty)&lt;br /&gt;
**I would be glad to provide any kind of support I can, from high level software design strategy to code reviews. I would like to focus on keeping the code not only functional but elegant, readable, and scalable - something that&#039;s very important as this platform moves forward.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
**Please check out my resume: http://student.seas.gwu.edu/~alev742/resume.php&lt;br /&gt;
**And also my olpc userpage: http://wiki.laptop.org/go/User:Alexlevenson&lt;br /&gt;
&lt;br /&gt;
=== Guillaume Desmottes ===&lt;br /&gt;
&lt;br /&gt;
*Name/contact: [[User:Cassidy|Guillaume Desmottes]]&lt;br /&gt;
&lt;br /&gt;
*Timezone: GMT+1 (UK)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor? Telepathy related&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?&lt;br /&gt;
** If possible I&#039;d prefer co-mentoring so I would focus on the Telepathy part and a Sugar guy on the UI/integration one. I&#039;ll work this summer but my [http://www.collabora.co.uk/ employer] would probably let me allocate some time on mentoring if needed. I could maybe have another soc student on the GNOME front too.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
** I hack on Telepathy as my job. Did lot of the Telepathy integration in Sugar.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
** Never mentored soc projects but regularly help people on #telepathy and #sugar.&lt;br /&gt;
&lt;br /&gt;
*What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty)&lt;br /&gt;
** My main goal is to ensure than proposed projects are did the right way. I want to avoid that student did the code on his own without any input from relevant person and so is finally never merged because it was just the wrong approach.&lt;br /&gt;
&lt;br /&gt;
===[[User:BryanWB|Bryan W Berry]]===&lt;br /&gt;
&lt;br /&gt;
*Name: [[User:BryanWB|Bryan W Berry]]&lt;br /&gt;
*Timezone : GMT+5:45 (Nepal)&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
Using Web technologies to create Sugar activities, like [[Karma]]&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
&lt;br /&gt;
I can probably only mentor one person. I think I can contribute 10 hours per week for 3 months.&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
For the past two years I have led a team of 10 full-time software developers creating open-source educational learning activities.  &lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I have mentored 12 Nepali interns at OLE Nepal over the last 12 months.&lt;br /&gt;
&lt;br /&gt;
What do you think your role as a mentor would involve? How would you fill it, and why? (3-5 sentences is plenty) &lt;br /&gt;
&lt;br /&gt;
There is a lot to creating learning activities that is not technical but procedure. I am particularly interested in making it easier for programmers to create learning activities.&lt;br /&gt;
&lt;br /&gt;
===[[User:Walter|Walter]]===&lt;br /&gt;
*Name/contact&lt;br /&gt;
&lt;br /&gt;
Walter Bender / (walter AT sl.o)&lt;br /&gt;
&lt;br /&gt;
*Timezone&lt;br /&gt;
&lt;br /&gt;
EST (UTC+4)&lt;br /&gt;
&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
&lt;br /&gt;
Activities, and some Sugar UI-related projects (anything relevant to daily life in the classroom.)&lt;br /&gt;
&lt;br /&gt;
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?&lt;br /&gt;
&lt;br /&gt;
Not sure what a &amp;quot;double mentor&amp;quot; is, but I could put in 10 hours/week...&lt;br /&gt;
&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
&lt;br /&gt;
I have been with the Sugar project since the beginning and have been making the occasional Sugar patch; I have written and maintain a half-dozen activities.&lt;br /&gt;
&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
&lt;br /&gt;
I was a GSoC coordinator and mentor in 2009. I have supervised hundreds of MIT undergraduate research projects and 50+ graduate-level (MS&amp;amp;PhD) thesis projects.&lt;br /&gt;
&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
&lt;br /&gt;
You learn through doing, so I will roll up my sleeves along side whomever I mentor, because I want to keep learning.&lt;br /&gt;
&lt;br /&gt;
===[[User:Mstone|Michael]]===&lt;br /&gt;
*Name/contact&lt;br /&gt;
:: Michael Stone / michael@laptop.org&lt;br /&gt;
*Timezone&lt;br /&gt;
:: EDT (UTC-4)&lt;br /&gt;
*What kind of projects could/would you mentor?&lt;br /&gt;
:: One project&lt;br /&gt;
*How much time could you devote to mentoring?&lt;br /&gt;
:: 5-10 hr/week&lt;br /&gt;
*What relevant coding experience do you have (very briefly, two sentences at most)?&lt;br /&gt;
:: I am the author of [http://wiki.laptop.org/go/Rainbow rainbow]. I also am intimately familiar with Sugar&#039;s architecture, design, and code base.&lt;br /&gt;
*What relevant mentoring (or related) experience do you have?&lt;br /&gt;
:: I analyze, critique, and improve software professionally, often working with less experienced coders. I also managed the release of a large software distribution ([http://wiki.laptop.org/go/Release_notes/8.2.0 OLPC&#039;s 8.2.0 OS release]) in which I helped to fold the work of many contributors, both large and small, into a successful and coherent software development experience.&lt;br /&gt;
*Anything else you think is relevant.&lt;br /&gt;
:: My entrée into professional software development, [http://wiki.laptop.org/go/Rainbow rainbow], was begun in an internship not unlike the ones you&#039;re applying for here. Now it&#039;s time for me to &amp;quot;pay it forward&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=43470</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=43470"/>
		<updated>2010-01-23T19:10:02Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* sugar-chroot-0.1 released: see [http://dev.laptop.org/git/users/mstone/sugar-chroot sugar-chroot]&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;You want to hack sugar. You don&#039;t want to fuss around. &#039;&#039;&#039;You want sugar-chroot.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
As excerpted from the &#039;&#039;&#039;[http://dev.laptop.org/git/users/mstone/sugar-chroot/plain/README README]&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
sugar-chroot consists of simple scripts. Download and unpack them like so:&lt;br /&gt;
&lt;br /&gt;
 NV=sugar-chroot-0.1&lt;br /&gt;
 curl http://dev.laptop.org/~mstone/releases/SOURCES/$NV.tar.xz | tar Zxf $NV.tar.xz&lt;br /&gt;
 cd $NV&lt;br /&gt;
&lt;br /&gt;
To use them, pick a supported distro:&lt;br /&gt;
&lt;br /&gt;
 DISTRO=debian&lt;br /&gt;
 DISTRO=fedora&lt;br /&gt;
&lt;br /&gt;
To configure:&lt;br /&gt;
&lt;br /&gt;
 echo $DISTRO &amp;gt; conf/distro&lt;br /&gt;
 $EDITOR conf/$DISTRO.mk&lt;br /&gt;
&lt;br /&gt;
Then run&lt;br /&gt;
&lt;br /&gt;
 sudo make r/distro&lt;br /&gt;
&lt;br /&gt;
to install your chroot.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
See http://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;amp;oldid=36911 for the manual instructions which sugar-chroot automates.&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=43469</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=43469"/>
		<updated>2010-01-23T19:07:06Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* sugar-chroot-0.1 released: see [http://dev.laptop.org/git/users/mstone/sugar-chroot sugar-chroot]&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
&lt;br /&gt;
You want to hack sugar.&lt;br /&gt;
&lt;br /&gt;
You don&#039;t want to fuss around.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You want sugar-chroot.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
As excerpted from the &#039;&#039;&#039;[http://dev.laptop.org/git/users/mstone/sugar-chroot/plain/README README]&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
sugar-chroot consists of simple scripts. Download and unpack them like so:&lt;br /&gt;
&lt;br /&gt;
 NV=sugar-chroot-0.1&lt;br /&gt;
 curl http://dev.laptop.org/~mstone/releases/SOURCES/$NV.tar.xz | tar Zxf $NV.tar.xz&lt;br /&gt;
 cd $NV&lt;br /&gt;
&lt;br /&gt;
To use them, pick a supported distro:&lt;br /&gt;
&lt;br /&gt;
 DISTRO=debian&lt;br /&gt;
 DISTRO=fedora&lt;br /&gt;
&lt;br /&gt;
To configure:&lt;br /&gt;
&lt;br /&gt;
 echo $DISTRO &amp;gt; conf/distro&lt;br /&gt;
 $EDITOR conf/$DISTRO.mk&lt;br /&gt;
&lt;br /&gt;
Then run&lt;br /&gt;
&lt;br /&gt;
 sudo make r/distro&lt;br /&gt;
&lt;br /&gt;
to install your chroot.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
See http://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;amp;oldid=36911 for the manual instructions which sugar-chroot automates.&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=43468</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=43468"/>
		<updated>2010-01-23T19:06:14Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* sugar-chroot-0.1 released: see [http://dev.laptop.org/git/users/mstone/sugar-chroot sugar-chroot]&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
&lt;br /&gt;
You want to &#039;&#039;&#039;hack sugar&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
You want &#039;&#039;&#039;clean, reproducible environments&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You want sugar-chroot.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
As excerpted from the &#039;&#039;&#039;[http://dev.laptop.org/git/users/mstone/sugar-chroot/plain/README README]&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
sugar-chroot consists of simple scripts. Download and unpack them like so:&lt;br /&gt;
&lt;br /&gt;
 NV=sugar-chroot-0.1&lt;br /&gt;
 curl http://dev.laptop.org/~mstone/releases/SOURCES/$NV.tar.xz | tar Zxf $NV.tar.xz&lt;br /&gt;
 cd $NV&lt;br /&gt;
&lt;br /&gt;
To use them, pick a supported distro:&lt;br /&gt;
&lt;br /&gt;
 DISTRO=debian&lt;br /&gt;
 DISTRO=fedora&lt;br /&gt;
&lt;br /&gt;
To configure:&lt;br /&gt;
&lt;br /&gt;
 echo $DISTRO &amp;gt; conf/distro&lt;br /&gt;
 $EDITOR conf/$DISTRO.mk&lt;br /&gt;
&lt;br /&gt;
Then run&lt;br /&gt;
&lt;br /&gt;
 sudo make r/distro&lt;br /&gt;
&lt;br /&gt;
to install your chroot.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
See http://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;amp;oldid=36911 for the manual instructions which sugar-chroot automates.&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=43467</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=43467"/>
		<updated>2010-01-23T19:02:15Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* sugar-chroot-0.1 released: see [http://dev.laptop.org/git/users/mstone/sugar-chroot sugar-chroot]&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
&lt;br /&gt;
You want to &#039;&#039;&#039;test sugar&#039;&#039;&#039;, sugar patches, sugar packages, or sugar hacks. &lt;br /&gt;
&lt;br /&gt;
You want &#039;&#039;&#039;clean, reproducible environments&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You want sugar-chroot.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
As excerpted from the &#039;&#039;&#039;[http://dev.laptop.org/git/users/mstone/sugar-chroot/plain/README README]&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
sugar-chroot consists of simple scripts. Download and unpack them like so:&lt;br /&gt;
&lt;br /&gt;
 NV=sugar-chroot-0.1&lt;br /&gt;
 curl http://dev.laptop.org/~mstone/releases/SOURCES/$NV.tar.xz | tar Zxf $NV.tar.xz&lt;br /&gt;
 cd $NV&lt;br /&gt;
&lt;br /&gt;
To use them, pick a supported distro:&lt;br /&gt;
&lt;br /&gt;
 DISTRO=debian&lt;br /&gt;
 DISTRO=fedora&lt;br /&gt;
&lt;br /&gt;
To configure:&lt;br /&gt;
&lt;br /&gt;
 echo $DISTRO &amp;gt; conf/distro&lt;br /&gt;
 $EDITOR conf/$DISTRO.mk&lt;br /&gt;
&lt;br /&gt;
Then run&lt;br /&gt;
&lt;br /&gt;
 sudo make r/distro&lt;br /&gt;
&lt;br /&gt;
to install your chroot.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
See http://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;amp;oldid=36911 for the manual instructions which sugar-chroot automates.&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=43466</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=43466"/>
		<updated>2010-01-23T19:01:18Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* sugar-chroot-0.1 released: see [http://dev.laptop.org/git/users/mstone/sugar-chroot sugar-chroot]&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
&lt;br /&gt;
You want to test sugar, sugar patches, sugar packages, or sugar hacks. You want clean, reproducible environments. You want sugar-chroot.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
As excerpted from the &#039;&#039;&#039;[http://dev.laptop.org/git/users/mstone/sugar-chroot/plain/README README]&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
sugar-chroot consists of simple scripts. Download and unpack them like so:&lt;br /&gt;
&lt;br /&gt;
 NV=sugar-chroot-0.1&lt;br /&gt;
 curl http://dev.laptop.org/~mstone/releases/SOURCES/$NV.tar.xz | tar Zxf $NV.tar.xz&lt;br /&gt;
 cd $NV&lt;br /&gt;
&lt;br /&gt;
To use them, pick a supported distro:&lt;br /&gt;
&lt;br /&gt;
 DISTRO=debian&lt;br /&gt;
 DISTRO=fedora&lt;br /&gt;
&lt;br /&gt;
To configure:&lt;br /&gt;
&lt;br /&gt;
 echo $DISTRO &amp;gt; conf/distro&lt;br /&gt;
 $EDITOR conf/$DISTRO.mk&lt;br /&gt;
&lt;br /&gt;
Then run&lt;br /&gt;
&lt;br /&gt;
 sudo make r/distro&lt;br /&gt;
&lt;br /&gt;
to install your chroot.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
See http://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;amp;oldid=36911 for the manual instructions which sugar-chroot automates.&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=36911</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=36911"/>
		<updated>2009-09-07T15:23:52Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* Fedora rawhide chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* Debian chroot construction has been automated: see [http://dev.laptop.org/git/users/mstone/puritan/snapshot/puritan-sugar.tar.bz2 puritan-sugar.tar.bz2] and its [http://dev.laptop.org/git/users/mstone/puritan/tree/README?h=sugar README] -- [[User:Mstone|Michael Stone]] 20:33, 1 August 2009 (UTC)&lt;br /&gt;
* Sugar continues to run happily in Squeeze chroots. --[[User:Mstone|Michael Stone]] 16:30, 3 July 2009 (UTC)&lt;br /&gt;
* Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
 # and to enter the chroot&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: you can use approx to cache packages across multiple runs for faster testing:&lt;br /&gt;
&lt;br /&gt;
 apt-get install approx&lt;br /&gt;
 echo &#039;debian http://debian.lcs.mit.edu/debian&#039; &amp;gt;&amp;gt; /etc/approx/approx.conf&lt;br /&gt;
 /etc/init.d/approx restart&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://localhost:9999/debian&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
&lt;br /&gt;
We will use &amp;lt;tt&amp;gt;febootstrap&amp;lt;/tt&amp;gt; to construct our Fedora chroot. Install it with:&lt;br /&gt;
&lt;br /&gt;
 yum install febootstrap            # or&lt;br /&gt;
 apt-get install febootstrap&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;(Note for Debian users -- Fedora 11 and up require versions of &amp;lt;tt&amp;gt;rpm&amp;lt;/tt&amp;gt; built with fancy features. I have successfully run these instructions with rpm_4.7.1-4_i386, which, at the time, I built from sources in Debian Experimental.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then run it like so:&lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/f11&lt;br /&gt;
 sudo febootstrap fedora-11 $CHROOT    # sugar-0.84&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/f12&lt;br /&gt;
 sudo febootstrap fedora-12 $CHROOT    # sugar-0.85.5, at the time of writing&lt;br /&gt;
&lt;br /&gt;
Finally, as with Debian:&lt;br /&gt;
&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
 # and to enter the chroot&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
&lt;br /&gt;
==== Gentoo chroot ====&lt;br /&gt;
&lt;br /&gt;
Well, if you are familiar with regular Gentoo installation process(by using [http://www.gentoo.org/doc/en/handbook/ Handbook] instead of GUI stuff) you should know how to setup Gentoo chtoot :). Otherwise use these instructions.&lt;br /&gt;
&lt;br /&gt;
* Firstly, you need Gentoo stage tarball. You can borrow it from any [http://www.gentoo.org/main/en/mirrolrs2.xml mirror] (use releases/&amp;lt;platform&amp;gt;/current sub directory).&lt;br /&gt;
&lt;br /&gt;
* Lets think you are using stage3-i686-20090623.tar.bz2, then:&lt;br /&gt;
&lt;br /&gt;
 mkdir chroot-gentoo&lt;br /&gt;
 tar xjpf stage3-i686-20090623.tar.bz2 -C chroot-gentoo&lt;br /&gt;
 mount -o bind /dev chroot-gentoo/dev&lt;br /&gt;
 mount -o bind /proc chroot-gentoo/proc&lt;br /&gt;
 chroot chroot-gentoo /bin/bash&lt;br /&gt;
&lt;br /&gt;
* To install sugar, use [[Community/Distributions/Gentoo|sugar-overlay]] or setup [[Development_Team/Jhbuild|sugar-jhbuild]] environment(with [[Community/Distributions/Gentoo#Packages|sugar-overlay]] you can install git packages as well).&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar sugar-0.84&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
&lt;br /&gt;
==== f12 chroot ====&lt;br /&gt;
&lt;br /&gt;
 yum groupinstall sugar-desktop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== f11 chroot ====&lt;br /&gt;
&lt;br /&gt;
 yum groupinstall sugar-desktop&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 cd ~&lt;br /&gt;
 ulimit -c unlimited&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=36910</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=36910"/>
		<updated>2009-09-07T15:23:18Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* Debian squeeze chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* Debian chroot construction has been automated: see [http://dev.laptop.org/git/users/mstone/puritan/snapshot/puritan-sugar.tar.bz2 puritan-sugar.tar.bz2] and its [http://dev.laptop.org/git/users/mstone/puritan/tree/README?h=sugar README] -- [[User:Mstone|Michael Stone]] 20:33, 1 August 2009 (UTC)&lt;br /&gt;
* Sugar continues to run happily in Squeeze chroots. --[[User:Mstone|Michael Stone]] 16:30, 3 July 2009 (UTC)&lt;br /&gt;
* Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
 # and to enter the chroot&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: you can use approx to cache packages across multiple runs for faster testing:&lt;br /&gt;
&lt;br /&gt;
 apt-get install approx&lt;br /&gt;
 echo &#039;debian http://debian.lcs.mit.edu/debian&#039; &amp;gt;&amp;gt; /etc/approx/approx.conf&lt;br /&gt;
 /etc/init.d/approx restart&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://localhost:9999/debian&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
&lt;br /&gt;
We will use &amp;lt;tt&amp;gt;febootstrap&amp;lt;/tt&amp;gt; to construct our Fedora chroot. Install it with:&lt;br /&gt;
&lt;br /&gt;
 yum install febootstrap            # or&lt;br /&gt;
 apt-get install febootstrap&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;(Note for Debian users -- Fedora 11 and up require versions of &amp;lt;tt&amp;gt;rpm&amp;lt;/tt&amp;gt; built with fancy features. I have successfully run these instructions with rpm_4.7.1-4_i386, which, at the time, I built from sources in Debian Experimental.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then run it like so:&lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/f11&lt;br /&gt;
 sudo febootstrap fedora-11 $CHROOT    # sugar-0.84&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/f12&lt;br /&gt;
 sudo febootstrap fedora-12 $CHROOT    # sugar-0.85.5, at the time of writing&lt;br /&gt;
&lt;br /&gt;
==== Gentoo chroot ====&lt;br /&gt;
&lt;br /&gt;
Well, if you are familiar with regular Gentoo installation process(by using [http://www.gentoo.org/doc/en/handbook/ Handbook] instead of GUI stuff) you should know how to setup Gentoo chtoot :). Otherwise use these instructions.&lt;br /&gt;
&lt;br /&gt;
* Firstly, you need Gentoo stage tarball. You can borrow it from any [http://www.gentoo.org/main/en/mirrolrs2.xml mirror] (use releases/&amp;lt;platform&amp;gt;/current sub directory).&lt;br /&gt;
&lt;br /&gt;
* Lets think you are using stage3-i686-20090623.tar.bz2, then:&lt;br /&gt;
&lt;br /&gt;
 mkdir chroot-gentoo&lt;br /&gt;
 tar xjpf stage3-i686-20090623.tar.bz2 -C chroot-gentoo&lt;br /&gt;
 mount -o bind /dev chroot-gentoo/dev&lt;br /&gt;
 mount -o bind /proc chroot-gentoo/proc&lt;br /&gt;
 chroot chroot-gentoo /bin/bash&lt;br /&gt;
&lt;br /&gt;
* To install sugar, use [[Community/Distributions/Gentoo|sugar-overlay]] or setup [[Development_Team/Jhbuild|sugar-jhbuild]] environment(with [[Community/Distributions/Gentoo#Packages|sugar-overlay]] you can install git packages as well).&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar sugar-0.84&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
&lt;br /&gt;
==== f12 chroot ====&lt;br /&gt;
&lt;br /&gt;
 yum groupinstall sugar-desktop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== f11 chroot ====&lt;br /&gt;
&lt;br /&gt;
 yum groupinstall sugar-desktop&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 cd ~&lt;br /&gt;
 ulimit -c unlimited&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=36909</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=36909"/>
		<updated>2009-09-07T15:21:22Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* Sugar Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* Debian chroot construction has been automated: see [http://dev.laptop.org/git/users/mstone/puritan/snapshot/puritan-sugar.tar.bz2 puritan-sugar.tar.bz2] and its [http://dev.laptop.org/git/users/mstone/puritan/tree/README?h=sugar README] -- [[User:Mstone|Michael Stone]] 20:33, 1 August 2009 (UTC)&lt;br /&gt;
* Sugar continues to run happily in Squeeze chroots. --[[User:Mstone|Michael Stone]] 16:30, 3 July 2009 (UTC)&lt;br /&gt;
* Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: you can use approx to cache packages across multiple runs for faster testing:&lt;br /&gt;
&lt;br /&gt;
 apt-get install approx&lt;br /&gt;
 echo &#039;debian http://debian.lcs.mit.edu/debian&#039; &amp;gt;&amp;gt; /etc/approx/approx.conf&lt;br /&gt;
 /etc/init.d/approx restart&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://localhost:9999/debian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
&lt;br /&gt;
We will use &amp;lt;tt&amp;gt;febootstrap&amp;lt;/tt&amp;gt; to construct our Fedora chroot. Install it with:&lt;br /&gt;
&lt;br /&gt;
 yum install febootstrap            # or&lt;br /&gt;
 apt-get install febootstrap&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;(Note for Debian users -- Fedora 11 and up require versions of &amp;lt;tt&amp;gt;rpm&amp;lt;/tt&amp;gt; built with fancy features. I have successfully run these instructions with rpm_4.7.1-4_i386, which, at the time, I built from sources in Debian Experimental.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then run it like so:&lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/f11&lt;br /&gt;
 sudo febootstrap fedora-11 $CHROOT    # sugar-0.84&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/f12&lt;br /&gt;
 sudo febootstrap fedora-12 $CHROOT    # sugar-0.85.5, at the time of writing&lt;br /&gt;
&lt;br /&gt;
==== Gentoo chroot ====&lt;br /&gt;
&lt;br /&gt;
Well, if you are familiar with regular Gentoo installation process(by using [http://www.gentoo.org/doc/en/handbook/ Handbook] instead of GUI stuff) you should know how to setup Gentoo chtoot :). Otherwise use these instructions.&lt;br /&gt;
&lt;br /&gt;
* Firstly, you need Gentoo stage tarball. You can borrow it from any [http://www.gentoo.org/main/en/mirrolrs2.xml mirror] (use releases/&amp;lt;platform&amp;gt;/current sub directory).&lt;br /&gt;
&lt;br /&gt;
* Lets think you are using stage3-i686-20090623.tar.bz2, then:&lt;br /&gt;
&lt;br /&gt;
 mkdir chroot-gentoo&lt;br /&gt;
 tar xjpf stage3-i686-20090623.tar.bz2 -C chroot-gentoo&lt;br /&gt;
 mount -o bind /dev chroot-gentoo/dev&lt;br /&gt;
 mount -o bind /proc chroot-gentoo/proc&lt;br /&gt;
 chroot chroot-gentoo /bin/bash&lt;br /&gt;
&lt;br /&gt;
* To install sugar, use [[Community/Distributions/Gentoo|sugar-overlay]] or setup [[Development_Team/Jhbuild|sugar-jhbuild]] environment(with [[Community/Distributions/Gentoo#Packages|sugar-overlay]] you can install git packages as well).&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar sugar-0.84&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
&lt;br /&gt;
==== f12 chroot ====&lt;br /&gt;
&lt;br /&gt;
 yum groupinstall sugar-desktop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== f11 chroot ====&lt;br /&gt;
&lt;br /&gt;
 yum groupinstall sugar-desktop&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 cd ~&lt;br /&gt;
 ulimit -c unlimited&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=36908</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=36908"/>
		<updated>2009-09-07T15:19:32Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* Fedora rawhide chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* Debian chroot construction has been automated: see [http://dev.laptop.org/git/users/mstone/puritan/snapshot/puritan-sugar.tar.bz2 puritan-sugar.tar.bz2] and its [http://dev.laptop.org/git/users/mstone/puritan/tree/README?h=sugar README] -- [[User:Mstone|Michael Stone]] 20:33, 1 August 2009 (UTC)&lt;br /&gt;
* Sugar continues to run happily in Squeeze chroots. --[[User:Mstone|Michael Stone]] 16:30, 3 July 2009 (UTC)&lt;br /&gt;
* Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: you can use approx to cache packages across multiple runs for faster testing:&lt;br /&gt;
&lt;br /&gt;
 apt-get install approx&lt;br /&gt;
 echo &#039;debian http://debian.lcs.mit.edu/debian&#039; &amp;gt;&amp;gt; /etc/approx/approx.conf&lt;br /&gt;
 /etc/init.d/approx restart&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://localhost:9999/debian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
&lt;br /&gt;
We will use &amp;lt;tt&amp;gt;febootstrap&amp;lt;/tt&amp;gt; to construct our Fedora chroot. Install it with:&lt;br /&gt;
&lt;br /&gt;
 yum install febootstrap            # or&lt;br /&gt;
 apt-get install febootstrap&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;(Note for Debian users -- Fedora 11 and up require versions of &amp;lt;tt&amp;gt;rpm&amp;lt;/tt&amp;gt; built with fancy features. I have successfully run these instructions with rpm_4.7.1-4_i386, which, at the time, I built from sources in Debian Experimental.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then run it like so:&lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/f11&lt;br /&gt;
 sudo febootstrap fedora-11 $CHROOT    # sugar-0.84&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/f12&lt;br /&gt;
 sudo febootstrap fedora-12 $CHROOT    # sugar-0.85.5, at the time of writing&lt;br /&gt;
&lt;br /&gt;
==== Gentoo chroot ====&lt;br /&gt;
&lt;br /&gt;
Well, if you are familiar with regular Gentoo installation process(by using [http://www.gentoo.org/doc/en/handbook/ Handbook] instead of GUI stuff) you should know how to setup Gentoo chtoot :). Otherwise use these instructions.&lt;br /&gt;
&lt;br /&gt;
* Firstly, you need Gentoo stage tarball. You can borrow it from any [http://www.gentoo.org/main/en/mirrolrs2.xml mirror] (use releases/&amp;lt;platform&amp;gt;/current sub directory).&lt;br /&gt;
&lt;br /&gt;
* Lets think you are using stage3-i686-20090623.tar.bz2, then:&lt;br /&gt;
&lt;br /&gt;
 mkdir chroot-gentoo&lt;br /&gt;
 tar xjpf stage3-i686-20090623.tar.bz2 -C chroot-gentoo&lt;br /&gt;
 mount -o bind /dev chroot-gentoo/dev&lt;br /&gt;
 mount -o bind /proc chroot-gentoo/proc&lt;br /&gt;
 chroot chroot-gentoo /bin/bash&lt;br /&gt;
&lt;br /&gt;
* To install sugar, use [[Community/Distributions/Gentoo|sugar-overlay]] or setup [[Development_Team/Jhbuild|sugar-jhbuild]] environment(with [[Community/Distributions/Gentoo#Packages|sugar-overlay]] you can install git packages as well).&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # fix broken hippocanvas (Debian bug#522231)&lt;br /&gt;
 echo &amp;quot;deb-src http://debian.lcs.mit.edu/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 # echo &amp;quot;deb-src http://localhost:9999/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install apt-src devscripts&lt;br /&gt;
 apt-src install python-hippocanvas&lt;br /&gt;
 cd *hippo*&lt;br /&gt;
 DEB_BUILD_OPTIONS=nostrip debuild -us -uc&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i *hippo*.deb&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 cd ~&lt;br /&gt;
 ulimit -c unlimited&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=36907</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=36907"/>
		<updated>2009-09-07T15:17:57Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* Fedora rawhide chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* Debian chroot construction has been automated: see [http://dev.laptop.org/git/users/mstone/puritan/snapshot/puritan-sugar.tar.bz2 puritan-sugar.tar.bz2] and its [http://dev.laptop.org/git/users/mstone/puritan/tree/README?h=sugar README] -- [[User:Mstone|Michael Stone]] 20:33, 1 August 2009 (UTC)&lt;br /&gt;
* Sugar continues to run happily in Squeeze chroots. --[[User:Mstone|Michael Stone]] 16:30, 3 July 2009 (UTC)&lt;br /&gt;
* Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: you can use approx to cache packages across multiple runs for faster testing:&lt;br /&gt;
&lt;br /&gt;
 apt-get install approx&lt;br /&gt;
 echo &#039;debian http://debian.lcs.mit.edu/debian&#039; &amp;gt;&amp;gt; /etc/approx/approx.conf&lt;br /&gt;
 /etc/init.d/approx restart&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://localhost:9999/debian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
&lt;br /&gt;
We will use &amp;lt;tt&amp;gt;febootstrap&amp;lt;/tt&amp;gt; to construct our Fedora chroot. Install it with:&lt;br /&gt;
&lt;br /&gt;
 yum install febootstrap            # or&lt;br /&gt;
 apt-get install febootstrap&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;(Note for Debian users -- Fedora 11 and up require versions of &amp;lt;tt&amp;gt;rpm&amp;lt;/tt&amp;gt; built with fancy features. I have successfully run these instructions with rpm_4.7.1-4_i386, which, at the time, I built from sources in Debian Experimental.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then run it like so:&lt;br /&gt;
&lt;br /&gt;
 sudo febootstrap fedora-11 ./f11  -- sugar-0.84&lt;br /&gt;
 sudo febootstrap fedora-12 ./f12  -- sugar-0.85.5, at the time of writing&lt;br /&gt;
&lt;br /&gt;
==== Gentoo chroot ====&lt;br /&gt;
&lt;br /&gt;
Well, if you are familiar with regular Gentoo installation process(by using [http://www.gentoo.org/doc/en/handbook/ Handbook] instead of GUI stuff) you should know how to setup Gentoo chtoot :). Otherwise use these instructions.&lt;br /&gt;
&lt;br /&gt;
* Firstly, you need Gentoo stage tarball. You can borrow it from any [http://www.gentoo.org/main/en/mirrolrs2.xml mirror] (use releases/&amp;lt;platform&amp;gt;/current sub directory).&lt;br /&gt;
&lt;br /&gt;
* Lets think you are using stage3-i686-20090623.tar.bz2, then:&lt;br /&gt;
&lt;br /&gt;
 mkdir chroot-gentoo&lt;br /&gt;
 tar xjpf stage3-i686-20090623.tar.bz2 -C chroot-gentoo&lt;br /&gt;
 mount -o bind /dev chroot-gentoo/dev&lt;br /&gt;
 mount -o bind /proc chroot-gentoo/proc&lt;br /&gt;
 chroot chroot-gentoo /bin/bash&lt;br /&gt;
&lt;br /&gt;
* To install sugar, use [[Community/Distributions/Gentoo|sugar-overlay]] or setup [[Development_Team/Jhbuild|sugar-jhbuild]] environment(with [[Community/Distributions/Gentoo#Packages|sugar-overlay]] you can install git packages as well).&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # fix broken hippocanvas (Debian bug#522231)&lt;br /&gt;
 echo &amp;quot;deb-src http://debian.lcs.mit.edu/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 # echo &amp;quot;deb-src http://localhost:9999/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install apt-src devscripts&lt;br /&gt;
 apt-src install python-hippocanvas&lt;br /&gt;
 cd *hippo*&lt;br /&gt;
 DEB_BUILD_OPTIONS=nostrip debuild -us -uc&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i *hippo*.deb&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 cd ~&lt;br /&gt;
 ulimit -c unlimited&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=34470</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=34470"/>
		<updated>2009-08-01T20:33:44Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* Debian chroot construction has been automated: see [http://dev.laptop.org/git/users/mstone/puritan/snapshot/puritan-sugar.tar.bz2 puritan-sugar.tar.bz2] and its [http://dev.laptop.org/git/users/mstone/puritan/tree/README?h=sugar README] -- [[User:Mstone|Michael Stone]] 20:33, 1 August 2009 (UTC)&lt;br /&gt;
* Sugar continues to run happily in Squeeze chroots. --[[User:Mstone|Michael Stone]] 16:30, 3 July 2009 (UTC)&lt;br /&gt;
* Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: you can use approx to cache packages across multiple runs for faster testing:&lt;br /&gt;
&lt;br /&gt;
 apt-get install approx&lt;br /&gt;
 echo &#039;debian http://debian.lcs.mit.edu/debian&#039; &amp;gt;&amp;gt; /etc/approx/approx.conf&lt;br /&gt;
 /etc/init.d/approx restart&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://localhost:9999/debian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --install yum&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
==== Gentoo chroot ====&lt;br /&gt;
&lt;br /&gt;
Well, if you are familiar with regular Gentoo installation process(by using [http://www.gentoo.org/doc/en/handbook/ Handbook] instead of GUI stuff) you should know how to setup Gentoo chtoot :). Otherwise use these instructions.&lt;br /&gt;
&lt;br /&gt;
* Firstly, you need Gentoo stage tarball. You can borrow it from any [http://www.gentoo.org/main/en/mirrolrs2.xml mirror] (use releases/&amp;lt;platform&amp;gt;/current sub directory).&lt;br /&gt;
&lt;br /&gt;
* Lets think you are using stage3-i686-20090623.tar.bz2, then:&lt;br /&gt;
&lt;br /&gt;
 mkdir chroot-gentoo&lt;br /&gt;
 tar xjpf stage3-i686-20090623.tar.bz2 -C chroot-gentoo&lt;br /&gt;
 mount -o bind /dev chroot-gentoo/dev&lt;br /&gt;
 mount -o bind /proc chroot-gentoo/proc&lt;br /&gt;
 chroot chroot-gentoo /bin/bash&lt;br /&gt;
&lt;br /&gt;
* To install sugar, use [[Community/Distributions/Gentoo|sugar-overlay]] or setup [[Development_Team/Jhbuild|sugar-jhbuild]] environment(with [[Community/Distributions/Gentoo#Packages|sugar-overlay]] you can install git packages as well).&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # fix broken hippocanvas (Debian bug#522231)&lt;br /&gt;
 echo &amp;quot;deb-src http://debian.lcs.mit.edu/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 # echo &amp;quot;deb-src http://localhost:9999/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install apt-src devscripts&lt;br /&gt;
 apt-src install python-hippocanvas&lt;br /&gt;
 cd *hippo*&lt;br /&gt;
 DEB_BUILD_OPTIONS=nostrip debuild -us -uc&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i *hippo*.deb&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 cd ~&lt;br /&gt;
 ulimit -c unlimited&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=34469</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=34469"/>
		<updated>2009-08-01T20:33:26Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* Debian chroot construction has been automated: see [http://dev.laptop.org/git/users/mstone/puritan/snapshot/puritan-sugar.tar.bz2|puritan-sugar.tar.bz2] and its [http://dev.laptop.org/git/users/mstone/puritan/tree/README?h=sugar README] -- [[User:Mstone|Michael Stone]] 20:33, 1 August 2009 (UTC)&lt;br /&gt;
* Sugar continues to run happily in Squeeze chroots. --[[User:Mstone|Michael Stone]] 16:30, 3 July 2009 (UTC)&lt;br /&gt;
* Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: you can use approx to cache packages across multiple runs for faster testing:&lt;br /&gt;
&lt;br /&gt;
 apt-get install approx&lt;br /&gt;
 echo &#039;debian http://debian.lcs.mit.edu/debian&#039; &amp;gt;&amp;gt; /etc/approx/approx.conf&lt;br /&gt;
 /etc/init.d/approx restart&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://localhost:9999/debian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --install yum&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
==== Gentoo chroot ====&lt;br /&gt;
&lt;br /&gt;
Well, if you are familiar with regular Gentoo installation process(by using [http://www.gentoo.org/doc/en/handbook/ Handbook] instead of GUI stuff) you should know how to setup Gentoo chtoot :). Otherwise use these instructions.&lt;br /&gt;
&lt;br /&gt;
* Firstly, you need Gentoo stage tarball. You can borrow it from any [http://www.gentoo.org/main/en/mirrolrs2.xml mirror] (use releases/&amp;lt;platform&amp;gt;/current sub directory).&lt;br /&gt;
&lt;br /&gt;
* Lets think you are using stage3-i686-20090623.tar.bz2, then:&lt;br /&gt;
&lt;br /&gt;
 mkdir chroot-gentoo&lt;br /&gt;
 tar xjpf stage3-i686-20090623.tar.bz2 -C chroot-gentoo&lt;br /&gt;
 mount -o bind /dev chroot-gentoo/dev&lt;br /&gt;
 mount -o bind /proc chroot-gentoo/proc&lt;br /&gt;
 chroot chroot-gentoo /bin/bash&lt;br /&gt;
&lt;br /&gt;
* To install sugar, use [[Community/Distributions/Gentoo|sugar-overlay]] or setup [[Development_Team/Jhbuild|sugar-jhbuild]] environment(with [[Community/Distributions/Gentoo#Packages|sugar-overlay]] you can install git packages as well).&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # fix broken hippocanvas (Debian bug#522231)&lt;br /&gt;
 echo &amp;quot;deb-src http://debian.lcs.mit.edu/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 # echo &amp;quot;deb-src http://localhost:9999/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install apt-src devscripts&lt;br /&gt;
 apt-src install python-hippocanvas&lt;br /&gt;
 cd *hippo*&lt;br /&gt;
 DEB_BUILD_OPTIONS=nostrip debuild -us -uc&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i *hippo*.deb&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 cd ~&lt;br /&gt;
 ulimit -c unlimited&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=34454</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=34454"/>
		<updated>2009-08-01T18:30:03Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* Sugar continues to run happily in Squeeze chroots. --[[User:Mstone|Michael Stone]] 16:30, 3 July 2009 (UTC)&lt;br /&gt;
* Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: you can use approx to cache packages across multiple runs for faster testing:&lt;br /&gt;
&lt;br /&gt;
 apt-get install approx&lt;br /&gt;
 echo &#039;debian http://debian.lcs.mit.edu/debian&#039; &amp;gt;&amp;gt; /etc/approx/approx.conf&lt;br /&gt;
 /etc/init.d/approx restart&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://localhost:9999/debian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --install yum&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
==== Gentoo chroot ====&lt;br /&gt;
&lt;br /&gt;
Well, if you are familiar with regular Gentoo installation process(by using [http://www.gentoo.org/doc/en/handbook/ Handbook] instead of GUI stuff) you should know how to setup Gentoo chtoot :). Otherwise use these instructions.&lt;br /&gt;
&lt;br /&gt;
* Firstly, you need Gentoo stage tarball. You can borrow it from any [http://www.gentoo.org/main/en/mirrolrs2.xml mirror] (use releases/&amp;lt;platform&amp;gt;/current sub directory).&lt;br /&gt;
&lt;br /&gt;
* Lets think you are using stage3-i686-20090623.tar.bz2, then:&lt;br /&gt;
&lt;br /&gt;
 mkdir chroot-gentoo&lt;br /&gt;
 tar xjpf stage3-i686-20090623.tar.bz2 -C chroot-gentoo&lt;br /&gt;
 mount -o bind /dev chroot-gentoo/dev&lt;br /&gt;
 mount -o bind /proc chroot-gentoo/proc&lt;br /&gt;
 chroot chroot-gentoo /bin/bash&lt;br /&gt;
&lt;br /&gt;
* To install sugar, use [[Community/Distributions/Gentoo|sugar-overlay]] or setup [[Development_Team/Jhbuild|sugar-jhbuild]] environment(with [[Community/Distributions/Gentoo#Packages|sugar-overlay]] you can install git packages as well).&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # fix broken hippocanvas (Debian bug#522231)&lt;br /&gt;
 echo &amp;quot;deb-src http://debian.lcs.mit.edu/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 # echo &amp;quot;deb-src http://localhost:9999/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install apt-src devscripts&lt;br /&gt;
 apt-src install python-hippocanvas&lt;br /&gt;
 cd *hippo*&lt;br /&gt;
 DEB_BUILD_OPTIONS=nostrip debuild -us -uc&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i *hippo*.deb&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 cd ~&lt;br /&gt;
 ulimit -c unlimited&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=31845</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=31845"/>
		<updated>2009-07-03T16:30:34Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
* Sugar continues to run happily in Squeeze chroots. --[[User:Mstone|Michael Stone]] 16:30, 3 July 2009 (UTC)&lt;br /&gt;
* Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: you can use approx to cache packages across multiple runs for faster testing:&lt;br /&gt;
&lt;br /&gt;
 apt-get install approx&lt;br /&gt;
 echo &#039;debian http://debian.lcs.mit.edu/debian&#039; &amp;gt;&amp;gt; /etc/approx/approx.conf&lt;br /&gt;
 /etc/init.d/approx restart&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://localhost:9999/debian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --install yum&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # fix broken hippocanvas&lt;br /&gt;
 echo &amp;quot;deb-src http://debian.lcs.mit.edu/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 # echo &amp;quot;deb-src http://localhost:9999/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install apt-src devscripts&lt;br /&gt;
 apt-src install python-hippocanvas&lt;br /&gt;
 cd *hippo*&lt;br /&gt;
 DEB_BUILD_OPTIONS=nostrip debuild -us -uc&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i *hippo*.deb&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=31619</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=31619"/>
		<updated>2009-07-03T00:14:40Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* squeeze chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: you can use approx to cache packages across multiple runs for faster testing:&lt;br /&gt;
&lt;br /&gt;
 apt-get install approx&lt;br /&gt;
 echo &#039;debian http://debian.lcs.mit.edu/debian&#039; &amp;gt;&amp;gt; /etc/approx/approx.conf&lt;br /&gt;
 /etc/init.d/approx restart&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://localhost:9999/debian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --install yum&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # fix broken hippocanvas&lt;br /&gt;
 echo &amp;quot;deb-src http://debian.lcs.mit.edu/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 # echo &amp;quot;deb-src http://localhost:9999/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install apt-src devscripts&lt;br /&gt;
 apt-src install python-hippocanvas&lt;br /&gt;
 cd *hippo*&lt;br /&gt;
 DEB_BUILD_OPTIONS=nostrip debuild -us -uc&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i *hippo*.deb&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=31618</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=31618"/>
		<updated>2009-07-02T23:19:46Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: you can use approx to cache packages across multiple runs for faster testing:&lt;br /&gt;
&lt;br /&gt;
 apt-get install approx&lt;br /&gt;
 echo &#039;debian http://debian.lcs.mit.edu/debian&#039; &amp;gt;&amp;gt; /etc/approx/approx.conf&lt;br /&gt;
 /etc/init.d/approx restart&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://localhost:9999/debian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --install yum&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # fix broken hippocanvas&lt;br /&gt;
 echo &amp;quot;deb-src http://debian.lcs.mit.edu/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install apt-src devscripts&lt;br /&gt;
 apt-src install python-hippocanvas&lt;br /&gt;
 cd *hippo*&lt;br /&gt;
 DEB_BUILD_OPTIONS=nostrip debuild -us -uc&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i *hippo*.deb&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29674</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29674"/>
		<updated>2009-05-23T22:21:07Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar is now somewhat runnable from chroots. Jaunty and Squeeze have been tested recently; Fedora has not. --[[User:Mstone|Michael Stone]] 22:21, 23 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --install yum&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # fix broken hippocanvas&lt;br /&gt;
 echo &amp;quot;deb-src http://debian.lcs.mit.edu/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install apt-src devscripts&lt;br /&gt;
 apt-src install python-hippocanvas&lt;br /&gt;
 cd *hippo*&lt;br /&gt;
 DEB_BUILD_OPTIONS=nostrip debuild -us -uc&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i *hippo*.deb&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29673</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29673"/>
		<updated>2009-05-23T22:10:04Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian squeeze chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 squeeze $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t tmpfs tmpfs $CHROOT/tmp&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --install yum&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== squeeze chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 # edit /etc/hosts&lt;br /&gt;
&lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # fix broken hippocanvas&lt;br /&gt;
 echo &amp;quot;deb-src http://debian.lcs.mit.edu/debian squeeze main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install apt-src devscripts&lt;br /&gt;
 apt-src install python-hippocanvas&lt;br /&gt;
 cd *hippo*&lt;br /&gt;
 DEB_BUILD_OPTIONS=nostrip debuild -us -uc&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i *hippo*.deb&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24 # 1024x768x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=localhost:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 sudo killall -u sugar&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 umount $CHROOT/tmp&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29667</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29667"/>
		<updated>2009-05-23T17:05:34Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* sid chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --install yum&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== sid chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
 &lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
  # install your development tools here&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29666</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29666"/>
		<updated>2009-05-23T16:47:16Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* Fedora rawhide chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --install yum&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== sid chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
  # install your development tools here&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29665</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29665"/>
		<updated>2009-05-23T16:45:29Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* Sugar Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
==== sid chroot ====&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 apt-get install education-desktop-sugar&lt;br /&gt;
 &lt;br /&gt;
  # install your development tools here&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29664</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29664"/>
		<updated>2009-05-23T16:32:43Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;br /&gt;
&lt;br /&gt;
=== Cleaning Up ===&lt;br /&gt;
&lt;br /&gt;
To correctly delete a chroot that you no longer need, kill all processes running in the chroot, and&lt;br /&gt;
&lt;br /&gt;
 export CHROOT=/path/to/my/chroot  # important!&lt;br /&gt;
 umount $CHROOT/var/run/dbus&lt;br /&gt;
 umount $CHROOT/proc&lt;br /&gt;
 umount $CHROOT/dev/pts&lt;br /&gt;
 rm -rf $CHROOT&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29663</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29663"/>
		<updated>2009-05-23T16:28:27Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* jaunty chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
 &lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
  &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29662</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29662"/>
		<updated>2009-05-23T16:27:50Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* jaunty chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
 apt-get install locales&lt;br /&gt;
 locale-gen &amp;quot;$LANG&amp;quot;&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29661</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29661"/>
		<updated>2009-05-23T16:20:44Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* Running Sugar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;br /&gt;
&lt;br /&gt;
Then pull up the frame, switch to the home view, and launch some activities!&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29660</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29660"/>
		<updated>2009-05-23T16:20:00Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* X11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 -screen 800x600x24&lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29659</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29659"/>
		<updated>2009-05-23T16:18:21Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* jaunty chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 &lt;br /&gt;
 # install your development tools here&lt;br /&gt;
 &lt;br /&gt;
 # patch (hopefully temporary) bugs&lt;br /&gt;
 sed -ie &#039;114i\\        if not favorites_settings.layout: favorites_settings.layout = favoriteslayout.RingLayout.key&#039; /usr/lib/python2.6/dist-packages/jarabe/desktop/favoritesview.py&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29658</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29658"/>
		<updated>2009-05-23T16:10:40Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 # install your development tools here&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 su sugar -&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
 sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29657</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29657"/>
		<updated>2009-05-23T16:10:13Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* D-Bus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 # install your development tools here&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
 sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29656</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29656"/>
		<updated>2009-05-23T16:09:51Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* User Accounts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 # install your development tools here&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
 groupadd -g 64002 sugar&lt;br /&gt;
 useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
  sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29655</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29655"/>
		<updated>2009-05-23T16:06:32Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 # install your development tools here&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
  groupadd -g 64002 sugar&lt;br /&gt;
  useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
  sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== Running Sugar ===&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29654</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29654"/>
		<updated>2009-05-23T16:04:43Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* User Account */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 # install your development tools here&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
  sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== User Account ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, &#039;&#039;as root&#039;&#039;, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
  groupadd -g 64002 sugar&lt;br /&gt;
  useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29653</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29653"/>
		<updated>2009-05-23T16:04:17Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* D-Bus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 # install your development tools here&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, &#039;&#039;outside the chroot&#039;&#039;, we need to&lt;br /&gt;
&lt;br /&gt;
  sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== User Account ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
  groupadd -g 64002 sugar&lt;br /&gt;
  useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Talk:Development_Team/Chroot&amp;diff=29652</id>
		<title>Talk:Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Talk:Development_Team/Chroot&amp;diff=29652"/>
		<updated>2009-05-23T16:03:00Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Restricting Xephyr connections ==&lt;br /&gt;
Most X11 servers are configured to disable TCP connections. This means that in order to get a working X connection we can:&lt;br /&gt;
&lt;br /&gt;
# bind-mount the X unix socket into the chroot.&lt;br /&gt;
# ssh &#039;&#039;into&#039;&#039; the chroot with X11-forwarding enabled.&lt;br /&gt;
# Enable TCP on an X server, e.g. a nested Xephyr.&lt;br /&gt;
&lt;br /&gt;
In the main walk-through, we chose to use an open Xephyr like so:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1&lt;br /&gt;
&lt;br /&gt;
However, we might instead try:&lt;br /&gt;
&lt;br /&gt;
 # &#039;&#039;outside chroot&#039;&#039;&lt;br /&gt;
 DISP=:1  # adjust to suit your configuration&lt;br /&gt;
 COOKIE=$(mcookie)&lt;br /&gt;
 AUTH=$(mktemp)&lt;br /&gt;
 echo &amp;quot;add $DISP . $COOKIE&amp;quot; | xauth -f &amp;quot;$AUTH&amp;quot;&lt;br /&gt;
 echo &amp;quot;add these commands to clients:&amp;quot;&lt;br /&gt;
 echo &amp;quot;export DISPLAY=\&amp;quot;localhost$DISP\&amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;export XAUTHORITY=\&amp;quot;$AUTH\&amp;quot;&amp;quot;&lt;br /&gt;
 Xephyr -auth &amp;quot;$AUTH&amp;quot; -reset -terminate &amp;quot;$DISP&amp;quot; &amp;amp;&amp;amp; rm &amp;quot;$AUTH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And, &#039;&#039;inside&#039;&#039; the chroot, set the &amp;lt;tt&amp;gt;DISPLAY&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;XAUTHORITY&amp;lt;/tt&amp;gt; variables as directed by the setup script and copy the &amp;lt;tt&amp;gt;&amp;quot;$AUTH&amp;quot;&amp;lt;/tt&amp;gt; file from outside the chroot into the chroot to the path assigned to &amp;lt;tt&amp;gt;&amp;quot;$XAUTHORITY&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== as_person script, when PAM is misconfigured ==&lt;br /&gt;
 cat &amp;gt; as_person &amp;lt;&amp;lt;EOF&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 from os import environ, chdir, setgroups, setgid, setuid, execve&lt;br /&gt;
 from sys import argv&lt;br /&gt;
 from pwd import getpwnam&lt;br /&gt;
 user = getpwnam(argv[1])&lt;br /&gt;
 environ[&#039;HOME&#039;] = user.pw_dir&lt;br /&gt;
 environ[&#039;USER&#039;] = user.pw_name&lt;br /&gt;
 chdir(user.pw_dir)&lt;br /&gt;
 setgroups([user.pw_gid])&lt;br /&gt;
 setgid(user.pw_gid)&lt;br /&gt;
 setuid(user.pw_uid)&lt;br /&gt;
 execve(argv[2], argv[2:], environ)&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod a+x as_person&lt;br /&gt;
 ./as_person sugar /usr/bin/sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29651</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29651"/>
		<updated>2009-05-23T16:02:03Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* X11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 # install your development tools here&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
We need to point Sugar at an X server. One easy (but insecure) way to do this is to make a nested X server like so, &#039;&#039;outside the chroot&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
See the talk page for more secure alternatives.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, we need to bind-mount&lt;br /&gt;
&lt;br /&gt;
  mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== User Account ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
  groupadd -g 64002 sugar&lt;br /&gt;
  useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29650</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29650"/>
		<updated>2009-05-23T15:59:17Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* jaunty chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install sugar sugar-activities&lt;br /&gt;
 # install your development tools here&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
Most X11 servers are configured to disable TCP connections. This means that in order to get a working X connection we can:&lt;br /&gt;
&lt;br /&gt;
# bind-mount the X unix socket into the chroot.&lt;br /&gt;
# ssh &#039;&#039;into&#039;&#039; the chroot with X11-forwarding enabled.&lt;br /&gt;
# Enable TCP on an X server, e.g. a nested Xephyr.&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to try option (3) first:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
And, &#039;&#039;inside&#039;&#039; the chroot, set the &amp;lt;tt&amp;gt;DISPLAY&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;localhost:1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, we need to bind-mount&lt;br /&gt;
&lt;br /&gt;
  mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== User Account ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
  groupadd -g 64002 sugar&lt;br /&gt;
  useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29649</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29649"/>
		<updated>2009-05-23T15:56:06Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== Sugar Installation ===&lt;br /&gt;
&lt;br /&gt;
==== jaunty chroot ====&lt;br /&gt;
&lt;br /&gt;
 sed -ie &amp;quot;s/main/main universe/&amp;quot; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
Most X11 servers are configured to disable TCP connections. This means that in order to get a working X connection we can:&lt;br /&gt;
&lt;br /&gt;
# bind-mount the X unix socket into the chroot.&lt;br /&gt;
# ssh &#039;&#039;into&#039;&#039; the chroot with X11-forwarding enabled.&lt;br /&gt;
# Enable TCP on an X server, e.g. a nested Xephyr.&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to try option (3) first:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
And, &#039;&#039;inside&#039;&#039; the chroot, set the &amp;lt;tt&amp;gt;DISPLAY&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;localhost:1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, we need to bind-mount&lt;br /&gt;
&lt;br /&gt;
  mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== User Account ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
  groupadd -g 64002 sugar&lt;br /&gt;
  useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29648</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29648"/>
		<updated>2009-05-23T15:55:02Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
Here are some ideas to help you get started:&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu jaunty chroot ====&lt;br /&gt;
With &#039;&#039;recent&#039;&#039; versions of debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/jaunty-root&lt;br /&gt;
 sudo debootstrap --arch i386 jaunty $CHROOT http://ubuntu.media.mit.edu/ubuntu/&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 mount -t proc proc /proc&lt;br /&gt;
 mount -t devpts devpts /dev/pts&lt;br /&gt;
&lt;br /&gt;
==== Debian sid chroot ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
 export CHROOT=`pwd`/sid-root&lt;br /&gt;
 sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
 sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
 # and some of the following:&lt;br /&gt;
 mount -t proc proc $CHROOT/proc&lt;br /&gt;
 mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
 mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Fedora rawhide chroot ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
 mock -r fedora-devel-i386 --init&lt;br /&gt;
 mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
Most X11 servers are configured to disable TCP connections. This means that in order to get a working X connection we can:&lt;br /&gt;
&lt;br /&gt;
# bind-mount the X unix socket into the chroot.&lt;br /&gt;
# ssh &#039;&#039;into&#039;&#039; the chroot with X11-forwarding enabled.&lt;br /&gt;
# Enable TCP on an X server, e.g. a nested Xephyr.&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to try option (3) first:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
And, &#039;&#039;inside&#039;&#039; the chroot, set the &amp;lt;tt&amp;gt;DISPLAY&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;localhost:1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, we need to bind-mount&lt;br /&gt;
&lt;br /&gt;
  mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== User Account ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
  groupadd -g 64002 sugar&lt;br /&gt;
  useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29647</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29647"/>
		<updated>2009-05-23T15:51:51Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
==== debootstrap ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
  export CHROOT=`pwd`/sid-root&lt;br /&gt;
  sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
  sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
  # and some of the following:&lt;br /&gt;
  mount -t proc proc $CHROOT/proc&lt;br /&gt;
  mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
  mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== mock ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
  mock -r fedora-devel-i386 --init&lt;br /&gt;
  mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
Most X11 servers are configured to disable TCP connections. This means that in order to get a working X connection we can:&lt;br /&gt;
&lt;br /&gt;
# bind-mount the X unix socket into the chroot.&lt;br /&gt;
# ssh &#039;&#039;into&#039;&#039; the chroot with X11-forwarding enabled.&lt;br /&gt;
# Enable TCP on an X server, e.g. a nested Xephyr.&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to try option (3) first:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
And, &#039;&#039;inside&#039;&#039; the chroot, set the &amp;lt;tt&amp;gt;DISPLAY&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;localhost:1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, we need to bind-mount&lt;br /&gt;
&lt;br /&gt;
  mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== User Account ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
  groupadd -g 64002 sugar&lt;br /&gt;
  useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29646</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29646"/>
		<updated>2009-05-23T15:51:18Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* D-Bus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
==== debootstrap ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
  export CHROOT=`pwd`/sid-root&lt;br /&gt;
  sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
  sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
  # and some of the following:&lt;br /&gt;
  mount -t proc proc $CHROOT/proc&lt;br /&gt;
  mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
  mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== mock ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
  mock -r fedora-devel-i386 --init&lt;br /&gt;
  mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
Most X11 servers are configured to disable TCP connections. This means that in order to get a working X connection we can:&lt;br /&gt;
&lt;br /&gt;
# bind-mount the X unix socket into the chroot.&lt;br /&gt;
# ssh &#039;&#039;into&#039;&#039; the chroot with X11-forwarding enabled.&lt;br /&gt;
# Enable TCP on an X server, e.g. a nested Xephyr.&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to try option (3) first:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
And, &#039;&#039;inside&#039;&#039; the chroot, set the &amp;lt;tt&amp;gt;DISPLAY&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;localhost:1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, we need to bind-mount&lt;br /&gt;
&lt;br /&gt;
  mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
=== User Account ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
  groupadd -g 64002 sugar&lt;br /&gt;
  useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;br /&gt;
&lt;br /&gt;
== Jhbuild ==&lt;br /&gt;
&lt;br /&gt;
After, you can also build sugar inside your chroot without compromising your &#039;&#039;main&#039;&#039; system.&lt;br /&gt;
&lt;br /&gt;
*[[Development Team/Jhbuild]]&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Talk:Development_Team/Chroot&amp;diff=29645</id>
		<title>Talk:Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Talk:Development_Team/Chroot&amp;diff=29645"/>
		<updated>2009-05-23T15:50:48Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Restricting Xephyr connections ==&lt;br /&gt;
 # &#039;&#039;outside chroot&#039;&#039;&lt;br /&gt;
 DISP=:1  # adjust to suit your configuration&lt;br /&gt;
 COOKIE=$(mcookie)&lt;br /&gt;
 AUTH=$(mktemp)&lt;br /&gt;
 echo &amp;quot;add $DISP . $COOKIE&amp;quot; | xauth -f &amp;quot;$AUTH&amp;quot;&lt;br /&gt;
 echo &amp;quot;add these commands to clients:&amp;quot;&lt;br /&gt;
 echo &amp;quot;export DISPLAY=\&amp;quot;localhost$DISP\&amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;export XAUTHORITY=\&amp;quot;$AUTH\&amp;quot;&amp;quot;&lt;br /&gt;
 Xephyr -auth &amp;quot;$AUTH&amp;quot; -reset -terminate &amp;quot;$DISP&amp;quot; &amp;amp;&amp;amp; rm &amp;quot;$AUTH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And, &#039;&#039;inside&#039;&#039; the chroot, set the &amp;lt;tt&amp;gt;DISPLAY&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;XAUTHORITY&amp;lt;/tt&amp;gt; variables as directed by the setup script and copy the &amp;lt;tt&amp;gt;&amp;quot;$AUTH&amp;quot;&amp;lt;/tt&amp;gt; file from outside the chroot into the chroot to the path assigned to &amp;lt;tt&amp;gt;&amp;quot;$XAUTHORITY&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== as_person script, when PAM is misconfigured ==&lt;br /&gt;
 cat &amp;gt; as_person &amp;lt;&amp;lt;EOF&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 from os import environ, chdir, setgroups, setgid, setuid, execve&lt;br /&gt;
 from sys import argv&lt;br /&gt;
 from pwd import getpwnam&lt;br /&gt;
 user = getpwnam(argv[1])&lt;br /&gt;
 environ[&#039;HOME&#039;] = user.pw_dir&lt;br /&gt;
 environ[&#039;USER&#039;] = user.pw_name&lt;br /&gt;
 chdir(user.pw_dir)&lt;br /&gt;
 setgroups([user.pw_gid])&lt;br /&gt;
 setgid(user.pw_gid)&lt;br /&gt;
 setuid(user.pw_uid)&lt;br /&gt;
 execve(argv[2], argv[2:], environ)&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod a+x as_person&lt;br /&gt;
 ./as_person sugar /usr/bin/sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Talk:Development_Team/Chroot&amp;diff=29644</id>
		<title>Talk:Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Talk:Development_Team/Chroot&amp;diff=29644"/>
		<updated>2009-05-23T15:50:22Z</updated>

		<summary type="html">&lt;p&gt;Mstone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Restricting Xephyr connections ==&lt;br /&gt;
 # &#039;&#039;outside chroot&#039;&#039;&lt;br /&gt;
 DISP=:1  # adjust to suit your configuration&lt;br /&gt;
 COOKIE=$(mcookie)&lt;br /&gt;
 AUTH=$(mktemp)&lt;br /&gt;
 echo &amp;quot;add $DISP . $COOKIE&amp;quot; | xauth -f &amp;quot;$AUTH&amp;quot;&lt;br /&gt;
 echo &amp;quot;add these commands to clients:&amp;quot;&lt;br /&gt;
 echo &amp;quot;export DISPLAY=\&amp;quot;localhost$DISP\&amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;export XAUTHORITY=\&amp;quot;$AUTH\&amp;quot;&amp;quot;&lt;br /&gt;
 Xephyr -auth &amp;quot;$AUTH&amp;quot; -reset -terminate &amp;quot;$DISP&amp;quot; &amp;amp;&amp;amp; rm &amp;quot;$AUTH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And, &#039;&#039;inside&#039;&#039; the chroot, set the &amp;lt;tt&amp;gt;DISPLAY&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;XAUTHORITY&amp;lt;/tt&amp;gt; variables as directed by the setup script and copy the &amp;lt;tt&amp;gt;&amp;quot;$AUTH&amp;quot;&amp;lt;/tt&amp;gt; file from outside the chroot into the chroot to the path assigned to &amp;lt;tt&amp;gt;&amp;quot;$XAUTHORITY&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== as_person script, when PAM is misconfigured ==&lt;br /&gt;
cat &amp;gt; as_person &amp;lt;&amp;lt;EOF&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 from os import environ, chdir, setgroups, setgid, setuid, execve&lt;br /&gt;
 from sys import argv&lt;br /&gt;
 from pwd import getpwnam&lt;br /&gt;
 user = getpwnam(argv[1])&lt;br /&gt;
 environ[&#039;HOME&#039;] = user.pw_dir&lt;br /&gt;
 environ[&#039;USER&#039;] = user.pw_name&lt;br /&gt;
 chdir(user.pw_dir)&lt;br /&gt;
 setgroups([user.pw_gid])&lt;br /&gt;
 setgid(user.pw_gid)&lt;br /&gt;
 setuid(user.pw_uid)&lt;br /&gt;
 execve(argv[2], argv[2:], environ)&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod a+x as_person&lt;br /&gt;
 ./as_person sugar /usr/bin/sugar&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29643</id>
		<title>Development Team/Chroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Chroot&amp;diff=29643"/>
		<updated>2009-05-23T15:49:09Z</updated>

		<summary type="html">&lt;p&gt;Mstone: /* User Account */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sugar ought to be easy to run from chroots. For a variety of silly reasons, this isn&#039;t yet the case, but it might be soon. Ping [[User:Mstone|Michael]] with questions.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Construction ===&lt;br /&gt;
&lt;br /&gt;
There are lots of ways to create appropriate chroots; e.g. by hand, with debootstrap, with mock, etc.&lt;br /&gt;
&lt;br /&gt;
==== debootstrap ====&lt;br /&gt;
With debootstrap, in order to get a working chroot, you want something like: &lt;br /&gt;
&lt;br /&gt;
  export CHROOT=`pwd`/sid-root&lt;br /&gt;
  sudo debootstrap --arch i386 sid $CHROOT http://debian.lcs.mit.edu/debian&lt;br /&gt;
  sudo chroot $CHROOT /bin/bash -l&lt;br /&gt;
  # and some of the following:&lt;br /&gt;
  mount -t proc proc $CHROOT/proc&lt;br /&gt;
  mount -t devpts devpts $CHROOT/dev/pts&lt;br /&gt;
  mount -t selinuxfs selinux $CHROOT/selinux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reference: http://www.debian.org/doc/manuals/reference/ch-tips.en.html &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== mock ====&lt;br /&gt;
With mock, it would be more like:&lt;br /&gt;
&lt;br /&gt;
  mock -r fedora-devel-i386 --init&lt;br /&gt;
  mock -r fedora-devel-i386 --shell&lt;br /&gt;
&lt;br /&gt;
=== X11 ===&lt;br /&gt;
&lt;br /&gt;
Most X11 servers are configured to disable TCP connections. This means that in order to get a working X connection we can:&lt;br /&gt;
&lt;br /&gt;
# bind-mount the X unix socket into the chroot.&lt;br /&gt;
# ssh &#039;&#039;into&#039;&#039; the chroot with X11-forwarding enabled.&lt;br /&gt;
# Enable TCP on an X server, e.g. a nested Xephyr.&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to try option (3) first:&lt;br /&gt;
&lt;br /&gt;
 Xephyr -ac :1 &lt;br /&gt;
&lt;br /&gt;
And, &#039;&#039;inside&#039;&#039; the chroot, set the &amp;lt;tt&amp;gt;DISPLAY&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;localhost:1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
Sugar wants to be able to use global state stored in both HAL and NetworkManager, both of which live on the system bus. Consequently, we need to bind-mount&lt;br /&gt;
&lt;br /&gt;
  mount --bind /var/run/dbus $CHROOT/var/run/dbus&lt;br /&gt;
&lt;br /&gt;
before entering the chroot. (Mock uses unshare() to enter a new mount-point namespace since this makes garbage collection of mountpoints much easier.)&lt;br /&gt;
&lt;br /&gt;
It also wants to have a session bus so, &#039;&#039;inside&#039;&#039; the chroot, as user &amp;lt;tt&amp;gt;sugar&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
&lt;br /&gt;
=== User Account ===&lt;br /&gt;
&lt;br /&gt;
For stupid reasons, it&#039;s necessary that Sugar run under a uid inside the chroot which exists as a real account outside the chroot. (Talk to the DBus people.)&lt;br /&gt;
&lt;br /&gt;
Consequently, run something like this &#039;&#039;both&#039;&#039; inside and outside the chroot:&lt;br /&gt;
&lt;br /&gt;
  groupadd -g 64002 sugar&lt;br /&gt;
  useradd -m -u 64002 -g sugar -s /bin/bash sugar&lt;br /&gt;
&lt;br /&gt;
Then, inside the chroot, you can happily run sugar as user &#039;sugar&#039; with something like&lt;br /&gt;
&lt;br /&gt;
  su sugar -&lt;br /&gt;
  export DISPLAY=:1&lt;br /&gt;
  export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --print-address --fork)&lt;br /&gt;
  sugar&lt;br /&gt;
&lt;br /&gt;
== Jhbuild ==&lt;br /&gt;
&lt;br /&gt;
After, you can also build sugar inside your chroot without compromising your &#039;&#039;main&#039;&#039; system.&lt;br /&gt;
&lt;br /&gt;
*[[Development Team/Jhbuild]]&lt;/div&gt;</summary>
		<author><name>Mstone</name></author>
	</entry>
</feed>