【问题标题】:Yocto version controlYocto 版本控制
【发布时间】:2016-08-17 15:29:20
【问题描述】:

我们正在努力为我们的应用程序、RFS、Uboot 和内核进行版本控制

我们有一个 hello world 程序。每次我们更改(修补)程序的新功能时,我们都必须在版本号的帮助下跟踪更改。我们需要这个(hello world 包)的版本号应该自动递增。 Linux 和 uboot 也是如此。

yocto 可以为我们做这件事吗?或者我们有任何其他选择来实现这一目标。 请建议我们,因为我们是 yocto 的所有功能的新手。

【问题讨论】:

    标签: yocto


    【解决方案1】:

    如何做到这一点的完整示例:

    重要的部分是SRCREV = "${AUTOREV}"PV = "${BPV}+gitr${SRCPV}"

    DESCRIPTION = "Hello World"
    SECTION = "examples"
    LICENSE = "CLOSED"
    LIC_FILES_CHKSUM = "file://README.md;md5=8386d486d9e820c480636608de5c2d98"
    
    SRCREV = "${AUTOREV}"
    BPV = "0.1.0"
    PV = "${BPV}+gitr${SRCPV}" 
    
    S = "${WORKDIR}/git"
    
    SRC_URI = " git://example/hello_world.git;protocol=http \
    "
    
    inherit autotools
    
    RDEPENDS_${PN} += " \
        hello-world-runtime-dependency \
    "
    

    【讨论】:

      【解决方案2】:

      由于已经pointed out,您必须使用SRCREV = "${AUTOREV}"。要在每次更新时更改版本号,需要在您的配方中调整 PV 变量。

      LINUX_VERSION ?= "3.14"
      PV = "${LINUX_VERSION}+git${SRCPV}"
      

      您可以查看OpenEmbedded kernel recipe 以供参考。

      【讨论】:

        【解决方案3】:

        据我所知,yocto 没有内置功能。但是,您可以编写自己的检查机制并将其放在 do_fetch_prepend 中。然后使用 d.setVar('SRCREV', myshasum) 以编程方式设置 SRCREV。

        【讨论】:

          【解决方案4】:

          自动更新的一个选项是设置 SRCREV = "${AUTOREV}" 然后有一个脚本在配方中设置 PV 和/或 PR。当配方改变时,它会强制进行一次提取,而 AUTOREV 表示它从 HEAD 中提取。

          【讨论】:

          • 你不需要那个脚本。一切都已包含在我们的内核配方中,我们执行以下操作: ``` LINUX_VERSION ?= "3.14" PR = "r0" PV = "${LINUX_VERSION}+git${SRCPV}" ``
          猜你喜欢
          • 1970-01-01
          • 2019-03-16
          • 2010-10-01
          • 2011-06-17
          • 1970-01-01
          • 2011-05-12
          • 2010-10-30
          • 2014-08-15
          • 1970-01-01
          相关资源
          最近更新 更多