Re: Deployment image customization

2008-12-23 Thread Daniel Drake
On Tue, Dec 23, 2008 at 2:19 PM, Greg Smith gregsmitho...@gmail.com wrote:
 Your suggestion that we allow
 addition of RPMs and get those built into a signed image via pilgrim or
 puritan is certainly valuable and part of the requirement.

 However, it doesn't cover a few added things (language settings was
 specifically requested by Mongolia and others):

 - Updated language packs (I believe we are trying to make this an RPM which
 may solve it)
 - Starting language
 - Date, time and timezone
 - Network settings

Well, my suggestion of pilgrim and puritan was only for customising
RPM packages. For the other things, I wrote:
As for other customisations, the current method (customization key)
works fine for the limited customisations that it allows, so that
simply needs to be expanded. 

I could have probably worded that better. In other words, my opinion
is that the existing customisation stick system should be expanded to
also allow customisation of timezone, language settings, translation
installation, etc.

 The biggest challenge I see is to find those things which you do not want to
 clone from the source XO. The only things that come to mind are Name and
 Color. We could even pre-fill them as long as those dialog boxes come up at
 start up.

There is a lot more than that - it's things that are invisible to the
user, technical details of the system, which are the bits we don't
have a good answer for. For example (an easy one), keys are generated
on first boot, but it is potentially bad news down the line if
multiple XOs have the same keys. The hard part is tracking these
things, which are not specified anywhere and there's no one place you
can look to find them. I wish I could find a link to Michael's mail,
where he investigated some of these things for an old build, and some
of the findings were surprising even to us who hack on the system
level all day...

 In short, I like your proposal but I still want a little more :-)

If you're looking for initial high-level action items:
1. The discussions on lease delegation / allowing countries to sign
their builds / providing customised builds for countries need to be
finished. The outcome would be someone implementing whatever method
allows country A to say we want OLPC build B with added RPMs C,D,E
2. Someone needs to implement the customization stick enhancements
(and surrounding projects, such as xot bundles). Will require some
modifications on the sugar-level too.

Daniel
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Deployment image customization

2008-12-23 Thread Greg Smith
Hi Dan,

Those sound like two good steps.

I think we should make a design decision here to either:
1 - clone minus a list of configurations
or
2 - Extend customization to include everything relevant for a deployment.

Both have challenges. My preference is clone because I think its easier 
for the end user (create an XO the way you like it then click clone). 
However, we need to figure out the list of things that should not be 
cloned as you mention.

Extending the customization key has two main challenges as I see it. The 
first is that we may miss some customization that people want. The 
second is that its a little cumbersome to collect all the files, put 
them on a USB stick, add an fs.zip etc. I believe it also requires a 
second boot of the XO and possibly 2 USB sticks. One to update OS and a 
second to add customizations.

The final image must be deliverable as an upgrade or a clean install via 
and of the following: olpc-update to internet, via olpc-update to XS, 
via NAND Blaster, via USB stick.

I updated the requirements to bullet those out more clearly.

In terms of customization stick or clone, this is where the lead 
engineer or whoever does the work gets to make the final call. Just make 
sure you address all the requirements and that  we get it done in time 
for a QA cycle in February and we'll be OK.

If some requirement cannot be met (e.g. set the language to Mongolian) 
we can consider living without it. I prefer to nail them all but hitting 
the date and improving the product is more important than the perfect 
solution which never comes.

I agree that its closely related to the lease delegation, signing, and 
building requirements (your next step #1 below).

A well architected approach that addresses all the points (section 2 
here: http://wiki.laptop.org/go/9.1.0#Top_Priority) would be great!

Thanks,

Greg S

Daniel Drake wrote:
 On Tue, Dec 23, 2008 at 2:19 PM, Greg Smith gregsmitho...@gmail.com wrote:
 Your suggestion that we allow
 addition of RPMs and get those built into a signed image via pilgrim or
 puritan is certainly valuable and part of the requirement.

 However, it doesn't cover a few added things (language settings was
 specifically requested by Mongolia and others):

 - Updated language packs (I believe we are trying to make this an RPM which
 may solve it)
 - Starting language
 - Date, time and timezone
 - Network settings
 
 Well, my suggestion of pilgrim and puritan was only for customising
 RPM packages. For the other things, I wrote:
 As for other customisations, the current method (customization key)
 works fine for the limited customisations that it allows, so that
 simply needs to be expanded. 
 
 I could have probably worded that better. In other words, my opinion
 is that the existing customisation stick system should be expanded to
 also allow customisation of timezone, language settings, translation
 installation, etc.
 
 The biggest challenge I see is to find those things which you do not want to
 clone from the source XO. The only things that come to mind are Name and
 Color. We could even pre-fill them as long as those dialog boxes come up at
 start up.
 
 There is a lot more than that - it's things that are invisible to the
 user, technical details of the system, which are the bits we don't
 have a good answer for. For example (an easy one), keys are generated
 on first boot, but it is potentially bad news down the line if
 multiple XOs have the same keys. The hard part is tracking these
 things, which are not specified anywhere and there's no one place you
 can look to find them. I wish I could find a link to Michael's mail,
 where he investigated some of these things for an old build, and some
 of the findings were surprising even to us who hack on the system
 level all day...
 
 In short, I like your proposal but I still want a little more :-)
 
 If you're looking for initial high-level action items:
 1. The discussions on lease delegation / allowing countries to sign
 their builds / providing customised builds for countries need to be
 finished. The outcome would be someone implementing whatever method
 allows country A to say we want OLPC build B with added RPMs C,D,E
 2. Someone needs to implement the customization stick enhancements
 (and surrounding projects, such as xot bundles). Will require some
 modifications on the sugar-level too.
 
 Daniel
 
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Deployment image customization

