This is the user manual of the command-line and graphical interface of OBS Light.
OBS Light is available via command line (obslight) and a graphical user interface GUI (obslightgui). Independently of that fact that you are using the command line or the GUI, you will get access to the same services.
We have created a set of video which will provide you a quick overview of how to start with OBS Light.
They cover :
http://www.dailymotion.com/playlist/x1t5ll_dominigarfoll_obs-light-training
OBS Light is a simplified model to develop code via an OBS. It does not replace your OBS.
To use OBS Light you will need a login access to an OBS. You have two simple methods to get a login on an OBS:
Once you have a login on an OBS instance, you will need to copy a project to play with. You can use the utilities obstag and obs2obscopy to achieve that in an easy way. See Obstag .
OBS Light needs to know on which server you will connect to. As OBS Light does more than the osc tool, more information will be needed. You will be asked the following :
Even if these information are copied in .osrcrc, they must be maintain via the OBS light command.
After the configuration of one or more OBS servers, you will be able to import a package to work on. You can also create an empty package would you like to.
OBS Light will create a local copy of that package on your workstation in a very similar way to what an osc checkout action would do. As osc, OBS Light transparently keeps track directly of the links between the packages and the associated OBS servers.
Once that you have loaded the packages, you can request the creation of a "chroot jail" (thereafter referred to as "filesystem" or "project filesystem"), where the packages can be built without interfering with the host's filesystem. The created filesystem is specific to the project and will not be recreated if it's already present. During the creation of the filesystem, extra packages imposed by the build dependencies will be loaded automatically. If you are connected on a remote OBS that phase can take some time and may require a bit of patience.
OBS Light tries to load automatically the dependencies from the analysis of the .spec file in the RPM but that is not always possible. The user has the possibility to add manually extra file and/or packages to the filesystem.
Packages can be imported either from a project already present in OBS Light or from any URL.
Once that the filesystem is created, the source from the package can be imported in the filesystem. During that process, OBS Light will load the extra package needed to build that specific imported source and will create a special git tree which will monitor any changes done by the user.
The user can directly open a window on the filesystem from OBS Light. The console program used by default can be defined in the OBS Light configuration file. From there direct modification of the code in the filesystem is possible and local build can be run as often as desired.
When the user is happy of his change, he can request the change from the filesystem to be committed directly in the package.
A patch will be created and added to the package and configured in the .spec file by OBS Light.
Once that changes on a given project (which can work on one or multiple packages) achieve a stage which is worth to push on the OBS server. The user can simply request to save the project and OBS Light will commit the changes automatically.
## synthax: obslight server add server_alias <server_alias> login <login> password <password> api_url <api_url> repository_url <repository_url> web_url <web_url>
## synthax: obslight obsproject add <project_alias> <name_on_obs> <target> <arch> <server_alias> obslight obsproject add MeeGo_1.2_oss MeeGo:1.2:oss standard i586 <server_alias>
## synthax: obslight package add package <package> project_alias <project_alias> obslight package add package kernel project_alias MeeGo_1.2_oss
## synthax: obslight filesystem create <project_alias> obslight filesystem create MeeGo_1.2_oss
## synthax: obslight rpmbuild prepare package <package> project_alias <project_alias> obslight rpmbuild prepare package kernel project_alias MeeGo_1.2_oss
## synthax: obslight filesystem enter package <package> project_alias <project_alias> obslight filesystem enter package kernel project_alias MeeGo_1.2_oss
Now you are logged in the chroot jail. In this example we just modify the kernel configuration.
$ cp configs/kernel-x86.config .config $ make menuconfig
There are two methods.
$ cp .config config-x86 $ exit
## synthax: obslight rpmbuild createpatch <patch> package <package> project_alias <project_alias> obslight rpmbuild createpatch myKernelPatch.patch package kernel project_alias MeeGo_1.2_oss
vi ~/OBSLight/MeeGo_1.2_oss/MeeGo:1.2:oss/kernel/kernel.spec
$ cp .config /chrootTransfert/config-x86 $ exit cp ~/OBSLight/ObsProjects/MeeGo_1.2_oss/chrootTransfert/config-x86 ~/OBSLight/ObsProjects/MeeGo_1.2_oss/MeeGo:1.2:oss/kernel/
## synthax: obslight package commit <message> package <package> project_alias <project_alias> obslight package commit "Patch kernel" package kernel project_alias MeeGo_1.2_oss
The help is integrated in the tool. obslight help will give you an online help.
To get more detail on a specific command you can type obslight <command> help.
$ obslight help
OBSlight:
Provides a tool to manage an OBS project on your local machine in command line
For informations, see the Help section
obslight --Help
The gui for OBSlight is obslightgui
A FAQ is available at:
*http://wiki.meego.com/OBS_Light_FAQ
For additional informations, see:
*http://wiki.meego.com/OBS_Light
Usage: OBSlight [global command] <command> [--command-options]
Type OBSlight <command> --Help to get Help on a specific command.
Commands:
server: Manage the OBS server
obsproject: Manage the OBSlight project
package: Manage the packages of OBSlight project
projectfilesystem (projectfs,filesystem,pfs) :
Manage the project filesystem of OBSlight project
rpmbuild (rb) : Manage the rpmbuild of the package into the project filesystem
man: print the man help document
global Options:
quiet (-quiet,--quiet) : run obslight in quiet mode
debug (-debug,--debug) : run obslight in debugger mode
version (--version) : show program's version number and exit
help (-h,-help,--help) : show this help message and exit
noaction: Execute command but do nothing
The GUI is launched via the command obslightgui. Only the parameter --version is supported.
It has two main tabs: one for OBS projects, one for MIC projects
The buttons in each section apply to the relative section. They display a tool-tip when the mouse is positioned on them. Button are grayed when there are not active or not yet implemented.
This tab allows you to manage an OBS project, its packages (and their files) and its filesystem.
It has 3 main areas:
The panel on the left displays the list of OBS projects locally configured, and information about the selected project.
|
|
The panel on the middle displays the list of packages of the selected project, and information about the selected package.
|
|
|
The file panel has two tabs: Local directory and Project filesystem.
This tab shows the list of files contained in the selected package.
| |
| File-related buttons | Patch-related buttons |
|
|
This tab shows the complete file tree of selected project's filesystem. If a package is selected and it has previously been imported into the filesystem, its path is expanded by default.
| ||
| Repository-related buttons | Filesystem-related buttons | Rpmbuild-related buttons |
|
|
|
This tab allows you to manage a MIC (MeeGo Image Creator) project. You can change its architecture and image type, and edit its Kickstart file.
On the left panel you can see a list of MIC projects. Click New to add one, you will be asked for a name, and an empty Kickstart file will be created.
In this tab you can:
In this tab you can add, delete or modify the different options of the project's Kickstart file. These options are documented here.
Notice that some options may have aliases, which will appear on the same line in the option list. The repo option will not be listed here, but in the Repositories tab.
In this tab, you can add, delete, or modify Kickstart repositories.
The changes are automatically saved.
Here you can edit the package list of the project's Kickstart file. Notice that multiple %package sections of original Kickstart file have been merged into one.
Each package has an Included parameter which tells if it should be included in the generated image. If Included is not checked, the package will be explicitly excluded in the Kickstart file (its name will be prefixed with '-').
Here you can edit the list of package groups of the project's Kickstart file. At the moment, no verification is done on package groups.
Here you can add, delete or modify Kickstart scripts.
Here you can add files that will be included in the project image.
Implementation details:
These message may appear in two situations:
First add our repository to your filesystem's zypper configuration file:
obslight filesystem repositories add http://repo.pub.meego.com/Project:/OBS_Light:/Zypper/MeeGo_1.2_OSS/ "Zypper_1.6.15_backport" $ProjectName
Then chroot in the filesystem and update zypper:
obslight filesystem enter $ProjectName $ zypper update zypper $ exit
# zypper update zypper # exit
The build package of your project filesystem does not support armv8el builds. Consider using another version, like the 2011.03.29 of MeeGo's repositories.
First add the MeeGo building tools repository to your project filesystem's zypper configuration file:
obslight filesystem repositories add http://download.meego.com/live/Tools:/Building/MeeGo_1.2.0/ "Tools:Building_MeeGo_1.2.0" $ProjectName
Then chroot in the filesystem and update build:
obslight filesystem enter $ProjectName # zypper update build # exit
This appears when binfmt_misc is not or badly configured. Launch qemu's binfmt configuration script (as root):
qemu-binfmt-conf.sh
If you still get the same message, try this (as root):
echo -1 > /proc/sys/fs/binfmt_misc/arm echo ":arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:`which qemu-arm`:" > /proc/sys/fs/binfmt_misc/register
This error appears on Ubuntu when running obslight from a console, without a graphical environment. At the moment, the only known solution is to run obslight only from a graphical environment (e.g. Gnome).