From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 14 Aug 2025 22:31:03 +0300 From: Vitaly Chikunov To: ALT Linux Team development discussions Message-ID: <6hisnd3upr4vzsqxcqiakpe4uz@altlinux.org> References: <6f69d759-c000-4cd3-a66d-94fcd2245fb3@basealt.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [devel] =?koi8-r?b?0MXSxdLBws/Uwc7O2cogxM/L1c3FztQgU2hhcmVkTGli?= =?koi8-r?b?c1BvbGljeSAodXBkYXRlIDEp?= 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: Thu, 14 Aug 2025 19:31:04 -0000 Archived-At: List-Archive: List-Post: 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. > > Странная формулировка. Более того, это бесполезное требование так как у нас зависимости на soname. > > [...] > > == Как выбирать %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, которую рано или поздно > выберет апстрим. > > В общем, я не могу ничего рекомендовать для такой ситуации, > однако мне кажется SharedLibsPolicy должна явно описать > случай отсутствия soname. > > -- > wbr, > iv m. > _______________________________________________ > Devel mailing list > Devel@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/devel