Как добавить пакет в Buildroot, который доступен в Git-репозитории? - PullRequest
9 голосов
/ 04 ноября 2011

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

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

Можно ли это сделать, и если да, то как?

Ответы [ 3 ]

16 голосов
/ 05 ноября 2011

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

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

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

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

1 голос

Минимальное рабочее дерево 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 для разработки пакетов?

1 голос
/ 05 ноября 2011

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

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

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

...