Project

General

Profile

Actions

Osmocom OBS

The Osmocom binary packages are built with OBS (Open Build Service) hosted on obs.osmocom.org. In order to do that, the jenkins jobs Osmocom_OBS_latest / _nightly (config) checkout the source repositories and build debian source packages, then upload these to OBS.

OBS has a hierarchical namespace of projects, of which we currently use
  • osmocom:* for official package repositories of osmocom, like the osmocom:latest and osmocom:nightly
  • home:* as a personal playground / staging area for developers

OBS access

Osmocom developers can register user accounts on OBS (sadly separate and not via redmine openID provider). This gives access to creating personal OBS projects, i.e. additional package feeds for development and testing

The osc command-line client

Many operations are easier when performed via the osc command-line client rather than the web UI of OBS.

In order to make osc access obs.osmocom.org instead of the default build.opensuse.org, you can specify the -A https://obs.osmocom.org command-line option. See the man pages for more details.

The osmocom:* projects

For more information on these builds, how they are created, see OBS_Maintenance.

All packages marked as publish in their configuration are rsync'ed over to https://downloads.sysmocom.de/packages

Write access to the osmocom: projects requires respective group membership, please contact laforge in case you need it.

The home:* projects

Every OBS user automatically gets their own home: project, for example if your user name was foo, your home project would be home:foo

You can build packages either directly in that home project, or you can create any number of sub-projects below, like home:foo:bar.

All packages marked as publish in their configuration are rsync'ed over to https://people.osmocom.org/packages/home%3A/

Build and publish your own (modified) packages

Sign up / sign in to obs.osmocom.org and create the "test" project under the "Home Project" link (right next to the "Logout" link on the OBS web interface), so that https://obs.osmocom.org/project/show/home:YourUser:test exists.

Then make sure to create whatever package you want (eg. "open5gs"). You can fork it from the existing related package under osmocom:nightly.
Next, under that package web UI, add build targets for the distributions you want to build for.

Make sure that you can indeed list the project using the 'osc' tool. That requires an osc config file. Easiest is to let osc create one:

$ osc -A https://obs.osmocom.org list home:YourUser:test

The config file usually ends up under /home/$USER/.config/osc/oscrc. It has a structure similar to this one:

[general]
apiurl = https://obs.osmocom.org

[https://obs.osmocom.org]
user=YourUser
pass=***********
credentials_mgr_class=osc.credentials.PlaintextConfigFileCredentialsManage

To checkout the repository and submit a new package version for build & publish, you can use the script under osmo-ci/scripts/obs/./update_obs_project.py.
Run it with "-d" to run it under docker so that you don't need to install multiple dependencies.

OSCRC=/home/$USER/.config/osc/oscrc ./update_obs_project.py -d -b your-branch home:YourUser:test open5gs

Where the "-b your-branch" specifies the git branch that will be checked out upon fetching the git repository.
The repository is cloned under "_cache/open5gs/". One can clone the repository manually, and/or modify the origin remote to point to a local development git repository in the same host.
Alternatively, before first clone, one can change the default URL of each repository, which is defined in osmo-ci/scripts/obs/lib/config.py "git_url_other".

Files (0)

Updated by pespin about 2 months ago · 4 revisions

Add picture from clipboard (Maximum size: 48.8 MB)