更新以前基于 master 分支但现在随版本一起发布的配方

Update a recipe that was previously based on master branch but now is released with version

我有一个菜谱 canboat,它以前没有基于正式发布版本,而是基于 master 分支上的 SRCREV

canboat.bb

SUMMARY = "CANBOAT- A small but effective set of command-line utilities to work with CAN networks on BOATs."
SECTION = "base"
LICENSE = "GPLv3"

DEPENDS += "libxslt-native canboat-native"

LIC_FILES_CHKSUM = "file://GPL;md5=05507c6da2404b0e88fe5a152fd12540"

SRC_URI = "git://github.com/canboat/canboat.git;branch=${SRCBRANCH} \
           file://0001-Do-not-use-root-user-group-during-install.patch \
           file://0001-Define-ANALYZEREXEC.patch \
           file://0001-use-php-instead-of-php5.patch \
          "
SRCBRANCH = "master"
SRCREV = "93b2ebfb334d7a9750b6947d3a4af9b091be2432"

S = "${WORKDIR}/git"

PREFIX ?= "${root_prefix}"
#PREFIX_class-native = "${prefix}"

EXTRA_OEMAKE_append_class-target = " ANALYZEREXEC=analyzer "

do_compile() {
    oe_runmake
}
do_install() {
   oe_runmake DESTDIR=${D} PREFIX=${root_prefix} EXEC_PREFIX=${exec_prefix} install

}

RDEPENDS_${PN}_append_class-target = " php-cli perl"

BBCLASSEXTEND = "native nativesdk"

main repository 几天前正式发布了,我想更新我的食谱以指向 v.1.0.0

工作流程

  1. 我用了devtool add canboat [link-tar-ball]
  2. 复制了原来的改动canboat.bb
  3. 将菜谱名称更改为 canboat_1.0.0.bb,因为菜谱现在有 ${PV} 用于获取正确的版本

更新食谱

只有 SRC_URI 现在指向 .tar.gz 并且 md5sum 已经更新。

SUMMARY = "CANBOAT- A small but effective set of command-line utilities to work with CAN networks on BOATs."
SECTION = "base"
LICENSE = "GPLv3"

DEPENDS += "libxslt-native canboat-native"

LIC_FILES_CHKSUM = "file://GPL;md5=05507c6da2404b0e88fe5a152fd12540"

SRC_URI = "git://github.com/canboat/canboat.git;branch=${SRCBRANCH} \
           file://0001-Do-not-use-root-user-group-during-install.patch \
           file://0001-Define-ANALYZEREXEC.patch \
           file://0001-use-php-instead-of-php5.patch \
          "
SRC_URI = "https://github.com/canboat/canboat/archive/v${PV}.tar.gz"
SRC_URI[md5sum] = "6ee6162d30faa3b3f1ff068cc7a70a60"
SRC_URI[sha256sum] = "6bf1050a83a5d7eb8351547c10e7e2ae2e1811250d50a63880074f0c07ec672e"

S = "${WORKDIR}/git"

PREFIX ?= "${root_prefix}"
#PREFIX_class-native = "${prefix}"

EXTRA_OEMAKE_append_class-target = " ANALYZEREXEC=analyzer "

do_compile() {
    oe_runmake
}
do_install() {
   oe_runmake DESTDIR=${D} PREFIX=${root_prefix} EXEC_PREFIX=${exec_prefix} install

}

RDEPENDS_${PN}_append_class-target = " php-cli perl"

BBCLASSEXTEND = "native nativesdk"

我尝试bitbake -k canboat检查构建过程

错误

我收到如下质量检查错误:

 QA Issue: canboat-native: LIC_FILES_CHKSUM points to an invalid file: 
/home/des/Yocto/PHYTEC_BSPs/yocto_fsl/build/tmp/work/x86_64-linux/canboat-native/1.0.0-r0/git/GPL

我尝试进入上述文件夹,但那里没有 GPL 文件,相反,该文件存在于 canboat_1.0.0 文件夹中。

结构如下:

.
├── canboat-1.0.0
│   ├── actisense-serial
│   ├── airmar
│   ├── analyzer
│   ├── candump2analyzer
│   ├── common
│   ├── config
│   ├── group-function
│   ├── ip
│   ├── n2kd
│   ├── nmea0183
│   ├── samples
│   ├── send-message
│   ├── socketcan-writer
│   └── util
├── git
└── temp

git 文件夹中没有任何内容。

问题

如何克服 QA 测试,有没有更好的方法来更新食谱?

您的新食谱中不需要 S = "${WORKDIR}/git"。当您从 tarball 引用特定版本时,yocto 使用 ${PN}-${PV}

取消引用路径

这是因为压缩包解压缩后,源路径将为${WORKDIR}/${PN}-${PV}

此外,当找不到 Makefile.am/inautoconf 文件时,您可以删除食谱的 do_compile 部分,因为 Yocto 默认调用 make