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 == |