LINUX.ORG.RU

Как работает vcs-snapshot.eclass?

 , ,


0

1

Объясните, пожалуйста, развёрнуто, как работает .eclass vcs-snapshot. То есть, не что он делает, и не зачем он нужен (потому что это написано в документации), а как именно он выполняет свою работу. Так же помог бы перечень тем(топиков), которые надо знать и понимать для того, чтобы понимать как он работает.

Да, я прочитал уведомление о том, что теперь он не нужен, но мне хочется понять как он работал в прошлом, когда был нужен. Потому что у меня X/Y проблема. И я думаю, что найду ответ на свой скрытый вопрос после того, как возникнет понимание с вопросом этим.

★★★★

Последнее исправление: Shushundr (всего исправлений: 1)

«sources is the best documentation» (c)

1. Смотрим в SRC_URI, если там не тарболл - вызываем обычный unpack;
2. Если в п.1 у нас tarball - распаковываем через pipe и смотрим сколько директорий первого уровня в архиве. Если больше одной - возвращаем ошибку;
3. Если в п.2 у нас одна директория - распаковываем ее содержимое в директорию согласно имени тарболла

Ну и еще там проверка на необходимость использования самого eclass-а дальше, но там просто warning в стиле «применение eclass тут избыточно» при определенных условиях(когда ничего переименовывать не нужно)

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Спасибо за развёрнутый ответ. Но голова на место пока не встала.

Если какой-то там класс может распаковать только часть архива (одну директорию), то зачем было в принципе создавать переменную S ? Мы же, по-идее, распаковываем весь архив, а затем устанавливаем S туда, где в архиве самые исходники. Но этот eclass делает не так, он не дополняет S значением SHA1, а по-другому делает, нелогичным способом.

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

Shushundr ★★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)
Ответ на: комментарий от Shushundr

Если какой-то там класс может распаковать только часть архива (одну директорию), то зачем было в принципе создавать переменную S ?

Потому что проблема не в распаковке, а в логике работы.

Но этот eclass делает не так, он не дополняет S значением SHA1, а по-другому делает, нелогичным способом.

Менять S внутри eclass-а может быть запрещено по Package Manager Specification (тут не силен, в разработке eclass давно не участвовал и эту секцию PMS не помню).

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

Такой вопрос логичнее задавать в мэйллист gentoo-dev, где разработчиков Gentoo несколько побольше. А не на форуме, где есть 1,5 разработчика Gentoo: Zlogene на полную ставку и я(в перманентом dev-away) - за 0,5 сойду.

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