LINUX.ORG.RU

Git Submodules, git-r3.eclass и прочие зависимости


0

1

Допустим, что в генте есть два ебилда, которые по совместительству являются одноимёнными проектами на github.
Только проектов на github больше, чем билдов (потому что ветки).

ну, то есть есть проект MegaLibrary в репозиториях user1/MegaLibrary и user2/MegaLibrary
и есть проект user3/MegaApplication, в котором как субмодуль был указан репозиторий user1/MegaLibrary.

Пусть user4 написал:
- MegaLibrary-1.0.0-r2.ebuild, который берет исходники из репозитория user2/MegaLibrary
- MegaApplication-1.0.0-r2.ebuild, который берет исходники из репозитория user3/MegaApplication.

Что будет делать git-r3.eclass:
1) Он вытащит библиотеку user1/MegaLibrary как git submodule и прикомпилирует её к приложению локально
2) или он посмотрит по зависимостям gentoo и поставит пакет MegaLibrary-1.0.0-r2.ebuild, затем скомпилирует MegaApplication, ссылаясь на реализацию библиотеки от пользователя user2
?

Первый вариант - это же не gentoo way!

Что будет делать git-r3.eclass:

Внимание вопрос - какое отношение git-r3.eclass имеет к тому как именно в ebuild-е который его использует прописаны зависимости и урл-ы git-а?

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

не знаю, какое имеет отношение, но как мне сделать, чтобы у меня был чёткий набор уникальных репозиториев, а не по несколько штук одного и того же проекта от разных пользователей в каталоге /var/calculate/remote/distfiles/git3-src ?

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

не знаю, какое имеет отношение, но как мне сделать

Значит ещё раз читай внимательно и очень хорошо думай - git-r3.eclass и то как именно его используют в конкретном ebuild-е а так же зависимости прописанные в ebuild-е НИКАК ДРУГ С ДРУГОМ ВООБЩЕ НЕ СВЯЗАНЫ.

Поясняю ещё подробнее:

git-r3.eclass - обеспечивает доставку и обновление сырцов и до тех пор пока ты используешь его переменные так как ему нужно ему вообще плевать как там у тебя что организовано и какие зависимости в ebuild-е. Это не его забота.

Зависимости прописанные в ebuild-е тоже могут быть прописаны по велению левой пятки в полнолуние… И да этим зависимостям тоже плевать в каких там репах живут сырцы.

А вся эта бодяга вместе работает до тех пор пока сырцы доставляются а код компилится .

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

не связаны

вот и я про то же самое. ОНИ ;%:?*("!!!! НЕ СВЯЗАНЫ
а надо чтобы были связаны, иначе получаются дубли

как же это исправить?

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

как же это исправить?

А вот чтобы это исправить это надо взять и исправить да. Потому что git-r3.eclass-у плевать на то что автору ebuild-а зависимости подсказала его левая пятка в полнолуние. И точно так-же git-r3.eclass-у плевать на то как там у тебя организованы репы и как ты хотел на самом деле чтобы они были организованы… Потому-что правильно организовывать репы, прописывать источники сырцов или зависимости это не его забота.

init_6 ★★★★★
()

1) Он вытащит библиотеку user1/MegaLibrary как git submodule и прикомпилирует её к приложению локально

Насколько я видел сырцы екласса, субмодули во внимание не принимаются. С другой стороны, субмодуль просто ссылается на хеш другого проекта, поэтому его можно и, наверное, даже нужно устанавливать отдельно.

2) или он посмотрит по зависимостям gentoo и поставит пакет MegaLibrary-1.0.0-r2.ebuild, затем скомпилирует MegaApplication, ссылаясь на реализацию библиотеки от пользователя user2

Пиши ебилд правильно, и все будет, екласс-то тут причем?

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

А как именно исправить - что, куда и в какой момент записать ?

Вместо левой пятки при прописывании зависимостей использовать головной мозг. Урлы и физическое расположение тоже прописывать советуясь с головой а не с /dev/urandom и всё будет замечательно.

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

этого будет недостаточно.

Ещё надо разорвать зависимости субмодулей. Если совсем точно, то зависимости из файлов конфигурации git нужно перенести в пакеты.

