[Tizen Application-dev] OBS Light releases a solution to build locally your Tizen IVI image

Dominig ar Foll (Intel OTC) dominig.arfoll at fridu.net
Wed May 30 16:38:23 GMT 2012


Hello,


The OBS Light team http://wiki.meego.com/OBS_Light has just released the
Beta version off the OBSLight-fakeobs addon.
FakeOBS has been originally created by the MER project and we have
modified it for our needs. Our goal is to ease the import of a pre-boot
strapped full distribution such as MeeGo TV or Tizen IVI in a private
OBS instance.

What has been released
=======================
OBSLight-fakeobs enables to deliver pre-boot strapped complete OBS
project(s) as a simple tar file (might be big!) which can be added to an
OBSLight-server by a simple command.
The added new project(s) is accessible through obslight server via the
fakeobs project link.
Branching off any packages from the fake OBS in your local OBS is
possible and building against the added project is availble by a simple
click on an icon.

Note: As the tools to create the tar file are not yet well documented,
we have created a set of three projects tar file for easy import as a
demo. We have used the recently published Tizen IVI.
  Tizen_1.0_Base-1.0.tar.gz,  Tizen_1.0_IVI-1.0.tar.gz,
Tizen_1.0_Main-1.0.tar.gz

They can be found on test hosting http://tizen.fridu.net/ .That link
will likely be removed in few weeks.

Depending of your internet access speed expect 1 to 2 hours to complete
that Howto. In practice outside of the download time, 30mn should be
more than adequate.

For my appliance, I use Virtual box because it's easy to setup and
delivered as default on most distro. It should also work on other
virtualisation system (thanks to Suse Studio).

Howto
=====
Server side
-----------
The server can be a simple good developer desktop. It will need 8GB or
RAM (16GB is better, 4GB is only OK for an evaluation).

Install OBSLightServer appliance. It is preconfigured for MeeGo and Tizen.
 http://susestudio.com/a/e0uuBG/meego-obs

I advise you to allocate to the appliance 8GB and 4 CPUs if you want to
compile big packages such as Webkit, For smaller packages 4GB and 2 CPUs
will do (the more is the best).

Connect as root on the obslightserver appliance (default passwd is opensuse)

Install the obslight-fakeobs package
  zypper ar http://download.opensuse.org/repositories/devel\
:/languages:/python/openSUSE_11.4/devel:languages:python.repo
  zypper install obslight-fakeobs
  (following commands are needed due to a bug under correction)
  rcfake obsstatus  -> if status is non active after a reboot
                       insserv /etc/init.d/fakeobs
                       rcfakeobs restart

Download the Tizen project needed to work on IVI (Base->1.8GB,
Main->2.8GB, IVI->5.1GB)
  wget http://tizen.fridu.net/Tizen_1.0_Base-1.0.tar.gz;\
  wget http://tizen.fridu.net/Tizen_1.0_IVI-1.0.tar.gz;\
  http://tizen.fridu.net/Tizen_1.0_Main-1.0.tar.gz;\

Depending of your internet access performance, you may have a coffee or
a 4 courses lunch :-)

Create the link to the fakeobs in your obs appliance
  obslight-fakeobs createlink

Import your project and create an icon to build against it
  obslight-fakeobs import Tizen_1.0_Base-1.0.tar.gz "Tizen:1.0:Base"
  obslight-fakeobs import Tizen_1.0_Main-1.0.tar.gz "Tizen:1.0:Main"
  obslight-fakeobs import Tizen_1.0_IVI-1.0.tar.gz "Tizen:1.0:IVI"

Your obslightserver is now fully available

Client side
-----------
Install obslight (these 1st phases only use osc mic but many
dependencies issues are fixed in the obslight repo and we will use the
GUI in this HowTo :-)
   http://wiki.meego.com/OBS_Light_Installation
If you are a Mac or Windows user (or have a non supported distro) an
OBSLight appliance is also available.
   http://susestudio.com/a/e0uuBG/obs-light

Check which packages are available on your obslightserver appliance
  osc -A http://obslightserver:444 ls osc ls fakeobs:Tizen:1.0:Base
     (first time you will be asked your userID and passwd)
  osc -A http://obslightserver:444 ls osc ls fakeobs:Tizen:1.0:Main
  osc -A http://obslightserver:444 ls osc ls fakeobs:Tizen:1.0:IVI

