LINUX.ORG.RU

Gentoo ebuild dependency on package from overlay


0

2

Подскажите можно ли сделать в ебилдах зависимость от пакета, находящегося в конкретном оверлее?

Общая задача которую надо решить: есть оверлей «myoverlay» в нем есть пакет «mypackage» который зависит от например zeromq-2.1.10. Я не хочу явно указывать версию в зависимости, вместо этого я хочу скопировать zeromq-2.1.10 в свой же оверлей, а в зависимостях прописать DEPEND=«zeromq::myoverlay».

Таким образом если я захочу обновить zeromq для всего стека своих пакетов я просто добавлю в свою репу ебилд с новой версией.

Ответ на: комментарий от jerry_ru

дык запили так:
foo/bar >> *.mask
foo/bar::repo >> *.unmask
и всё
хотя этот вариант, данный портаже-разрабами кривой до нельзя - теряется гибкость маскировки версий

megabaks ★★★★
()
Ответ на: комментарий от megabaks

этот вариант плох для автоматического разворачивания. Тоесть чтоб на новой системе его развернуть надо:

  • подключить оверлей
  • настроить mask
  • и только теперь мерджить пакеты
jerry_ru
() автор топика
Ответ на: комментарий от jerry_ru

для разворачивания есть stage4, не?
что войдёт в его состав - это твоё личное дело же

megabaks ★★★★
()
Ответ на: комментарий от jerry_ru

но опять же - при зависимости от некоего оверлея, ты не соберёшь пакет, не подключив этот оверлей ---> шило на мыло, в случае новой установки системы

megabaks ★★★★
()
Ответ на: комментарий от megabaks

для разворачивания системы достаточно(было бы) подключить оверелей и сделать emerge deploy-pkg

А не подскажешь - есть ли возможность при сборке «пересчитать» зависимости, как происходит при обновлении самого portage?

jerry_ru
() автор топика
Ответ на: комментарий от megabaks

Когда выходит новая версия портеджа как ведет себя процесс сборки? Сначала считает зависимости, потом собирает пакеты до портеджа, потом перезапускает процесс сборки(и пересчитывает зависимости) а потом идет дальше.

Такое поведение можно получить на обычном пакете?

jerry_ru
() автор топика
Ответ на: комментарий от UserUnknown

думал об этом, но это грубо как-то :)

jerry_ru
() автор топика
Ответ на: комментарий от jerry_ru

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

megabaks ★★★★
()
Ответ на: комментарий от UserUnknown

если делать x.y.z-r9999999 - тогда обновление любой цифры в версии будет все рушить. Если сделать просто версию 9999 то её все равно надо размаскировывать...

jerry_ru
() автор топика

Сделай зависимость от virtual/zeromq а в virtual указывай версию.

Nensha
()

Как альтернатива можно просто добавить нужную маску в оверлей в package.mask

Nensha
()

Дай zeromq в твоём пакете другое имя, и пропиши в ебилде конфликт с zeromq. Криво, но работает.

anonymous
()

В общем зависимости от пакета-в-определенном-оверлее делать можно. Для этого в ебилде надо писать EAPI=«4-python». Некоторые eclass'ы не поддерживают это EAPI, но это легко лечится на примере /usr/portage/eclass/cmake-utils.eclass:

 CMAKE_EXPF="src_compile src_test src_install"
 case ${EAPI:-0} in
-       4|3|2) CMAKE_EXPF+=" src_configure" ;;
+       4-python|4|3|2) CMAKE_EXPF+=" src_configure" ;;
        1|0) ;;
        *) die "Unknown EAPI, Bug eclass maintainers." ;;
 esac

Синтаксис зависимостей следующий:

RDEPEND="x11-libs/qt-core::overlay"

Всем спасибо.

jerry_ru
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.