Метаданные

Как вы могли видеть из справки bitbake или из описания .bb файлов,переменная BBFILES указывает где bitbake ищет .bb файлы. Эта переменная содержит список файлов разделенных пробелами, или их масок (к примеру recipes/*/*.bb).

Пример 4.4. Настройка BBFILES

BBFILES = "/path/to/bbfiles/*.bb"


Что касается зависимостей, то ожидается что в .bb файле опеделена переменная DEPENDS, которая содержит список имен пакетов разделенных пробелами. Имена могут указываются в PN. По умолчанию в качестве PN используется часть имени .bb файла.

Пример 4.5. Зависимость от другого .bb файла

a.bb:

PN = "package-a"
DEPENDS += "package-b"

b.bb:

PN = "package-b"


Пример 4.6. Использование PROVIDES

Этот пример демонстрирует каким образом можно использовать переменную PROVIDES, для указания какую функциональность предоставляет .bb файл.

package1.bb:

PROVIDES += "virtual/package"

package2.bb:

DEPENDS += "virtual/package"

package3.bb:

PROVIDES += "virtual/package"

Как вы видите два разных .bb файла предоставляют аналогичную функциональность (virtual/package). Из-за этого требуется указание пользователем, какой из этих файлов будет использоваться.

Указать что будет использоваться package1 можно добавив в .conf файл следующую переменную со значением package1:

PREFERRED_PROVIDER_virtual/package = "package1"


Пример 4.7. Указание предпочитаемой версии

Когда имеется множество версий одного и того же пакета, bitbake по умолчанию выбирает наиболее новую версию. Если в .bb значение переменной DEFAULT_PREFERENCE меньше чем в других .bb файлах (по умолчанию это 0), то он никогда не выбирается. Это позволяет разработчикам сопровождающим репозиторий .bb файлов указывать необходимую версию по умолчанию. Так же это позволяет изменять предпочтения локально не взирая на предпочтения в репозитории.

К примеру если первый файл .bb имеет имя a_1.1.bb, то переменная PN будет иметь значение a, а переменная PV будет иметь значение 1.1.

И если при этом имеется файл a_1.2.bb, то bitbake выберет 1.2 по умолчанию. Однако если определить в .conf файле, который обрабатыватся bitbake, ниже приведенную переменную, то будет выбрана версия 1.1

PREFERRED_VERSION_a = "1.1"


Пример 4.8. Использование коллекций bb файлов

Коллекции .bb файлов позволяют использовать множество репозиториев bb файлов содержащих одинаковые пакеты. К примеру это позволяет использовать отдельную копию основного репозитория со своими изменениями, невошедшими в основной репозиторий. Для этого в .conf прописываем:

BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
BBFILE_COLLECTIONS = "upstream local"
BBFILE_PATTERN_upstream = "^/stuff/openembedded/"
BBFILE_PATTERN_local = "^/stuff/openembedded.modified/"
BBFILE_PRIORITY_upstream = "5"
BBFILE_PRIORITY_local = "10"