Как добавить пакет в Buildroot, который доступен в репозитории Git?

Я делаю встраиваемую систему Linux и хочу добавить пакет 'bluez (и утилиты bluetooth) в пакеты среды Buildroot.

К сожалению, tar-шар недоступен, но исходный код доступен в репозитории Git, но я не уверен, как включить его в файл .mk.

Могу ли я это сделать и если да, то как?


person D-Dᴙum    schedule 04.11.2011    source источник
comment
вы можете посмотреть исходный код (inbuildroot) о том, как извлекаются репозитории svn, и создать свой собственный материал для git.   -  person Alexander Oh    schedule 05.11.2011


Ответы (3)


В Buildroot уже есть пакет bluez, который станет частью предстоящего выпуска 2011.11. Тем временем вы можете либо использовать последнюю версию Git Buildroot, либо обратно портировать пакет bluez в более старую версию Buildroot.

Возвращаясь к первоначальному вопросу, Buildroot может извлекать исходный код из репозиториев Git. Как указано в документации, вам просто нужно сделать:

MYPKG_VERSION = some_commit_id_or_tag_or_branch_name
MYPKG_SITE = git://thegitrepository
MYPKG_SITE_METHOD = git

в вашем файле .mk.

person Thomas Petazzoni    schedule 05.11.2011
comment
Спасибо. Я использую собственный buildroot для устройств Phidget, поэтому выпуск 2011.11 также потребует настройки для Phidget. Ваш ответ помог мне, и я могу объединить его с выпущенным Buildroot Phidget. - person D-Dᴙum; 05.11.2011
comment
Метод теперь угадывается по префиксу git://. - person Ciro Santilli 新疆再教育营六四事件ۍ 25.06.2017
comment
для репозиториев на github можно использовать следующий макрос FOO_SITE = $(call github,<user>,<repo>,$(FOO_VERSION) - person Mixaz; 17.01.2020
comment
Скажем, я хотел сделать git-клоны нескольких репо в одном пакете, есть ли способ сделать это. Не можете выбрать более одного mypkg_site в одном пакете? - person John smith; 08.10.2020

Похоже, что tar-архивы пакета bluez уже доступны. Поиск в Google по запросу «bluez» дает http://www.bluez.org/download/, что имеет ссылки на несколько архивов.

Если по какой-то причине вам действительно нужен код из репозитория Git, вы можете сделать локальный клон репозитория, а затем использовать команду git archive для создания архива. См. git archive --help документацию.

В зависимости от ваших потребностей вы также можете выполнить сборку непосредственно из локальной копии репозитория (вместо создания tar-архива только для того, чтобы снова распаковать его на более позднем этапе).

person larsks    schedule 05.11.2011
comment
Тарболы были недоступны, когда я пытался, но репозиторий git был. Я просто не уверен, как использовать репозиторий git в файле .mk, но ответ Томаса и просмотр документов помогли - person D-Dᴙum; 05.11.2011

Пример минимального рабочего дерева 2016.05

https://github.com/cirosantilli/buildroot/tree/git-package-2016.05

Единственный интересный файл package/hello/Config.in:

HELLO_VERSION = branch2
HELLO_SITE = git://github.com/cirosantilli/hello-c.git

define HELLO_BUILD_CMDS
    $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D)
endef

define HELLO_INSTALL_TARGET_CMDS
        $(INSTALL) -D -m 0755 $(@D)/hello $(TARGET_DIR)/usr/bin
endef

$(eval $(generic-package))

Он загружает и создает: https://github.com/cirosantilli/hello-c.

MYPKG_SITE_METHOD = git выводится из git: на SITE.

подмодуль git + *_OVERRIDE_SRCDIR для вилок git

Если вы собираетесь изменить источник репозитория, я рекомендую этот подход: Как изменить источник пакетов Buildroot для разработки пакетов?

person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 02.03.2018