Как расширить манифест чужого репо?

В своем проекте я хочу взять существующую установку Yocto для дистрибутива Linux Automotive Grade и добавить несколько слоев с рецептами для наших собственных компонентов.

Существует общедоступный файл манифеста на их неверный сайт. То, что я хотел бы сделать, это в основном

<manifest>
    <include url="<url of AGL manifest>" />
    <remote name="mysite" fetch="ssh://gerrit.mysite.com" />
    <project name="mylayer1" path="mylayer1" />
    <project name="mylayer2" path="mylayer2" />
</manifest>

Цель состоит в том, чтобы команда repo init, указывающая на мой манифест, сначала извлекала все репозитории, упомянутые в «включенном» манифесте, а затем приступала к выборке всех моих собственных метаслоев.

Проблема в том, что элемент include предназначен для включения других манифестов в тот же репозиторий, указанный в командной строке repo init.

Я мог просто скопировать их манифест в свой собственный репозиторий с другим именем и создать рядом с ним свой собственный манифест. Или я мог бы просто воспроизвести их файл и отредактировать его.

Но поддерживать его будет больно и чрезвычайно подвержено ошибкам. Тем более, что вышестоящий манифест используется не только для указания репозиториев, но и для закрепления каждого из них за конкретными коммитами в качестве формы контроля версий в Yocto.

Я не могу поверить, что такой очевидный вариант использования не был рассмотрен и рассмотрен.

Итак, рискуя быть закрытым как «слишком широкий» или за запросом рекомендаций, кто-нибудь уже решил эту проблему? Если да, то как?


person kdopen    schedule 28.02.2017    source источник
comment
Вы когда-нибудь находили решение этого? По-прежнему кажется, что нет чистого способа сделать это. local_manifests на самом деле не делает то, что я хочу, возможно, мне нужно продолжить изучение этого.   -  person user_ABCD    schedule 29.04.2021
comment
@user_ABCD Нет, никогда не делал   -  person kdopen    schedule 03.05.2021


Ответы (2)


Я очень сомневаюсь, что есть способ сделать это с помощью инструмента репо.

У Wind River есть решение, и ходили разговоры о переносе его в oecore:

https://github.com/Wind-River/wr-lx-setup

Я не уверен, что это сделает именно то, что вы ищете, но решает проблему, которую вы описываете.

Исторически сложилось так, что люди использовали репозиторий (freescale-community-bsp), комбинированные слои (Ostro) или просто запускали собственное решение. Этот инструмент настройки является попыткой стандартизировать способ сборки слоев.

person Stephano    schedule 03.03.2017

Вы можете использовать local_manifest.xml. В разделе .repo/ создайте каталог с именем local_manifests/. Вы можете добавить файл local_manifest.xml

Вы можете добавить свой собственный пульт, по умолчанию и проекты, которые должны быть получены с этого пульта.

Я использовал эту функцию с репо 1.23.

person sob    schedule 19.06.2017