2008-12-23 Thread Morgan Collett
On Tue, Dec 23, 2008 at 18:29, Daniel Drake d...@laptop.org wrote:
 On Tue, Dec 23, 2008 at 2:19 PM, Greg Smith gregsmitho...@gmail.com wrote:
 Your suggestion that we allow
 addition of RPMs and get those built into a signed image via pilgrim or
 puritan is certainly valuable and part of the requirement.

 However, it doesn't cover a few added things (language settings was
 specifically requested by Mongolia and others):

 - Updated language packs (I believe we are trying to make this an RPM which
 may solve it)
 - Starting language
 - Date, time and timezone
 - Network settings

 Well, my suggestion of pilgrim and puritan was only for customising
 RPM packages. For the other things, I wrote:
 As for other customisations, the current method (customization key)
 works fine for the limited customisations that it allows, so that
 simply needs to be expanded. 

 I could have probably worded that better. In other words, my opinion
 is that the existing customisation stick system should be expanded to
 also allow customisation of timezone, language settings, translation
 installation, etc.

 The biggest challenge I see is to find those things which you do not want to
 clone from the source XO. The only things that come to mind are Name and
 Color. We could even pre-fill them as long as those dialog boxes come up at
 start up.

 There is a lot more than that - it's things that are invisible to the
 user, technical details of the system, which are the bits we don't
 have a good answer for. For example (an easy one), keys are generated
 on first boot, but it is potentially bad news down the line if
 multiple XOs have the same keys. The hard part is tracking these
 things, which are not specified anywhere and there's no one place you
 can look to find them. I wish I could find a link to Michael's mail,
 where he investigated some of these things for an old build, and some
 of the findings were surprising even to us who hack on the system
 level all day...

I believe the mail from Michael that you were looking for is
http://lists.laptop.org/pipermail/devel/2008-March/012200.html - and
http://lists.laptop.org/pipermail/devel/2008-April/012957.html is
probably also relevant.

The keys generated in ~/.sugar/default/ are AFAIK not used for crypto,
but are used to generate the unique Jabber ID (JID). If two XOs (or
Sugar clients) have the same keys, Strange Bad Things happen to
presence and collaboration.

 In short, I like your proposal but I still want a little more :-)

 If you're looking for initial high-level action items:
 1. The discussions on lease delegation / allowing countries to sign
 their builds / providing customised builds for countries need to be
 finished. The outcome would be someone implementing whatever method
 allows country A to say we want OLPC build B with added RPMs C,D,E
 2. Someone needs to implement the customization stick enhancements
 (and surrounding projects, such as xot bundles). Will require some
 modifications on the sugar-level too.

 Daniel

Regards
Morgan
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Deployment image customization

2008-12-23 Thread Michael Stone
On Tue, Dec 23, 2008 at 09:18:51PM +0200, Morgan Collett wrote:
On Tue, Dec 23, 2008 at 18:29, Daniel Drake d...@laptop.org wrote:
 On Tue, Dec 23, 2008 at 2:19 PM, Greg Smith gregsmitho...@gmail.com wrote:
 Your suggestion that we allow
 addition of RPMs and get those built into a signed image via pilgrim or
 puritan is certainly valuable and part of the requirement.

 However, it doesn't cover a few added things (language settings was
 specifically requested by Mongolia and others):

 - Updated language packs (I believe we are trying to make this an RPM which
 may solve it)
 - Starting language
 - Date, time and timezone
 - Network settings

