Skip to content

Open Build Service

Karl W. Schulz edited this page May 11, 2018 · 8 revisions

OpenHPC utilizes a standalone instance of the Open Build Service (https://build.openhpc.community) for packaging and distribution. All of the main project collateral (e.g. code patches, package .spec files, documentation recipes, integration-tests, etc) are housed in git on OpenHPC's GitHub site. Most users/developers will only interact thru OBS via the web interface or indirectly through accessing package repositories published by OBS. However, if you are interested in standing up a separate instance of OBS for custom builds of OpenHPC packages, you may find it useful to access metadata specific to OpenHPC's OBS instance that is not in git (OBS uses its own built-in revision control system for such data). OBS provides a command line interface called osc that can be used to access this data. SLES users will find the osc package in the SDK repository, and CentOS users can install it thusly:

# yum install http://download.opensuse.org/repositories/openSUSE:/Tools/CentOS_7/noarch/osc-0.157.2-205.1.noarch.rpm

Once installed, osc can be used to checkout the OpenHPC OBS repository with no additional credentials required. To facilitate this, a configuration file is required (.oscrc) and a starting template can be generated locally by issuing the following command:

$ osc -A https://build.openhpc.community

When prompted for a username and password, enter nothing. Once completed, edit the .oscrc file to comment out the unneeded user and pass credentials (ie. no credentials are required for read access). After edit, the lines should look as follows:

#user= 
#pass= 

With this setup, you can now checkout projects from the OpenHPC OBS instance. The following highlights the command to checkout the OpenHPC:1.3:Factory which forms the basis for the 1.3 release.

$ osc co OpenHPC:1.3:Factory


OBS server-side patches

Note that OpenHPC relies on several patches applied to OBS. At present, these are applied against the 2.6 series of obs-server. If you plan to leverage .spec files from OpenHPC in your own private instance of OBS, you will want to apply the following patches:

  1. Dependency analysis: https://github.com/openhpc/ohpc/blob/master/misc/obs/patches/obs.includedeps.patch
  2. Fix build paths for RHEL7 to avoid /bin. This is necessary to avoid OBS pulling in false dependencies to soft-linked binaries (like /bin/perl) that are now owned by any RPMs. See https://github.com/openSUSE/obs-build/pull/380 for pull request to OBS for more details. Relevant patch is here.
Clone this wiki locally