Битбэйк зависит от пакета AAA, он будет зависеть от AAA-dev - PullRequest
0 голосов
/ 18 октября 2019

Я добавляю зависимый пакет в существующий файл .bb, такой как добавление строки DPENDS="AAA" в файл .bb, когда я компилирую файл .bb, он не удался для XXX rdepends on AAA-dev [dev-deps], и я ищу в Google, всеОтвет почти таков: добавьте строку INSANE_SKIP_${PN} += "dev-deps" или RDEPENDS_${PN}_remove = "AAA-dev" в .bb файл.

Но мой вопрос - почему? почему один пакет зависит от пакета AAA, он также должен RDPENDS AAA-dev, есть ли другой ответ для решения этой проблемы

Исходный файл bb:

inherit autotools qcommon
DESCRIPTION = "Daemon to handle AT commands"
DEPENDS = "glib-2.0 qmi qmi-framework qmi-client-helper ocean-link"

SRC_DIR = "${WORKSPACE}/atfwd-daemon/"
S = "${WORKDIR}/atfwd-daemon/"

PR = "r3"
EXTRA_OECONF += "--with-glib --with-common-includes=${STAGING_INCDIR}"

do_configure_append() {
    echo "/*This is compiled to generate, only look don't try*/" > ${S}atfwd_config.h
    echo "#ifndef _ATFWD_CONFIG_H_" >> ${S}atfwd_config.h
    echo "#define _ATFWD_CONFIG_H_" >> ${S}atfwd_config.h

#//<!-- ODM feature caogang@2015-07-13
    if [ "${PRJ_NAU8810}" = "NAU8810_CODEC" ]; then
        echo "#define NAU8810_CODEC" >> ${S}atfwd_config.h
    fi

    if [ "${FEATURE_ACDB_ENABLE}" = "true" ]; then
        echo "#define FEATURE_ACDB_ENABLE 1" >> ${S}atfwd_config.h
    fi

    if [ "${PRJ_XXX}" != "" ]; then
        echo "#define  ${PRJ_XXX}" >> ${S}atfwd_config.h
    fi
#//end-->

Iдобавить DEPENDS в onenet pkg

inherit autotools qcommon
DESCRIPTION = "Daemon to handle AT commands"
DEPENDS = "glib-2.0 qmi qmi-framework qmi-client-helper ocean-link onenet"

SRC_DIR = "${WORKSPACE}/atfwd-daemon/"
S = "${WORKDIR}/atfwd-daemon/"

PR = "r3"
EXTRA_OECONF += "--with-glib --with-common-includes=${STAGING_INCDIR}"

do_configure_append() {
    echo "/*This is compiled to generate, only look don't try*/" > ${S}atfwd_config.h
    echo "#ifndef _ATFWD_CONFIG_H_" >> ${S}atfwd_config.h
    echo "#define _ATFWD_CONFIG_H_" >> ${S}atfwd_config.h

#//<!-- ODM feature caogang@2015-07-13
    if [ "${PRJ_NAU8810}" = "NAU8810_CODEC" ]; then
        echo "#define NAU8810_CODEC" >> ${S}atfwd_config.h
    fi

    if [ "${FEATURE_ACDB_ENABLE}" = "true" ]; then
        echo "#define FEATURE_ACDB_ENABLE 1" >> ${S}atfwd_config.h
    fi

    if [ "${PRJ_XXX}" != "" ]; then
        echo "#define  ${PRJ_XXX}" >> ${S}atfwd_config.h
    fi
#//end-->

onenet.bb:

inherit pkgconfig cmake
DESCRIPTION = "onenet sdk"
LICENSE = "PD"
PR = "r0"
LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=bae84cdd023be37582157d865da54cc6"
SRCREV = "065d98dd8de91544315d6167ce73626ce739666d"
SRC_URI = "git://github.com/cm-heclouds/MQTT.git;protocol=https"
S = "${WORKDIR}/git/mqtt_sdk"

do_install() {
    install -d ${D}/usr/lib
    install -d ${D}/usr/include/onenet

    install -m 0644 ${B}/bin/libmqtt.so -D ${D}/usr/lib/

    for inc in $(find ${S} -name *.h ! -name 'cJSON.h'); do
        install -m 0644 ${inc} -D ${D}/usr/include/onenet
    done
}s

1 Ответ

1 голос
/ 18 октября 2019

Документация проверки работоспособности объясняет это:

dev-deps: проверяет, что все пакеты, кроме пакетов -dev или -staticdev, не зависят от пакетов -dev, что может быть ошибкой упаковки.

Это говорит о том, что в вашем текущем рецепте "XXX" время выполнения зависит от "AAA-dev" и что это обычно ошибка. Вам нужно выяснить, как / почему эта зависимость добавляется, прежде чем вы сможете решить, какое решение является правильным.

На основе добавленных рецептов: проблема, по-видимому, в том, что onenet build создает неверсионный файл ".so",Обычно это ошибка (фактический файл библиотеки должен быть, например, «libmqtt.so.1.1», а неверсионный файл должен быть просто символической ссылкой на версионный). Я очень удивлен, что вы не получаете фатальную ошибку по этому вопросу при сборке onenet. Вы подавляете ошибку QA для этого?

Поскольку вам удалось каким-то образом собрать onenet, теперь у вас, вероятно, есть пакет onenet-dev, который ошибочно содержит фактическую библиотеку: система сборки замечает это во время сборки atfwd-daemon, добавляет зависимость времени выполнения к onenet-dev (потому что там находится библиотека), а затем возникает ошибка QA, потому что нормальные пакеты не должны зависеть от пакетов -dev.

Возможные исправления:

  • Либо исправьте систему сборки onenetпоэтому он создает версионную библиотеку или
  • Принудительно упаковать файл .so в фактический пакет onenet вместо onenet-dev, например:

    FILES_${PN}-dev = "${includedir}/"
    FILES_${PN} += "${libdir}/libmqtt.so"
    

Дополнительное предложение: использование переменных каталога вместо путей, таких как / usr / include и / usr / lib (как я это делал выше), является хорошей "Лучшей практикой".

...