在哪里可以找到有关软件包补丁的详细信息和原因?

在哪里可以找到有关软件包补丁的详细信息和原因?

我正在尝试构建一个包,但在构建过程中遇到了问题。如果文件以 .tcl 扩展名命名(Tcl 文件的正常扩展名),则 doxygen 无法通过 Tcl 文件运行我的过滤器脚本。如果扩展名是其他名称,例如 .src,则过滤器将按预期运行。我对明确为源的库或帮助程序文件使用 .tcl,对不是源的“主”程序使用 .src。(是的,我在 Doxyfiles 中拥有正确的文件名模式等 - 我的整个包在 CentOS 5 和 CentOS 6 下构建得很好,在 CentOS 5 下,我甚至使用我构建的 doxygen 1.7.4(基本上是未打补丁的版本)的 RPM。当我手动构建 doxygen 时没有Ubuntu/Debian 补丁在 Ubuntu 12.04.1 下也能正常工作。已安装版本无法正常工作。我认为其中一个(或多个?)补丁破坏了 doxygen 中的某些功能。变更日志没有太多启发性。

明天我将创建一个简单的包来说明这个问题。

答案1

首先,的精确默认版本doxygen1.7.6.1-2ubuntu1,如Ubuntu 软件包,所以我不确定你为什么提到 1.7.4-3,因为那是 11.10Oneiric 默认版本。我应该检查您是否真的在使用 Precise,或者是否已正确升级。

您使用的版本仍已doxygen_direct_dot_run.diff应用补丁,而 Precise 的实际版本 (1.7.6.1-2ubuntu1) 未应用该补丁。因此,使用真正的 Precise 版本可能会解决一些问题,因为它也有其他补丁。目前没有任何错误描述您的问题发射台,因此它可能是一个新的。

更一般地说,补丁和变更日志

当你下载源代码(apt-get source doxygen)时,你可以看到应用了哪些补丁(针对 Precise 中的 doxygen):

dpkg-source: info: applying manpages.diff
dpkg-source: info: applying dot-config.diff
dpkg-source: info: applying gcc-g.diff
dpkg-source: info: applying doxygen-jquery.patch

然而,您还可以下载未应用补丁或未解压软件包的程序源代码:

apt-get source doxygen --download-only

(如果您愿意的话,可以构建软件包并省略一些补丁。)

如果您已使用--download-only开关,apt-get source您将获得 2 个包和一个签名文件。您可以解压doxygen_1.7.6.1-2ubuntu1.debian.tar.gz以查看补丁、更改日志和规则(实际上并非补丁文件夹中的所有补丁都会被使用)。

变更日志将包含对补丁的引用,并且始终包含错误的 Debian(#number)或 Launchpad(LP:#number),并且可以在相应的错误跟踪器上进行搜索。这是比在非常简短的变更日志中查找有关补丁的更多信息的最佳方式。

来自 doxygen 源变更日志的示例:

不要应用 doxygen_direct_dot_run.diff。关闭:#618125。

现在 #618125 是 Debian 票证,因此您可以通过编号搜索错误德比安并了解更多详细信息。

添加多架构元数据以满足交叉依赖关系(LP:#971739)

同样,要查找更多信息,您可以在以下位置搜索此错误发射台输入数字。

更一般地,你也可以去补丁网站

这些补丁每天生成,包含 Ubuntu 源包和 Debian 中相同源的等效版本之间的差异。

除了在 bug 线程本身、论坛或 irc 频道上的讨论之外,这些调查途径几乎是您可以用来了解补丁原理的最大途径。

答案2

好的,问题不是 Ubuntu,而是 doxygen 本身。看来 doxygen 1.7.6.1 有问题,因为它不遵守名为 *.tcl 的文件的筛选器设置,而是继续使用自己的内部解析器,这对我的评论不起作用,因为它们是用我的考虑到过滤器,这些是在 doxygen 有任何处理 Tcl 源代码的想法之前编写的。我将不得不降级我的 Ubuntu 构建框上的 doxygen 版本,并去打扰 Doxygen 人员解决这个问题。

相关内容