SDB:上游追踪器

跳转到:导航搜索
发行版通常有一些机制来跟踪上游更新,例如 Debian 的 watch 文件。但当前工具都仅限于特定发行版,并且存在其他障碍。上游追踪器是 openSUSE 的 2012 年 GSoC 项目,由 @nbprashanth 在 @vuntz 的指导下开发。它的目标是基于现有的 openSUSE 工具(如 开放构建服务)创建一个复杂的后端系统。

用法(当前)

将您的软件包提交到追踪器

Fork 我

编辑 server/upstream/upstream-tarballs.txt

语法如下

name:method:info
  • name,是上游 tarball 的名称,如果方法是 svn/lp/trac,可以是 "branch",例如:fcitx|4.x
  • method,实际上是上游所在的位置,现在支持
upstream;ftpls;httpls;dualhttpls;subdirhttpls;svnls;sf;google;lp;trac 

info 是位置参数。例如

  1. 您的软件包是 fcitx-pinyin,上游位于 http://code.google.com/p/fcitx。您需要使用
fcitx-pinyin:google:fcitx|fcitx-pinyin

fcitx|fcitx-pinyin 是 "info" 参数,"fcitx" 表示其位置是 http://code.google.com/p/fcitx,“|fcitx-pinyin” 表示您要监控的 tarball 前缀为 fcitx-pinyin,而不是默认项目名称 "fcitx"。

  1. 您的软件包是 presage,上游位于 http://presage.sourceforge.net。现在您需要使用浏览器访问 http://sourceforge.net/api/project/name/presage/json,返回的是
{"Project":{
   "name":"Presage",
   "created":"Jul 22, 2006",
   "created_timestamp":1153587912,
   "id":172950,

记住该 id,并将其写入 .txt 文件

presage:sf:172950|presage

172950|presage 表示您要监控 http://presage.sourceforge.net 地址下的 presage 目录,因为那里有三个目录:presage,presage-extra,soothsayer。如果只有一个目录,您可以省略管道。

sourceforge.jp 和 sourceforge.net 是同一个品牌,但它们的 ID 不兼容。例如:anthy 在 .jp 上实际上是 anthy:sf_jp:14|anthy,这在 .net 上根本不存在。

info 参数的详细信息请参见附录或 upstream_tarballs.txt 中的注释。

编辑 server/upstream/upstream-packages-match.txt

我们在这里将 tarball 名称与软件包名称匹配。默认情况下,您只需要

fcitx:

将软件包名称留空。这意味着它们名称相同。在某些情况下,例如:您的软件包名称为 libjs185-1_0,但下载的 tarball 实际上是 js185-1.0.0.tar.gz,那么您需要将上一个 upstream-tarballs.txt 中的 "name" 更改为 js185,并在这里

js185:libjs185-1_0

进行匹配。

编辑 server/upstream/upstream-limits.txt

我们在这里过滤特定的版本,例如快照软件包。

  • 对于采用 x.y.z 版本方案命名的某些软件包,当 y 为奇数时,表示不稳定,我们可以这样过滤它们
fcitx:no-odd-unstable
  • 限制最大版本
fcitx:max|4.2.6
  • 跳过某些版本
fcitx:skip|4.2.4.1;4.2.6.1;

提交

git commit -m "$Your_ChangeLog" && git push 

并在 gitorous 上打开合并请求。当 MR 被接受后,一段时间后,您可以从 OBS 项目的“高级” - “状态”中检查新的上游版本。然后您可以使用许多在线解析器让您自己通过电子邮件接收通知。也许未来会有 hermes.o.o。

参考

附录:方法说明

方法 信息
upstream openSUSE 是上游,因此没有 info
ftpls ftp 目录 URL
httpls “真实” http URL,也就是说,列出的 tarball 可以直接下载,无需重定向。
dualhttpls 双 http URL,用管道 “|” 分隔。
subdirhttpls 如果下载页面上有带有版本号的目录,例如 0.1.0。只需使用下载页面 URL。
svnls 上游具有 svn 监控端口 80,并且 svn 中有可下载的 tarball。很少见。
sf 项目 ID。请参见上面的示例。
google 上游托管在 code.google.com/p/name 上。Info 是 c.g.c 项目名称。您可以使用管道指定真实的 tarball 名称。
lp lp 项目名称
trac trac 下载页面