包括Build Root的补丁

时间:2018-05-16 07:21:48

标签: linux patch buildroot

我尝试将自定义helloword补丁包含在构建root中。

in

  

make menuconfig

我添加了全局修补程序目录/home/Downloads/buildroot/buildroot-2017.11/patches

enter image description here

我将补丁文件放在下面的目录

  

(/家/下载/ buildroot的/ buildroot的-2017.11 /贴剂/包/版本/补丁)。

我提到了this linkthis link

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))

1 个答案:

答案 0 :(得分:0)

使用local _SITE_METHOD,不会应用修补程序。 local是您希望直接从其源目录使用这些文件的时间。使用local _SITE_METHOD,HELLOWORLD_SITE中指定的目录将被复制到构建目录,不应用补丁,不使用_SOURCE。

但是,由于您没有指定HELLOWORLD_SITE,因此触发了一个极端情况,使其行为类似于file _SITE_METHOD(这是您真正想要的那个)。 Buildroot应该为这种情况提供错误。这是patch is pending

不幸的是,这并不能解释为什么修补程序无法应用。