This repository contains scripts used during repository management as well as documentation of the adaptation development.
The idea behind this scripts is to build drod-hal and related packages on the obs and thus in a clean reproduceable way.
However the target obs might not be powerful enough to build such packages that need droid-src (Android sources) to build.
These scripts workaround such issues. Each section explains each type of scripts to avoid such issues.
The idea behind these scripts is to build expensive packags such as droid-hal on a powerful host machine using osc and obs-build.
After doing so then upload such packages in the real project on the target obs.
First we have our obs project structure:
- <path-project>:$vendor:$device
- This is the real project that contains all packages we build locally and all the packages that can be build on the obs.
- <path-project>:$vendor:$device:dhd
- The project that only contains the packages which are build locally and then uploaded to <path-project>:$vendor:$device/
The process behind it works like this:
- First build droid-src, move the package to the package cache.
- Build droid-hal from project:dhd then upload the resulting rpm to project.
obs_local_build_dhd_droid_src can be used to build droid-src and move it to the cache without specifying the package name.
obs_localbuild and obs_localbuild_dhd do this the same way except that obs_localbuild_dhd the shadow :dhd project into account.
If your target obs can’t set the project configuration from prjconf packages then droid-prjconf-sync can build the prjconf package and write the changes by hand.
For some of our scripts we require HADK-Tools and the platform SDK to be setup.
To setup install hadk-tools into your local $HOME/.local
folder by running
make install PREFIX=$HOME/.local
from the hadk_tools folder.
After doing so follow this document till the end.
Build droid-system using local build environment that has been setup.
Requires that the local Android source env has been setup either manually or using hadk_source.
After the Android environment has been setup just call it with your obs project passed as -P and -t to tell the script where you HADK templates are.
Create install images for each device supported by the OBS project that is passed as -P and -t to tell the script where you HADK templates are. Also you to pass your obs project stores your ssu configuration as -S and the package that pulls in such configs as -E.
git
- For tar_git and droid-prjconf-sync
rpm
rpmspec
to parse the spec files we buildosc
- To talk to the obs and upload packages
obs-build
- To do local obs-builds
obs-service-tar_git
- To obs tar_git service to fetch package sources
obs-service-repo
- To fetch package sources that use git-repo manifests like in droid-src.
hadk_tools
and Platform SDK- To build droid-system
These scripts require some variables present in the OBS project configuration in addition to the usual content.
Each of those are defined by using %define var content
as explained in
openSUSE:Build Service prjconf#Macros.
- device
- Set as the vendor of the device and the device family as <vendor>-<family>. Set by droid-prjconf-sync if used.
- supported_devices
- All devices supported by the project listed in their variant names.
These should be set as “first second” and so on.
One example for e.g. the Xperia 1/5 would be
%define supported_devices "j8110 j9110 j8210 j9210\"
.