1

我是 Inkscape 的开发者之一。我们在我们的代码库中合并了一些修改过的各种免费库的块,我们真的希望以更可维护的方式处理我们的软件补丁。

我已经使用Quilt 补丁工具将补丁应用于 Debian 包中的上游代码,我们已经考虑在 Inkscape 的构建中使用它

IE,

  1. 使用 Quilt 修补所有相关的上游文件
  2. 编译源

这将允许我们维护上游库的原始副本和单独的补丁集,然后我们可以将其转发到上游。

我的问题是,除了 Debian 文档之外,我还没有找到任何关于如何在 Makefile 中巧妙地包含 Quilt 的示例。谁能给我指出一个这样做的项目?

我们目前使用 Automake,所以如果有一种优雅的方式可以在主构建之前运行“补丁”规则,那就太好了。

4

1 回答 1

1

我无法为您指出一个这样做的项目,但我之前已经通过创建一个新补丁(这将是最后一个补丁)为自己完成了这个工作,该补丁patched.txt在某个方便的位置创建了一个名为的文件。对于Makefile一个简单的项目,如下所示:

CXX = clang
LDFLAGS += -lstdc++
CXXFLAGS += -Wall -pedantic --std=c++11

all: patched.txt myprog

myprog: myprog.o helper.o

patched.txt: patches/series
    quilt push -a

clean:
    rm *.o barcode 
    quilt pop -a

您可能希望也可能不希望将其quilt pop -a作为clean目标的一部分。在其他项目中,我创建了一个单独的revert目标。我还没有将它合并到一个也使用 Autotools 的项目中,但它应该不会太难。

在我的例子中,它patched.txt是手动创建date >patched.txt的,因此很容易看到补丁集的日期。

于 2014-04-14T12:05:02.483 回答