[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 ...)

Gleb Fotengauer-Malinovskiy glebfm на altlinux.org
Вт Июл 25 11:16:13 MSK 2023


On Tue, Jul 25, 2023 at 01:21:01AM +0300, Vitaly Lipatov wrote:
> Gleb Fotengauer-Malinovskiy писал(а) 24.7.23 23:18:
> > Hi,
> > 
> > On Mon, Jul 24, 2023 at 09:01:00AM +0000, Girar pender (fidel) wrote:
> >> #102 build 2.1.1-alt1 from /people/fidel/packages/libpaper.git fetched 
> >> at 2023-Jul-21 12:41:18
> >> #500 build 3.0.0-alt1.2 from /people/fidel/packages/boomaga.git 
> >> fetched at 2023-Jul-19 13:45:01
> >> #600 build 0.0.28-alt3 from /gears/x/xmlto.git fetched at 2023-Jul-19 
> >> 17:28:11 from sisyphus
> >> #620 build 1.1.28-alt2 from /people/fidel/packages/libpaper1.git 
> >> fetched at 2023-Jul-21 09:41:37
> > 
> > К сожалению, качество этого обновления оказалось очень низким. От
> > кандидата, проходящего join, конечно, не ожидается, что он не будет 
> > делать
> > таких ошибок, но для этого и нужен ментор.
> Спасибо за иллюстрацию того, что простое обновление

Я вот считаю, что это была довольно сложная задача.

> пакета со сменой 
> soname библиотеки выглядит невразумительно и неоправданно сложным 
> благодаря Shared Policy Libs.

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

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

Я не понимаю связи.

> > Я исправил всё, что увидел плохого, потому что очень не хотел видеть 
> > это в
> > Сизифе, который будет опубликован этой ночью.
> Спасибо за исправления! Попробуем сделать для Shared Libs Policy пример 
> на основе этой сиутации.
> 
> >>    - libpaper2: removed the 'Provides: libpaper' because it doesn't 
> >> make any
> >>      sense either.
> Если что, libpaper был нужен для тех пакетов, которые указывали 
> Requires: libpaper ради того, чтобы получить /usr/bin/paperconf. Если вы 
> его убрали, видимо, такие пакеты лишатся нужной им команды.

Частичный Provides: это тоже неправильно.  Тут можно только исправить
все такие пакеты.
Вообще, эту утилиту нужно паковать отдельно, так не делалось раньше, но
при обновлении libpaper стоило это исправить, я даже скажу, что всё ещё
не поздно.

> >>  [...]
> >     - libpaper2: added 'Conflicts: libpaper < 1.1.28-alt3' due to 
> > conflicting
> >       versions of the /usr/bin/paperconf utility.
> >     - Enabled strict mode for the verify-elf check.
> >     - Enabled rpm-build checks for unpackaged files and stripped files.
> >> #200 libpaper1 1.1.28-alt2 -> 1.1.28-alt3
> >>  Mon Jul 24 2023 Gleb F-Malinovskiy <glebfm на altlinux> 1.1.28-alt3
> >>  - NMU:
> >>    - Reverted the libpaper1 package name to libpaper to prevent an 
> >> unnecessary
> >>      relocation of the libpaper.so.1 soname provider.
> >>    - libpaper: added Provides: libpaper1 and Obsoletes: libpaper1 
> >> because
> >>      it has already been uploaded into the Sisyphus repository.
> >>    - Fixed the License: tag (GPL -> GPL-2.0-only).
> >>    - Fixed libpaper Group: tag (System/Libraries -> System/Legacy 
> >> libraries).
> > 
> > 1. Переименование бинарного пакета libpaper в libpaper1 было ошибкой
> > потому что таким образом soname libpaper.so.1 переезжает в другой 
> > пакет.
> А что плохого в том, что библиотека переезжает в другой пакет? Выглядит 
> как тайное знание.

https://www.altlinux.org/Shared_Libs_Policy
  «...можно столкнуться с багофичей apt: он плохо переносит переименования
  пакетов в случае, когда содержимое старой версии пакета переносится в
  пакет с новым именем, но при этом пакет со старым именем остаётся
  существовать».

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

Тем не менее, ты заапрувил такое переименование.

> > К тому же, переименованный пакет даже не содержит Provides+Obsoletes, 
> > т.е.
> > не будет обновлён, а при установке будет конфликтовать со старым 
> > пакетом.
> Вообще-то обновление проверялось, и старый пакет успешно заменялся:
>   $ sudo apt-repo test 325166
> Получено: 1 http://git.altlinux.org repo/325166/i586 release [1672B]
> Получено: 2 http://mirror.yandex.ru altlinux/Sisyphus/i586 release 
> [4238B]
> Получено 5910B за 0s (115kB/s).
> Найдено http://git.altlinux.org repo/325166/i586/task pkglist
> Найдено http://git.altlinux.org repo/325166/i586/task release
> Найдено http://mirror.yandex.ru altlinux/Sisyphus/i586/debuginfo pkglist
> Найдено http://mirror.yandex.ru altlinux/Sisyphus/i586/debuginfo release
> Чтение списков пакетов... Завершено
> Построение дерева зависимостей... Завершено
> Чтение списков пакетов... Завершено
> Построение дерева зависимостей... Завершено
> Последняя версия boomaga уже установлена.
> Последняя версия xmlto уже установлена.
> Следующие дополнительные пакеты будут установлены:
>    libpaper-devel texlive-dist texlive-fonts-sources texlive-texmf
> Следующие пакеты будут ОБНОВЛЕНЫ:
>    libpaper-devel
> Следующие пакеты будут ЗАМЕНЕНЫ:
>    libpaper (by libpaper2)
> Следующие НОВЫЕ пакеты будут установлены:
>    libpaper1 libpaper2 paper texlive-dist texlive-fonts-sources 
> texlive-texmf xmlto-tex
> 1 будет обновлено, 7 новых установлено, 1 пакетов будет заменено, 0 
> пакетов будет удалено и 315 не будет обновлено.
> Необходимо получить 65,5kB/746MB архивов.
> После распаковки потребуется дополнительно 1976MB дискового 
> пространства.
> Продолжить? [Y/n]

Да, если устанавливать оба пакета одновременно, то проблема, конечно, не
проявится.

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

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

> Тому, кто не написал, почему %_libdir в RPATH это плохо 
> на странице
> https://www.altlinux.org/ProblemWithVerifyELFAndRPATH
> ?

Похоже, эта статья по большей части была написана вообще до появления
проверки про стандартные пути.  Хороший повод её обновить.

> Возможно, что это я один не знаю, что такого в %_libdir в RPATH, а 
> возможно, что знает только 3 человека из Тим. Проверять будем?

Те или иные проверки rpath существуют в Альте с 2002 года, а проверка на
наличие стандартных каталогов с 2011 года.  Я удивлён, что ты не
поинтересовался за столько времени, но учить кандидата в Team не
интересоваться такими вещами это совсем другое дело.

В 2011 году при добавлении этой проверки было письмо с иллюстрацией того,
почему это плохо:
https://lore.altlinux.org/devel/20111212145709.GE24413@altlinux.org/

-- 
glebfm
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 801 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20230725/8afa5e86/attachment-0001.bin>


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