так как авторы пакетов не могут патчить чужие репозитории, то патчи прийдется накатывать локально (или тупо стирать файлы конфигурации git).

я же не злюсь, что ты не написал утилиту, автоматически генерирующую комплекты ебилдов по проектам на github. И ты на меня не злись, не за что.

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

екласс-то тут причем?

при том, что он плохой, негодный:
http://www.gossamer-threads.com/lists/gentoo/dev/277639

я лучше буду пользоваться git-2, там хоть можно отключить подтягивание субмодулей и делать NOTBARE-репозитории (что полезно чтобы искать ошибки компиляции не в рабочей директории с возможностью закоммитить обратно)

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

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

А для этого ВНЕЗАПНО либо делается форк и в него накладываются свои патчи либо да в files/ свои патчики.

я же не злюсь, что ты не написал утилиту, автоматически генерирующую комплекты ебилдов по проектам на github

А схерна бы я её писал бы? Достаточно один раз разобраться в структуре ebuild-а и принципах его работы с git и дальше никаких „утилит“ не нужно в принципе.

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

Достаточно один раз разобраться в структуре ebuild-а и принципах его работы с git и дальше никаких „утилит“ не нужно в принципе.

достаточно один раз выучить машинные коды и можно запрограммировать что угодно. Но трудоёмно, и коды учить и программировать в кодах? Не проще ли выучить ЯВУ (высокого уровня) и программировать на нём?

Вот и с пакетами - проще, когда операции автоматизированы.

А схерна бы я её писал бы?

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

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

либо да в files/ свои патчики.

И тут мы сталкиваемся с тем что eclass начинает тянуть субмодули раньше, чем эти патчики применятся.

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

Вот и с пакетами - проще, когда операции автоматизированы.

Ну если тебе „проще“ то бери и „автоматизируй“. А мне проще понять инструмент и затем использовать его по назначению в любых задачах где он решит свою задачу.

ну так я не настаиваю, чтобы это делал лично ты.

Тебе надо? Вот бери и делай.

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

Тебе надо?

нет, для моих целей достаточно пользоваться классом git-2
я просто раскритиковал git-r3

а вот почему ты его защищаешь - я не понимаю

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

И тут мы сталкиваемся с тем что eclass начинает тянуть субмодули раньше, чем эти патчики применятся.

И что? Патчики в files/ которые ТЕБЕ надо после чего-то там это не заботы eclass-а.

Тебя не устраивает eclass? Форкай и переделывай как тебе надо.

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

то есть тебе по теме сказать нечего, но поговорить хочется, а не с кем.

То есть тебе надо чтоб всё было зае замечательно но при этом ты не желаешь ничего читать, изучать или эксперементировать? Ок…

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

Может сейчас прийдёт вежливый pinkbyte и скажет, что я прав в том, что класс git-r3 хуже чем git-2

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

Юпитер - ты сердишься, а значит ты не прав.

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

Может сейчас прийдёт вежливый pinkbyte и скажет, что я прав в том, что класс git-r3 хуже чем git-2

А мне сугубо индифферентно кто, может быть, придёт и что, возможно, скажет. Кто-бы ни пришел он никак не изменит того факта что eclass-ы для git-а это одно, как ты их используешь в своём ebuild-е это второе, как там у тебя на деле и в твоих фантазиях устроены репы git-а это третье, а зависимости в ebuild-ах это вообще четвёртое.

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

мне сугубо индифферентно

вот я и говорю - офтопишь в треде, который тебе безразличен. Вместо того, чтобы писать в тех тредах, которые тебе интересны.

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

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

вот я и говорю - офтопишь в треде, который тебе безразличен.

Не перевирай мои слова.

то я не понимаю, почему вместо обсуждения решений ты занимаешься под..начками и попытками оскорбить

Каких решений? Никаких решений сложных взаимосвязей между принятием решений в логических схемах левой пятки юзера, в период полнолуния, для организации истинно верных зависимостей в ebuild-ах с несовершенством git-r3.eclass-а в области отсутствия его линковки с libastral.so нет и принципиально быть не может.

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

ты слеп.

такое решение есть в git-2.eclass - загружать субмодули по воле пользователя.

И заметь, не ты это решение предложил.

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