我试图包含我的自定义 helloword 补丁来构建 root。
在
make menuconfig
我添加了全局补丁目录/home/Downloads/buildroot/buildroot-2017.11/patches
然后我将我的补丁文件放在下面的目录中
(/home/Downloads/buildroot/buildroot-2017.11/patches/packagename/version/patch).
在 make 命令之后,补丁没有应用到我的源目录中,源被从 .tar 文件提取到输出/构建目录。 请提出解决方案..
Config.in
config BR2_PACKAGE_HELLOWORLD
bool "helloworld"
help
Hello World package says hello world to you
see http://helloworld.com for more on this software
helloworld.mk
HELLOWORLD_VERSION = 1.0.0
HELLOWORLD_SOURCE = helloworld-1.1.tar.gz
HELLOWORLD_PATCH = 18-helloworld-testing.patch
HELLOWORLD_SITE_METHOD = local
define HELLOWORLD_BUILD_CMDS
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
endef
define HELLOWORLD_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/usr/bin/helloworld
$(INSTALL) -D -m 0755 $(@D)/helloworld-init $(TARGET_DIR)/etc/init.d/S90helloworld
endef
$(eval $(generic-package))
最佳答案
对于 local
_SITE_METHOD,不应用补丁。 local
是您想要直接从源目录使用文件的时候。使用 local
_SITE_METHOD,HELLOWORLD_SITE
中指定的目录将被复制到构建目录,不应用补丁,不使用 _SOURCE。
但是,由于您没有指定 HELLOWORLD_SITE
,您触发了一个极端情况,导致它的行为类似于 file
_SITE_METHOD(这是您真正想要的) .对于这种情况,Buildroot 应该给出一个错误。 patch is pending为此。
不幸的是,这并不能解释为什么没有应用补丁。
关于linux - 包括 Build Root 的补丁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50364655/