From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.1 Message-ID: <4b9472ce-b97f-4e71-b8a4-95d6a52e983c@altlinux.org> Date: Fri, 15 Aug 2025 09:37:23 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: devel@lists.altlinux.org References: <6f69d759-c000-4cd3-a66d-94fcd2245fb3@basealt.ru> <4wyzpufia54i4ug27ncdfz6shm@iv-work> Content-Language: ru, en-US From: Anton Midyukov In-Reply-To: <4wyzpufia54i4ug27ncdfz6shm@iv-work> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: Re: [devel] =?utf-8?b?0L/QtdGA0LXRgNCw0LHQvtGC0LDQvdC90YvQuSDQtNC+?= =?utf-8?b?0LrRg9C80LXQvdGCIFNoYXJlZExpYnNQb2xpY3kgKHVwZGF0ZSAxKQ==?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Aug 2025 06:37:26 -0000 Archived-At: List-Archive: List-Post: 15.08.2025 09:35, Ivan A. Melnikov пишет: > On Fri, Aug 15, 2025 at 09:21:04AM +0300, Vitaly Chikunov wrote: >> On Thu, Aug 14, 2025 at 02:33:47PM +0400, Ivan A. Melnikov wrote: >>> On Thu, Aug 07, 2025 at 05:20:26PM +0300, Anton Farygin wrote: >>> [...] >>>> * Каждая несовместимая версия библиотеки должна быть в отдельном бинарном >>>> пакете. >>>> * Название пакета: `libfoo%abiversion` >>>> * Если имя библиотеки заканчивается на цифру, то используется подчёркивание: >>>> `libfoo_%abiversion` >>>> * В пакете не должно быть файлов с путями, не содержащими номер ABI. >>> >>> Странная формулировка. >>> >>> [...] >>>> == Как выбирать %abiversion == >>>> >>>> Если библиотека использует `soversion` — используем его как %abiversion. >>>> >>>> Если `soversion` отсутствует или нестабилен — используем: >>>> >>>> * возрастающее число: `libfoo0`, `libfoo1` >>>> * major-версию: `libqt3`, `libqt4` >>>> * major.minor: `libdb4.0`, `libdb4.1` >>>> * часть soname: `libcurl4`, `libflac8` >>> [...] >>>> * Если два пакета конфликтуют по путям, они не смогут сосуществовать — тогда >>>> старую версию нужно удалить, а все зависимости — пересобрать. >>> [...] >>> >>> >>> Здесь не очень понятно описано, что делать, если апстрим не задаёт >>> никакого soname для библиотеки. Ну то есть, очевидно, надо идти >>> в апстрим и заниматься просветительской работой, сопровождаемой >>> pull request'ами, но пока эта работа движется, библиотеку как-то >>> же можно запаковать. >>> >>> Чаще всего такие библиотеки окажутся установлеными во что-то >>> похожее на %_libdir/libfoo.so. Переименоввывать её странно, >>> да и динамический компоновщик кажется не найдёт такую >>> библиотеку по какому-то другому имени. Значит, в разных >>> сборках такой библиотеки будет один и тот же файл. >>> А это уже противоречит требованию предложенного policy. >>> >>> На мой взгляд, разумнее всего такие библиотеки паковать >>> в пакет с именем libfoo и надеятся на лучшее, так как >>> пакет libfooN, набирающий со временем кофликты >>> с libfoo0, libfoo1, ..., libfoo$((N-1)) технически >>> ничем не лучше. >>> >>> Можно конечно пытаться задать свой soname патчем. Это >>> решило бы многие проблемы, но есть опасность пересечься >>> со схемой формирования soname, которую рано или поздно >>> выберет апстрим. >> >> Soname необходимо и достаточно менять - если произошло обратно >> несовместимое изменение ABI. Как правило, об этом изменении лучше всего >> знает только апстрим. > > Это понятно, но не все апстримы одинаково квалифицированны. > > Собственно, всё моё письмо ставит вопрос -- а что делать, если > soname нет? > Прятать в подкаталог? -- best regards, Anton Midyukov