[devel] libpaper update (was: [#325166] DONE (try 15) libpaper.git=2.1.1-alt1 boomaga.git=3.0.0-alt1.2 xmlto.git=0.0.28-alt3 ...)

Vitaly Lipatov lav на altlinux.ru
Вт Июл 25 16:12:40 MSK 2023


Gleb Fotengauer-Malinovskiy писал(а) 25.7.23 11:16:
...
> Я вот считаю, что это была довольно сложная задача.
Задача сложная, а должна быть просто, потому что это всего лишь 
обновление версии пакета, и оно не должно сопровождаться такими 
сложностями.

>> пакета со сменой
>> soname библиотеки выглядит невразумительно и неоправданно сложным
>> благодаря Shared Policy Libs.
> 
> Shared Libs Policy всегда была связана с необходимостью.  Вообще, 
> практика
> показывает, что если библиотека сразу собрана с учётом существования
> Shared Libs Policy и опыта обновления библиотек со сменой soname, то и
> обновление происходит проще.
Вообще, практика показывает, что если расставлять soname в названия 
пакетов, то обновление ещё проще происходит.
И названия пакетов не мельтешат. Возможно удивительно, что столько 
внимания к названиям пакетов библиотек. У них вообще не должно быть 
названий, их суть — это библиотеки внутри.

>> Тут даже лучше начинаешь понимать те
>> апстримы, которые делают несовместимые изменения, не меняя soname.
> 
> Я не понимаю связи.
У меня есть подозрение, что некоторым апстримам проще пойти на изменение 
ABI без смены soname, чем внести несовместимость по названию библиотеки.

...
>> Если что, libpaper был нужен для тех пакетов, которые указывали
>> Requires: libpaper ради того, чтобы получить /usr/bin/paperconf. Если 
>> вы
>> его убрали, видимо, такие пакеты лишатся нужной им команды.
> 
> Частичный Provides: это тоже неправильно.  Тут можно только исправить
> все такие пакеты.
> Вообще, эту утилиту нужно паковать отдельно, так не делалось раньше, но
Почему «нужно», вовсе не очевидно, и у меня в этом большие сомнения.

> при обновлении libpaper стоило это исправить, я даже скажу, что всё ещё
> не поздно.
Согласен, просто делать слишком много изменений сразу не очень хорошо.

...
>> > 1. Переименование бинарного пакета libpaper в libpaper1 было ошибкой
>> > потому что таким образом soname libpaper.so.1 переезжает в другой
>> > пакет.
>> А что плохого в том, что библиотека переезжает в другой пакет? 
>> Выглядит
>> как тайное знание.
> 
> https://www.altlinux.org/Shared_Libs_Policy
>   «...можно столкнуться с багофичей apt: он плохо переносит 
> переименования
>   пакетов в случае, когда содержимое старой версии пакета переносится в
>   пакет с новым именем, но при этом пакет со старым именем остаётся
>   существовать».
Это городские легенды вы цитируете. Какие-то багофичи без ссылок. Я 
вообще думаю, что apt ничего не знает о содержимом пакетов, а какие там 
названия у пакетов ему тоже всё равно, он оперирует версионированными 
именами.

>> Я вот считаю, что вообще плохо пакеты переименовывать, и бинарный
>> libpaper должен был и остаться libpaper.
> 
> Тем не менее, ты заапрувил такое переименование.
Да, из соображений симметрии, раз уж один называется libpaper2, другой 
должен быть libpaper1.

>> > 2. Между пакетами libpaper2 и libpaper < 1.1.28-alt1 отсутствовал явный
>> > конфликт, хотя эти пакеты содержат разные версии /usr/bin/paperconf.
>> +1
>> 
>> > 3. '%set_verify_elf_method rpath=relaxed' из-за попадания %_libdir в
>> > RPATH
>> > это просто стыдно, мне сложно даже как-то комментировать.
>> А кому стыдно?
> 
> К сожалению, ты аппрувишь халтуру и заметание проблем под ковёр, я 
> считаю,
> что это категорически неправильный подход для ментора.
Удобно из одной строчки про rpath делать такие обобщения. Да, я не 
заметил строчку, ну бывает.
И ментор тут ни при чём, почему бы не написать, что это неправильный 
подход для мантейнера.

>> Тому, кто не написал, почему %_libdir в RPATH это плохо
>> на странице
>> https://www.altlinux.org/ProblemWithVerifyELFAndRPATH
>> ?
> 
> Похоже, эта статья по большей части была написана вообще до появления
> проверки про стандартные пути.  Хороший повод её обновить.
Вы просто не хотите признавать, что вы наводите порядок по установленным 
правилам. Только правила эти никто не писал, они состоят из намёков, 
неоднозначностей и мнений тех, чьё мнение важнее остальных.

>> Возможно, что это я один не знаю, что такого в %_libdir в RPATH, а
>> возможно, что знает только 3 человека из Тим. Проверять будем?
> 
> Те или иные проверки rpath существуют в Альте с 2002 года, а проверка 
> на
Это не ответ на вопрос. От проверок на rpath за это время страдало много 
пакетов и мантейнеров.

> наличие стандартных каталогов с 2011 года.  Я удивлён, что ты не
> поинтересовался за столько времени, но учить кандидата в Team не
> интересоваться такими вещами это совсем другое дело.
К сожалению, запретить делать различные (в том числе и неверные) выводы 
из одного и того же факта нельзя запретить.
О каком обучении кандидата в Team речь, я не понял, видимо, это какие-то 
домыслы.

> В 2011 году при добавлении этой проверки было письмо с иллюстрацией 
> того,
> почему это плохо:
> https://lore.altlinux.org/devel/20111212145709.GE24413@altlinux.org/
Там никакая иллюстрация того, что плохо. Я согласен с аргументом про 
LD_LIBRARY_PATH (хотя он и не имеет смысла в рамках дистрибутива), но 
рассказ о том, что там как ищется при поиске библиотеки, не впечатляет.
У нас всё время такое ищется, что я каждый раз расстраиваюсь.
Мне кажется, из cat надо убрать setlocale() сначала, а потом 
рассказывать про оптимизации поиска библиотек.

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

Нам нужна простота и понятность, а не высокоумие.

-- 
С уважением,
Виталий Липатов,
ALT Linux Team


Подробная информация о списке рассылки Devel