【问题标题】:Including patches to Build Root包括构建根的补丁
【发布时间】:2018-05-16 07:21:47
【问题描述】:

我尝试包含我的自定义 helloword 补丁来构建 root。

制作菜单配置

我已添加全局补丁目录/home/Downloads/buildroot/buildroot-2017.11/patches

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

(/home/Downloads/buildroot/buildroot-2017.11/patches/packagename/version/patch)。

我提到了this linkthis link

ma​​ke 命令之后,补丁没有被应用到我的源目录中,源被从 .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))

【问题讨论】:

  • 我猜你的补丁在/home/Downloads/buildroot/buildroot-2017.11/patches/helloworld/1.0.0/0001-some-patch-description.patch,而不是/home/Downloads/buildroot/buildroot-2017.11/patches/packagename/version/patch,就像你提出的问题?
  • 是的,我只是给出一般格式,实际上路径是/home/Downloads/buildroot/buildroot-2017.11/patches/helloworld/1.0.0/
  • 它叫something.patch?只是patch 不行,它需要以.patch 结尾。
  • 只是为了确定:你在调用 make 之前确实做了rm -rf output/build/helloworld*,对吧?除非您完全删除构建目录,否则不会重新应用补丁。

标签: linux patch buildroot


【解决方案1】:

使用local _SITE_METHOD,不应用补丁。 local 是您想直接从源目录中使用文件的时候。使用local _SITE_METHOD,HELLOWORLD_SITE 中指定的目录将被复制到构建目录,不应用补丁,不使用_SOURCE。

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

很遗憾,这并不能解释为什么没有应用补丁。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多