Both puritan and pilgrim install many unpackaged hacks; that's actually
the major reason why they exist. 

(Some special indirection needs to be taken if you want to deploy hacks
to /home via olpc-update, since it doesn't touch /home, but for
whole-NAND-reflash tasks, either is certainly adequate.)

It's also possible to combine a compose-tool like puritan or pilgrim
with our existing image-builder technology (which generates mfg-ready
images from customization-stick data.)

Michael
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Deployment image customization

2008-12-23 Thread Edward Cherlin
On Tue, Dec 23, 2008 at 11:26 AM, Michael Stone mich...@laptop.org wrote:
 On Tue, Dec 23, 2008 at 09:18:51PM +0200, Morgan Collett wrote:
On Tue, Dec 23, 2008 at 18:29, Daniel Drake d...@laptop.org wrote:
 On Tue, Dec 23, 2008 at 2:19 PM, Greg Smith gregsmitho...@gmail.com wrote:
 Your suggestion that we allow
 addition of RPMs and get those built into a signed image via pilgrim or
 puritan is certainly valuable and part of the requirement.

 However, it doesn't cover a few added things (language settings was
 specifically requested by Mongolia and others):

 - Updated language packs (I believe we are trying to make this an RPM which
 may solve it)
 - Starting language
 - Date, time and timezone
 - Network settings

 Both puritan and pilgrim install many unpackaged hacks; that's actually
 the major reason why they exist.

 (Some special indirection needs to be taken if you want to deploy hacks
 to /home via olpc-update, since it doesn't touch /home, but for
 whole-NAND-reflash tasks, either is certainly adequate.)

 It's also possible to combine a compose-tool like puritan or pilgrim
 with our existing image-builder technology (which generates mfg-ready
 images from customization-stick data.)

Would it be possible to apply these tools to creating LiveCDs and
qemu-ready image files? I certainly don't want to add to the burdens
of over-burdened staff, but can some of us volunteers do that part? I
ask in large part because recent LiveCDs and image files don't work on
my computer.

 Michael
 ___
 Devel mailing list
 Devel@lists.laptop.org
 http://lists.laptop.org/listinfo/devel




-- 
Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name
And Children are my nation.
The Cosmos is my dwelling place, The Truth my destination.
http://wiki.sugarlabs.org/go/User:Mokurai
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Deployment image customization

2008-12-23 Thread Daniel Drake
On Tue, Dec 23, 2008 at 5:31 PM, Greg Smith gregsmitho...@gmail.com wrote:
 Both have challenges. My preference is clone because I think its easier for
 the end user (create an XO the way you like it then click clone). However,
 we need to figure out the list of things that should not be cloned as you
 mention.

It's not just creating a list. You also have to figure out how the
list can be made automatically. And then finally (the easy part, but
may bring some unexpected challenges) is acting upon the list. The
actual imaging may also present challenges, e.g. do you clean up
before or after?

 Extending the customization key has two main challenges as I see it. The
 first is that we may miss some customization that people want. The second is
 that its a little cumbersome to collect all the files, put them on a USB
 stick, add an fs.zip etc. I believe it also requires a second boot of the XO
 and possibly 2 USB sticks. One to update OS and a second to add
 customizations.

It can be done like that, or the deployments can do as they already do
with the customization stick: they make the customization stick, test
it, then turn it into an image (including OS).
http://wiki.laptop.org/go/Image_builder
then OLPC signs the image, as has been done for Peru builds.

 In terms of customization stick or clone, this is where the lead engineer or
 whoever does the work gets to make the final call. Just make sure you
 address all the requirements and that  we get it done in time for a QA cycle
 in February and we'll be OK.

OK, glad to hear that engineering will have input into the decision ;)
I do not have time to work on this myself but may chip in here and there.

Daniel
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Deployment image customization

2008-12-23 Thread pgf
morgan wrote:
  On Tue, Dec 23, 2008 at 18:29, Daniel Drake d...@laptop.org wrote:
   On Tue, Dec 23, 2008 at 2:19 PM, Greg Smith gregsmitho...@gmail.com 
   wrote:
 ...
   The biggest challenge I see is to find those things which you do not want 
   to
   clone from the source XO. The only things that come to mind are Name and
   Color. We could even pre-fill them as long as those dialog boxes come up 
   at
   start up.
  
   There is a lot more than that - it's things that are invisible to the
   user, technical details of the system, which are the bits we don't
   have a good answer for. For example (an easy one), keys are generated
   on first boot, but it is potentially bad news down the line if
   multiple XOs have the same keys. The hard part is tracking these
   things, which are not specified anywhere and there's no one place you
