openSUSE:构建服务概念应用目录

跳转到:导航搜索

应用程序目录集成接口

为了吸引项目在构建服务中构建,我们实现了一个接口,该接口根据一个项目名称和软件包列表返回二进制软件包的路径。

使用场景是邀请应用程序目录系统,例如 http://kde-apps.org,为他们的用户(在本例中,用户是上游维护目录条目的人员)提供以下服务:如果他们在OBS中构建二进制软件包,目录应用程序将获取OBS项目和软件包名称。然后,目录应用程序使用OBS的集成接口,并使用这两个参数获取软件包的可用二进制软件包列表,请参阅下面的示例结构。目录应用程序可以为用户呈现一个漂亮的下载框,以便从OBS中为他们的系统选择rpm软件包。

为了使目录应用程序更加方便,还提供了有关可用发行版的详细信息。它包含一些描述、名称和图像,目录应用程序可以使用这些信息。它完全独立于软件包信息,以便可重用。

发行版信息

调用OBS API

GET /public/distributions

返回一个XML文档,如下所示

 <distributions>
   <distribution id="opensuse-11.0" vendor="opensuse" version="11.0">
     <name>openSUSE 11.0</name>
     <project>openSUSE:11.0</project>
     <repository>standard</repository>
     <reponame>openSUSE_11.0</reponame>
     <icon width="8" height="8" url="os11logo8.png"/>
     <icon width="16" height="16" url="os11logo16.png"/>
     <link>https://opensuse.net.cn</link>
   </distribution>
   <distribution id="opensuse-10.3" vendor="opensuse" version="10.3">
     <name>openSUSE 10.3</name>
     <project>openSUSE:10.3</project>
     <reponame>openSUSE_10.3</reponame>
     <repository>standard</repository>
     <icon width="8" height="8" url="os10logo8.png"/>
     <icon width="16" height="16" url="os10logo16.png"/>
     <link>https://opensuse.net.cn</link>
   </distribution>
   <distribution id="fedora-9" vendor="fedora" version="9">
     <name>Fedora 9</name>
     <project>Fedora:9</project>
     <reponame>Fedora_9</reponame>
     <repository>standard</repository>
     <icon width="8" height="8" url="fed9logo8.png"/>
     <icon width="16" height="16" url="fed9logo16.png"/>
     <link>http://www.fedoraproject.org</link>
   </distribution>
 </distributions>

其中包含有关发行版的一些有趣信息。

此文件没有合适的更新机制。应用程序目录应用程序应每天获取此文件,或者在软件包信息块中出现未知ID时获取(当然,这不包括现有条目的更改)。


二进制软件包信息

可以通过以下调用获取从OBS中的源软件包构建的现有二进制软件包的信息

GET /public/binary_packages/openSUSE:Tools/osc

这将产生一个如下所示的xml文档


 <package package="osc" project="openSUSE:Tools">
   <title>openSUSE (build service) commander</title>
   <description>Commandline client for the openSUSE build service.</description>
   <binaries>
     <list distribution="fedora-11">
       <repository url="http://download.opensuse.org/repositories/openSUSE:/Tools/Fedora_11/openSUSE:Tools.repo"/>
       <rpm arch="i386" url="http://download.opensuse.org/repositories/openSUSE:/Tools/Fedora_11/i386/osc-0.123-18.1.i386.rpm"/>
       <rpm arch="x86_64" url="http://download.opensuse.org/repositories/openSUSE:/Tools/Fedora_11/x86_64/osc-0.123-18.1.x86_64.rpm"/>
     </list>
     <list distribution="ubuntu-9.04">
       <repository url="http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_9.04/"/>
       <deb arch="amd64" url="http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_9.04/amd64/osc_0.117-1_amd64.deb"/>
       <deb arch="i386" url="http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_9.04/i386/osc_0.117-1_i386.deb"/>
     </list>
     <list distribution="opensuse-Factory">
       <ymp url="https://software.opensuse.net.cn/ymp/openSUSE:/Tools/openSUSE_Factory/osc.ymp"/>
       <repository url="http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_Factory/openSUSE:Tools.repo"/>
       <rpm arch="noarch" url="http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_Factory/noarch/osc-0.122-14.2.noarch.rpm"/>
       <rpm arch="noarch" url="http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_Factory/noarch/osc-0.122-14.1.noarch.rpm"/>
     </list>
   </binaries>
 </package>


对于每个可用的发行版,xml都包含一个或多个元素的列表。返回的链接的类型和数量取决于发行版

  • 所有发行版

返回一个或多个rpm或deb元素,每个可用架构和子软件包对应一个。此外,还返回一个包含存储库URL的存储库元素。

  • 所有openSUSE发行版

如果软件包名称与其中一个二进制rpm匹配,则我们提供一个<ymp>元素。