Branch a package from the fakeobs downloaded projects
  Connect on the API of your OBS appliance which by default is at
    https://obslightserver:444
    Create one or more user(s)
  Connect on the WebUI of obslightserver
    https://obslightserver
    (next step is due to a 'special' obs feature)
      log as Admin (default passwd opensuse)
      create a home project to Admin
      logout
    Log in with your newly created user name
    Create your home page
    Create a subproject named "test" (from the top menu bar)
      (you will be moved in that new sub project)
    Select from the top menu the "Packages" actions
      Click "Branch Package from other project"
        Enter 'fakeobs':Tizen:1.0:Main as "Name of original project:"
        Enter 'sensor' as "Name of package in original project:"
          (note auto completion does not work very well,
           do not enter the "'"
           you can use osc to list existing packages)

Build your newly branched package
    Add a build target
       Click on "build target" (on the right of the screen)
       Select near the OBSLight icon (blue penguin)
           "Tizen 1.0 Main"
        Click on "Overview" menu item
           You see "package is building"
           After about 1mn click on the refresh build status
                                      (2 arrows in a circle)
           You see Succeeded:1

Create an image with Tizen and your branched package
    Download your kickstart file (.ks)
      (Note you cannot use groups on your live private repo)
    You have an ivi version without groups here
      http://tizen.fridu.net/kickstarts/tizen-ivi-min-pc.ks
      save it with a .ks extension
    Launch obslightgui
      Activate the "MIC Project" (2nd) tabulation
      Click on the button "New" on the bottom left
         Enter a name (e.g. Test)
         The new Mic project appears in the list of Mic projects
      Select the newly create project
         Activate the "Project Option" (1st) tabulation
         Import the kickstart file
      Activate the Repositories (3rd) tabulation
         Exclude sensor from both base and main repos
           Enter 'sensor' in the (9th) column "Excluded packages"
         Change the host name if needed.
         Retrieve the url of your local branch
           (from the WebUI)
           https://obslightserver/project/show?project=home%3AUSER%3Atest
           Select the menu "Overview"
           Click on "Tizen_1.0_Main"
           Click on "Go to download repository"
           Copy the URL
         (from the obslightgui-> Mic Project-> Repositories tab)
         Enter the copied URL
         Create an alias (e.g MyBranch)
      Activate the "Project Option" (1st) tabulation
         Click "Create Image"
           Click on view log to see progress
           (wait about 2mn)
         Click on "Open project directory"
           Check the status in the log file
      Export your image by tftp and nfs and run a test.

For further test on the same package you can run zypper directly from
the target after adding your test branch as an extra repo with a zypper
command.

Building on your local PC
-------------------------
Due to the change in the package structure from MeeGo to Tizen , the
direct work on packages from obslightgui present some problem (it is not
possible on Base), we will come back to this mailing list with a HowTo
as soon as a reliable model will have been found (I hope this week)



Known Limits and bugs
-----------------------------

 - the Python devel repo lust be added manually to the appliance
zypper ar http://download.opensuse.org/repositories/devel\
:/languages:/python/openSUSE_11.4/devel:languages:python.repo
 - after installation of the package obslight-fakeobs you still to
activate the service for reboot with the command
  insserv /etc/init.d/fakeobs; rcfakeobs restart
   (should be corrected soon and might have gone before that you test)
 - you cannot walk the available project pointed by the fakeobs link
project from the WebUI (that limit is there to stay for a while)
 - we do our test only with obslightserver appliance. It should work
with any OBS but that is out of our focus.
 - when creating a branch the project name auto completion is not
available you need to enter it (e.g. fakeobs:Tizen:1.0:Base)
 - when creating a branch the package name auto completion is not
reliable. You actually might need to enter the package name in total.
 - OBS Light GUI does not work yet with Tizen:Base (we work on it)

Feedback is welcomed. Our buzilla is here
 https://bugs.meego.com/buglist.cgi?product=Development%20Tools&component=OBS%20Light
<https://bugs.meego.com/buglist.cgi?product=Development%20Tools&component=OBS%20Light>


-- 
Dominig ar Foll
Senior Software Architect
Open Source Technology Centre
Intel SSG



More information about the Application-dev mailing list