Answers:
从bzr分支构建更新的程序包通常会有相当大的差异,具体取决于谁维护分支或程序包通常如何工作。但是,这里有一些准则,可用于将任何软件包的快速,肮脏的更新推送到PPA:
获取分支:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head
然后切换到它,并更新变更日志:
dch -i
dch -i会简单地在debian / changelog中打开一个新条目,将版本修订增加一。如果要添加补丁,那是完美的,但是如果要更新到上游软件的新版本,则需要在破折号(-)之前更新版本号。假设是1.2-0ubuntu1中的版本,如果您启动dch -i,它将更改为1.2-0ubuntu2,这对修补很有用,但是如果您需要新版本,则可能需要将其更改为1.3-0ubuntu1。
如果需要打补丁,现在是时候添加更改了。在只有debian /目录的分支中,可以使用bzr bd-do(需要bzr-builddeb软件包)切换到可以进行更改的工作树,使用被子或任何修补程序系统,然后“退出0”以将您的更改复制回去。
如果您想要一个新的上游版本,则更改日志后,您可能会运行类似于以下命令:
debian/rules get-orig-source
通常,这将从上游发行商那里下载正确的tarball,以帮助您入门。如果需要进一步更改,请按照上述步骤进行“修补”或更改debian /目录中的其他文件,否则,您差不多完成了:
bzr bd -S
bzr bd将负责建筑。不带任何参数的调用开始在您的系统上构建,而使用-S调用则告诉它准备一个源包,其中将包含一个..._ source.changes文件,这是您要上传到PPA的文件(使用dput ppa:<您的名称> / <您的ppa名称> <更改文件>来执行此操作)。
对于NetworkManager软件包,则有所不同。让我们具体看一下openconnect:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect
确保您还具有所有构建依赖项:sudo get-build-deps
检索到分支后,它将读取debian / control文件并尝试下载构建network-manager-openconnect所需的所有内容。您可能也需要git。完成后,运行get-orig-source从git中获取最新快照的压缩包:
debian/rules get-orig-source
您会看到文本飞过,并出现带有长版本号的压缩包。那是您可以获得nm-openconnect的最新代码。
然后,您需要使用tarball中的版本号更新changelog,只需保持-0ubuntu1后缀完整即可。
或者,将debian / changelog更改为所需的特定版本号,然后运行:debian / rules get-current-source
由于插件变化不大,因此您应该能够使用上述bzr bd从那里构建软件包。如果没有,请进行上述必要的任何更改。
进行更改后,不要忘记进行bzr提交。
当您所做的更改可以使其他人受益时,我首先忘记添加,不要犹豫使用合并提议系统(提议合并链接LP上分支机构的页面)。通常,您可以只建议与您所基于的分支合并(例如,在本例中为lp:〜network-manager / network-manager / openconnect-ubuntu.head)。
确定更新了如何从启动板中提取代码
bzr分支lp:〜network-manager / network-manager / openconnect-ubuntu.head
这个剂量是从lp(启动板托管服务)中提取代码的。我们需要找到代码所在的位置。
man bzr
343 #type 343,随即出现手册页。
bzr branch FROM_LOCATION [TO_LOCATION]
If the TO_LOCATION is omitted, the last component of the FROM_LOCATION
will be used. In other words, "branch ../foo/bar" will attempt to cre‐
ate ./bar. If the FROM_LOCATION has no / or path separator embedded,
the TO_LOCATION is derived from the FROM_LOCATION by stripping a lead‐
ing scheme or drive identifier, if any. For example, "branch
lp:foo-bar" will attempt to create ./foo-bar.
尝试更改为您要使用的目录,或添加目录以及您要访问的代码。
cd / home / [您的用户名] / [开发目录的路径]
或bzr分支lp:〜network-manager / network-manager / openconnect-ubuntu.head / home / [您的用户名] / [开发目录的路径]
例如bzr分支lp:〜network-manager / network-manager / openconnect-ubuntu.head / home / joe / projects / network-manger / dev
如果您已经完成此操作,则可能在主目录中有一个目录
LS〜
./openconnect-ubuntu.head
该目录中应该有一个README字段,以查看项目代码,这是README.source的链接
自述文件应具有有关构建该单个项目的说明。
其他有用的bzr工具安装
sudo apt-get install bzr-builddeb bzr-builder bzr-explorer被子
通过bzr-explorere,您可以在gui中浏览在计算机上创建的bzr存储库。
另一个说明。您可能需要提取整个网络危险源才能构建一个组件openconnect。在不同组件之间可能存在许多依赖关系。
您需要为当前opneconnect软件包创建一个修复程序,然后使用您使用的每个diff工具创建补丁。并将其发送给软件包维护者。
或者,如果您想在本地使用新的修复程序包,则要创建一个.deb程序包文件。
创建一个包非常复杂,请阅读以下链接