Обновите рецепт, который раньше был основан на основной ветке, но теперь выпущен с версией - PullRequest
0 голосов
/ 22 октября 2018

У меня есть рецепт canboat , который ранее не основывался на официальной версии выпуска и был основан на SRCREV в ветви master.

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"

Основной репозиторий официально выпустил пару дней назад, и я хочу обновить свой рецепт, указав 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 s были обновлены.

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 следующим образом:

 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 и есть ли лучший способ обновить рецепты?

1 Ответ

0 голосов
/ 22 октября 2018

Вам не нужно S = "${WORKDIR}/git" в вашем новом рецепте.Когда вы ссылаетесь на конкретную версию из tarball, yocto отменяет ссылку на путь, используя ${PN}-${PV}

Это потому, что при извлечении tarball исходный путь будет ${WORKDIR}/${PN}-${PV}.

Кроме того, выможет удалить секцию do_compile вашего рецепта как Yocto по умолчанию, вызывая make, когда не может найти Makefile.am/in или autoconf файлы.

...