配置文件

2 Profile导向风格的配置

本节提供在GBS的配置文件中有关profile导向样式的信息。

2.1 基本结构

一个配置文件的基本结构是属性和区段组成。

2.1.1 属性

包含在一个配置文件中的基本要素是属性。 每个属性都有一个名称和一个值,以等号(=)分隔。 名称出现在等号的左边。

2.1.2 区段

根据第2.2节规定的命名习惯,属性可以被分组成为不同的区段。 区段名称出现在方括号中的一行([ ]). 所有区段声明后的属性与该区段联系在一起。 需要不明确的“区段结束”定界符。 区段结束于下一节声明或该文件的末尾。 可能的区段包括:

  • 常规区段

    常规区段定义了默认profile,它在一个一般的基础上对GBS的行为产生影响。 也就是说,因常规区段的修改,所有的GBS的行为也将随之改变。

    支持的属性包括以下内容:

    • tmpdir
    • upstream_branch
    • upstreamtag
    • buildroot
    • packaging_dir
  • Profile区段

    建议您在profile层次设置通用的验证信息,而不是重复地在各个区段里设置验证信息。 这些设置会被自动传递到OBS和仓库区段。

    只有当验证信息对对应的OBS或仓储库是唯一的,才添加身份验证信息到特定的存储库或OBS的区段。 此外,多个profile区段可以在一个配置文件存在,在一个主要的配置文件可以使GBS行为针对不同设备进行操作(例如,移动电话,IVI)。 欲了解更多信息,请参见第3.2节。

    支持的属性包括以下内容:

    • user

    • passwd

    • repos

    • obs

    • buildconf

      构建gbs build的配置来构建所有profiles

    • exclude_packages

      不参与构建的软件包列表。 该属性也可以被用来打破依赖循环。

  • OBS 区段

    OBS区段指定远程构建服务器的配置,用来进行远程构建。 支持的属性包括URL,用户和密码。

  • 存储库区段

    与profile区段一起,多存储库的区段可以在一个配置文件中存在,因此,不同的存储库可以被“批处理”地操作。 支持的属性包括URL,用户和密码。 如果相应的库中并不需要验证信息,用户名和密码可以省略。

2.2 命名约定

本节名称必须遵循这些命名约定:

  • 常规部分的命名精确为“[general]".
  • 以"profile."开始profile区段的命名。 例如,[profile.tizen],[profile.IVI]。
  • 以“OBS”开始OBS区段的命名。 例如,[obs.tizen]。
  • 以"repo."开始存储库的命名。

下面是配置文件的例子:

[general]
#Current profile name which should match a profile section name
tmpdir = /var/tmp
editor =
packaging_branch = master
upstream_branch = upstream
upstream_tag = upstream/${upstreamversion}
packaging_dir = packaging
profile = profile.tizen
buildroot = ~/GBS-ROOT/
work_dir = .
 
[profile.tizen]
obs = obs.tizen
repos = repo.tizen_latest
# If no buildroot for profile, the buildroot in general section will be used
buildroot = ~/GBS-ROOT-profile.tizen/
# Specify build conf for a specific profile by using shell-style variable references
buildconf = ${work_dir}/tizen-conf/build.conf
# Specify a list of packages that don't participate in the building, which
# can also be used to break dependency circle.
exclude_packages=filesystem,aul,libmm-sound,libtool
 
# Common authentication information
user = xxxxx
passwd = xxxxxx
 
[obs.tizen]
url = https://api.tizen.org
user = xxxx
passwd = xxxx
# set default base_prj for this obs
#base_prj=Tizen:Main
# set default target prj for this obs, default is home:<user>:gbs:<base_prj>
#target_prj=<specify target project>
 
[repo.tizen_latest]
url = http://download.tizen.org/releases/trunk/daily/ivi/latest/
#Optional user and password, set if differ from profile's user and password
#user =
#passwd =

3 配置规范

本节提供有关配置规格信息。

3.1 配置通用属性

典型的共同特性包括buildroot,user和password。 覆盖默认值“〜/ GBS-ROOT”配置buildroot,使用此分配公式:

buildroot=<New_Build_Root>

我们需要配置“passwd”属性是因为在运行GBS后密码行将自动转换为一个已编码的版本,如本例所示:

passwdx = QlpoOTFBWSZTWVyCeo8AAAKIAHJAIAAhhoGaAlNOLuSKcKEguQT1

要重设密码,删除上述的“passwdx”行,并添加此分配公式:

passwd=<New_Password>

3.2 配置多个配置文件

通过添加多个配置文件,旨在在一个配置文件中配置各种设备,面向各种设备的GBS行为可以通过一个中央配置文件进行操作。 下面是配置多个profiles的一个例子:

[general]
profile = profile.ivi
 
[profile.mobile]
...
[profile.ivi]
...

当使用P(--profile)选项指定profile部分,GBS会应用指定的profile配置。 这里是指定多个profiles之间一个配置文件的例子:

$ gbs build --profile=profile.mobile -A i586
$ gbs remotebuild --profile=mobile

3.3 配置存储库

本节将介绍如何配置存储库,以适应GBS构建。 存储库配置规范开始于一个名为"[repo.<customized_name>]"的区段声明,后面带有以下一些属性:

  • url

    url属性指定远程存储库的URL,或者本地或远程存储库的完整路径。 即支持下列两种类型的远程存储库:

    :为了保证GBS构建的质量,release文件夹必须使用,而不是snapshot文件夹。

  • user

  • passwd

这里的存储库配置规范的示例:

[repo.tizen_latest]
url = http://download.tizen.org/releases/trunk/daily/ivi/latest/
user = xxx
passwd = xxx
[repo.my_local]
#local repo must be an absolute path
url = <Full_Path_of_Local_Repository>

3.4 shell风格的变量引用

定义属性 [general] 区段可以通过使用GBS 0.17及更高版本的shell风格的变量引用直接用在其他区段。

如下所示:

[general]
tmpdir=/var/tmp
work_dir=~/test
[profile.tizen]
buildconf=${work_dir}/tizen.conf
buildroot=${tmpdir}/profile.tizen/