LINUX.ORG.RU

Как правильно создать ebuild с версией «2.5.0-b.9»?

 ,


1

1

Есть библиотека, промежуточные тестовые версии которой выглядят как «2.5.0-b.9». Как правильно именовать ebuild с такой версией, и потом распарсить в EAPI 7?

Трудность именно в суффиксе. Я так понял, в суффиксе не могут быть точки? Нужно разделить «b» и «9», чтобы потом при формировании URL можно было между ними поставить точку. Если записать просто «b9», то неочевидно, как это можно надёжно парсить, нет гарантий, что потом не будет версии «2.5.0-b2.9». Если нет лучшего решения, то придётся записать «b9» вместе и потом вытаскивать отдельно числа, отдельно буквы. Можно внутри ебилда держать отдельную переменную с нужным суффиксом, но хардкод тоже не хочется делать.

Пробовал:

odb-2.5.0-b.9.ebuild
odb-2.5.0_pre_b.9.ebuild
odb-2.5.0_pre_b_9.ebuild

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

Я это читал, к сожалению, решения со сложными составными суффиксами, где буквы и числа разделены точкой, не нашёл.

Нет ты это не читал иначе прочитал бы что разрешено исключительно так как там написано и никак иначе.

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

Спасибо. Я это понял, но к сожалению, это не отвечает на вопрос «Как правильно создать ebuild с версией 2.5.0-b.9?».

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

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

Ебилд с таким именем создать нельзя. Если в имени тарболла или программы содержатся символы, недопустимые в имени или версии ебилда - необходимо использовать замену для соответствующих переменных на этапе конфигурирования/сборки пакета или в SRC_URI.

Примеров замен в дереве portage полно. Конкретнее - ищи ${MY_P} или ${MY_PN}

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

Можно внутри ебилда держать отдельную переменную с нужным суффиксом, но хардкод тоже не хочется делать.

Для старых EAPI есть versionator eclass. Для EAPI 7 - есть отдельные функции для парсинга версии.

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

Спасибо, в поиске решения задачи «в лоб», я не обратил внимания, что b может означать просто «beta», как упомянули ты и eternal_sorrow. Детальнее посмотрев лог в репозитории, нашёл этому подтверждение, ещё там есть «2.5.0-a.2» для alpha-версий. Всё гораздо проще оказалось.

Pravorskyi ()