Changes

Line 1: Line 1:  
== Summary ==
 
== Summary ==
   −
This is [[Harmonic_Distribution/Deployment|one of possible]] reference implementations of [[Harmonic Distribution]] based solutions. The goal is creating Sugar based downstream distribution to run on OLPC XO laptops.
+
This is [[Harmonic_Distribution/Deployment|one of possible]] reference implementations of [[Harmonic Distribution]] based solutions. The goal is creating Sugar based downstream distribution to run on OLPC XO laptops by end-users. Created reference implementation is intended to be a template for final deployment distribution.
 +
 
 +
== Overview ==
 +
 
 +
The task is creating XO image capable for further support.
 +
 
 +
Image will be composed using [http://wiki.laptop.org/go/OSBuilder olpc-os-builder] utility and will be populated with the following content:
 +
 
 +
'''System packages'''
 +
 
 +
:Package will be installed from the following sources:
 +
:* stock Fedora repositories,
 +
:* [http://mock.laptop.org/cgit/ stable OLPC repositories],
 +
:* one of [[Template:Sweets_Distribution_Linkbar|Sweets Distribution]] repositories (for now, available only [[Platform_Team/Sweets_Distribution/Factory|Factory]]),
 +
:* [[#Deployment_repository|deployment repository]] to keep packages specific only to particular deployment.
 +
 
 +
'''Initial Sugar Activities'''
 +
 
 +
:[[Harmonic Distribution]] based solution are based on [[Sugar Network]] when all Sugar Activities are accessible from local school server or Internet located one. But, it is useful to have some first-time activities already included to the image.
 +
: Activities will be downloaded from the Sugar Network and placed to {{Code|~/Activities}} directory in the image.
 +
 
 +
'''Deployment configuration'''
 +
 
 +
:This is how final systems will be initially configured and supported afterwards. All deployment configuration is placed to [[#Deployment_package|meta package]] in [[#Deployment_repository|deployment repository]]. This meta package contains dependencies and configuration files for all other packages needed to be installed on final systems. Further, if there is a need to change configuration on already installed systems, meta package will be updated and spread among users.
 +
 
 +
== Start new implementation ==
 +
 
 +
These are step-by-step instruction how to create new deployment distribution basing on this reference implementation.
 +
 
 +
=== Deployment repository ===
 +
 
 +
Make sure you have Fedora repository accessible from building host and end-users. If you are looking for building and hosting environment, try [[Platform_Team/Open_Build_System|packages.sugarlabs.org]] which is an instance of [http://www.open-build-service.org/ Open Build Service].
 +
 
 +
If you are using [[Platform_Team/Open_Build_System|packages.sugarlabs.org]], create new project and add Fedora-14 repository from [[Sweets Distribution]] project your implementation is based on. For example, there is [https://packages.sugarlabs.org/project/show?project=SweetsDistribution%3AFactory%3AReferenceXO reference project] based on [https://packages.sugarlabs.org/project/show?project=SweetsDistribution%3AFactory SweetsDistribution:Factory] repositories.
 +
 
 +
=== Deployment package ===
 +
 
 +
Use [http://git.sugarlabs.org/platform/reference-xo reference package] as a template. Copy its source and tune for local needs. Look for comments for better understanding.
 +
 
 +
Structure of reference package is:
 +
 
 +
* {{Code|etc/}}<br>These files will be copied as-is. Place here all configuration files you need to support afterwards.
 +
* {{Code|post/*.sh}}<br>These files will be executed right after installing package. Place here routines that can't be represent by configuration files.
 +
* {{Code|image/}}<br>olpc-os-builder files to [[#Create_images|create XO images]].
 +
* {{Code|Makefile}}<br>Handy makefile to create sources tarball.
 +
* {{Code|deployment.spec}}<br>RPM spec file to create package.
 +
 
 +
This is the only package that will be installed implicitly after including {{Code|sweets}} olpc-os-builder module. Thus, add to {{Code|deployment.spec}} all dependencies final systems require. Note that there is no need in installing Sugar Activities or its dependencies, these routines will be handled automatically after setting {{Code|offline_activities}} option in olpc-os-builder configuration file.
 +
 
 +
Put sources to the new git project and commit them.
 +
 
 +
To create package tarball, call the command:
 +
 
 +
make dist
 +
 
 +
If you are using [[Platform_Team/Open_Build_System|packages.sugarlabs.org]], call [http://en.opensuse.org/Build_Service/CLI osc] utility to upload newly create sources tarball and spec file to OBS.
 +
 
 +
=== Create images ===
 +
 
 +
First of all, [[Sweets_Distribution#Add_repository|attach]] proper [[Sweets Distribution]] repository and install {{Code|olpc-os-builder}} package from there. This package is different from upstream, it contains additional modules (see {{Code|image/*.ini}} files for details).
 +
 
 +
Then, go to {{Code|image/}} directory and call one the the following commands to create images:
 +
 
 +
olpc-os-builder --additional-defaults common.ini xo-1.ini
 +
olpc-os-builder --additional-defaults common.ini xo-1.5.ini
 +
 
 +
Consult olpc-os-builder's [http://wiki.laptop.org/go/OS_Builder home page] for more information.
 +
 
 +
=== Post-install support ===
 +
 
 +
Post installation supporting is all about update packages in [[#Deployment_repository|deployment repository]], e.g., update configuration in [[#Deployment_package|deployment package]], then, using one of [[Harmonic_Distribution/Deployment#Scenarios|deployment scenarios]], spread package updates among users.
    
== Try ==
 
== Try ==