好吧,这听起来像是包装食谱。基本上,每当启动板上的bzr分支发生更改时,包装配方都可以自动创建Ubuntu源软件包并将其上传到PPA。该在线文档是相当不错的,但我会给出几个例子...
首先,您指定要跟踪的分支(例如lp:gtk3
),然后添加命令以将您自己的Debian包装分支嵌套到该分支中。看看我为Inkscape的日常构建创建的食谱。
# bzr-builder format 0.4 deb-version 1:0.48+devel+{revno}+{revno:packaging}
lp:inkscape
nest packaging lp:~inkscape.dev/inkscape/debian-packaging debian
该配方每天使用最新的Inkscape上游资源创建一个Ubuntu软件包,但是将自定义的Debian打包说明从lp:~inkscape.dev/inkscape/debian-packaging
分支复制到名为“ debian
” 的子文件夹中。
Launchpad上的包装配方页面允许您指定自动将软件包上传到哪个PPA。在我们的情况下,将其上传到此处。
作为一种替代方法,您可以将配方基于现有的Ubuntu软件包,而不是直接基于上游源。例如,lp:ubuntu/gtk+3.0
。然后,您需要创建此代码的分支,并提交所需的任何修改。让我们把它叫做lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
,例如。然后,您将创建一个配方来自动合并您的更改,而不是嵌套包装说明。配方看起来像:
# bzr-builder format 0.4 deb-version {debversion}+{date}
lp:ubuntu/gtk+3.0
merge my-custom-build lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
因此,此配方会自动构建自定义的Ubuntu源程序包,并在官方Ubuntu程序包发生更改时将其上传到您的PPA。
如果采用这种“合并”方法,则有两个应用补丁的选项。您可以直接在分支中直接编辑上游源代码,然后让bzr进行合并,也可以debian/
使用quilt 在文件夹内创建补丁文件。每个都有其自身的优点/缺点。前一种方法更聪明...如果上游开发人员采用了您的补丁程序中的一种,则合并通常仍然有效,Ubuntu程序包也可以正常运行。后一种方法使您可以使用基于Debian的标准方法来处理补丁,该方法将打包代码与上游代码分开...但是,如果上游开发人员采用了您的补丁之一,则quilt将无法应用(重复)补丁程序,该软件包将无法构建。
lp:ubuntu/gtk+3.0
跟踪哪个gtk-3版本?当前稳定版本还是当前开发版本?