将补丁应用于 buildroot 目录之外的包

Applying patch to a package outside of buildroot directory

我正在尝试将补丁应用于不在 buildroot/package 内但在其他地方的软件包。

我已将以下内容添加到我的 buildroot .config 中

BR2_GLOBAL_PATCH_DIR="absolute/path/to/folder"

文件夹正确,因为如果路径不正确,buildroot 会出错。所以目录的路径就好了。

使用说明 here and here。我添加了一个名称与包匹配的子目录,并将补丁添加到该子目录,但没有任何反应。

Buildroot 从不输出它正在尝试应用补丁,这让我相信 buildroot 甚至没有查看 BR2_GLOBAL_PATCH_DIR 或调用 buildroot/support/scripts/ 中的 apply-patches.sh

为什么 buildroot 不尝试将补丁应用到我的包中?

Buildroot 仅将补丁应用到下载了源代码的包。换句话说,它不会将补丁应用到使用 FOO_SITE_METHOD = localFOO_OVERRIDE_SRCDIR = /path/to/foo.

在本地获取的包

如果您看到这样的输出:

>>> foo custom Syncing from source dir /path/to/foo

你就是这种情况。

-编辑-

Buildroot 不支持在这种情况下应用补丁。但是,您可以通过以下方式解决它:

define FOO_APPLY_PATCHES
        $(APPLY_PATCHES) $(@D) $(addsuffix /$(RAWNAME),$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) \*.patch
endef
FOO_POST_RSYNC_HOOKS += FOO_APPLY_PATCHES