...
  I believe the mail from Michael that you were looking for is
  http://lists.laptop.org/pipermail/devel/2008-March/012200.html - and
  http://lists.laptop.org/pipermail/devel/2008-April/012957.html is
  probably also relevant.
  
  The keys generated in ~/.sugar/default/ are AFAIK not used for crypto,
  but are used to generate the unique Jabber ID (JID). If two XOs (or
  Sugar clients) have the same keys, Strange Bad Things happen to
  presence and collaboration.

ssh host keys are probably generated on first boot as well.

with partitioning support, it should be possible to have a r.o. root
overlaid by a unionfs writeable mount, so machine-specific changes
don't modify the released partition.  this would make cloning quite a
bit easier, i'd think.  i have no idea what the performance hit of
a unionfs setup would be, nor how such a partitioning would fit
into the rest of the update strategy (e.g.  olpc-update).

paul
=-
 paul fox, p...@laptop.org
 give one laptop, get one laptop --- http://www.laptop.com/xo
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Deployment image customization

2008-12-23 Thread Daniel Drake
On Tue, Dec 23, 2008 at 8:08 PM,  p...@laptop.org wrote:
 ssh host keys are probably generated on first boot as well.

 with partitioning support, it should be possible to have a r.o. root
 overlaid by a unionfs writeable mount, so machine-specific changes
 don't modify the released partition.  this would make cloning quite a
 bit easier, i'd think.  i have no idea what the performance hit of
 a unionfs setup would be, nor how such a partitioning would fit
 into the rest of the update strategy (e.g.  olpc-update).

unionfs isn't upstream and was quite unreliable last time I use it.
And it adds the challenge of differentiating state that must be
discarded for the cloned image, and state that must not be.

For example, we would want to ssh keys generated during first boot to
*not* be included in the clonable image, that's obvious. But if the
user boots the OLPC image, goes into the control panel and sets a
language, then we *do* want that language change to be included in the
clonable image that is the output of the process.

How would the system differentiate between those two?

Daniel
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Deployment image customization

2008-12-23 Thread pgf
daniel wrote:
  On Tue, Dec 23, 2008 at 8:08 PM,  p...@laptop.org wrote:
   ssh host keys are probably generated on first boot as well.
  
   with partitioning support, it should be possible to have a r.o. root
   overlaid by a unionfs writeable mount, so machine-specific changes
   don't modify the released partition.  this would make cloning quite a
   bit easier, i'd think.  i have no idea what the performance hit of
   a unionfs setup would be, nor how such a partitioning would fit
   into the rest of the update strategy (e.g.  olpc-update).
  
  unionfs isn't upstream and was quite unreliable last time I use it.
  And it adds the challenge of differentiating state that must be
  discarded for the cloned image, and state that must not be.
  
  For example, we would want to ssh keys generated during first boot to
  *not* be included in the clonable image, that's obvious. But if the
  user boots the OLPC image, goes into the control panel and sets a
  language, then we *do* want that language change to be included in the
  clonable image that is the output of the process.
  
  How would the system differentiate between those two?

i dunno.  i guess the lead engineer on the project would have to
decide.  :-)

paul
=-
 paul fox, p...@laptop.org
 give one laptop, get one laptop --- http://www.laptop.com/xo
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Deployment image customization

2008-12-23 Thread Michael Stone
On Tue, Dec 23, 2008 at 03:29:08PM -0500, p...@laptop.org wrote:
daniel wrote:
  On Tue, Dec 23, 2008 at 8:08 PM,  p...@laptop.org wrote:
   ssh host keys are probably generated on first boot as well.
  
   with partitioning support, it should be possible to have a r.o. root
   overlaid by a unionfs writeable mount, so machine-specific changes
   don't modify the released partition.  this would make cloning quite a
   bit easier, i'd think.  i have no idea what the performance hit of
   a unionfs setup would be, nor how such a partitioning would fit
   into the rest of the update strategy (e.g.  olpc-update).
  
  unionfs isn't upstream and was quite unreliable last time I use it.
  And it adds the challenge of differentiating state that must be
  discarded for the cloned image, and state that must not be.
  
  For example, we would want to ssh keys generated during first boot to
  *not* be included in the clonable image, that's obvious. But if the
  user boots the OLPC image, goes into the control panel and sets a
  language, then we *do* want that language change to be included in the
  clonable image that is the output of the process.
  
  How would the system differentiate between those two?

i dunno.  i guess the lead engineer on the project would have to
decide.  :-)

In my opinion, the simplest way to approach this is to add a
hard-reset script (perhaps named olpc-hard-reset) which cleans up
the image and then prints out a diff from the starting image to the
result for manual review.

Michael
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel