On Tue, Jun 23, 2009 at 10:20:56AM +0400, Alexey Tourbin wrote: > On Mon, Jun 22, 2009 at 10:54:43PM +0000, Dmitry V. Levin wrote: > > ALT libpng-1.2.5-alt3 introduced libpng12 versioning (at 04.05.2004). > > Upstream libpng-1.2.8 introduced similar libpng12 versioning (at 03.12.2004) > > with different interface name. This difference is critical, it makes ALT > > and upstream libpng12 totally incompatible. > > > > By popular demand, I change libpng12 versioning to match upstream > > versioning for this library. As this versioning change is totally > > incompatible change, it costs as high as soname change. That is, > > all libpng12 clients must be rebuilt. > > Это даже хуже, чем soname change. В случае soname change можно создать > compat пакет со старым soname, а здесь это невозможно. Получается total > disaster: http://git.altlinux.org/tasks/8392/task/log -- надо > пересобрать более 200 пакетов. Даже если воспользоваться NMU > с административными привилегиями, что не представляется feasible даже > с административными привилегиями, то такая вещь, как частичное > обновление пакетов, полностью отпадает. Будет эффект dist-upgrade. > > Очень некрасиво получается. Как говорил Суворов, на такой штурм можно > решиться только один раз в жизни. :) Да, это действительно сложнее воплотить, чем soname change. Есть возможность проверить, чем подкреплён этот "popular demand". Хватит ли его на то, чтобы довести сборку task #8392 до Сизифа? > Неужели ничего нельзя придумать? В принципе ведь существует возможность > сохранить старый интерфейс: > > png_foo@@PNG12_0 (новый интерфейс по умолчанию) > png_foo@PNG_12 (старый интерфейс для совместимости) В libpng12-1.2.37-alt1 и предыдущих сборках было наоборот, однако это ничему не помогало, ибо экспортируемый символ не может принадлежать более чем одному интерфейсу. > Но мне не понятно, можно ли это сделать без перекраивания исходников > libpng на уровне каждого экспортируемого символа. Боюсь, что нельзя. :( Совершать удвоение экспортируемых символов ради совместимости я не хочу, других вариантов не видно. -- ldv