LINUX.ORG.RU
ФорумTalks

libpng1.6.0

 , ,


0

1

http://sourceforge.net/mailarchive/forum.php?thread_name=CA+PdXcvCWOWajJH6W7g...

Объясните мне кто-нибудь, как можно удалять ф-ии из api и не менять soname? Почему существуют такие люди?

★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от dikiy

ок, допустим у меня в пакете было написано dependency: >= libpng1.5 ставлю я себе libpng1.6 и у меня всё благополучно крешится. Я не считаю это нормальным.

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от nanoolinux

ок, допустим у меня в пакете было написано dependency: >= libpng1.5

Кривые зависимости какого-то пакета - это не проблема ребят из libpng. Мне кажется, что хорошей практикой было бы ставить в dependency как >= так и <=, чтобы пользователь видел, что пакет тестировался только для этих версий внешней библиотеки и дальше уже ставил все на свой страх и риск, либо держал у себя несколько версий библиотеки.

trex6 ★★★★★
()
Ответ на: комментарий от trex6

Ну, в этом весь прикол этих циферок вообще-то.

это не проблема ребят из libpng

Это как раз проблема их криворукости на мой взгляд. Даже не могу себе представить сколько головной боли это добавляет ментейнерам пакетов.

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от trex6

В генте обычно такие вещи делаются слотами. Т.е. есть обновляемый в пределах совместимой версии пакет в слоте 1.5 и в слоте 1.6, они могут быть установлены одновременно и обновляются независимо. А пакету просто прописывают зависимость от libpng:1.5

vurdalak ★★★★★
()
Ответ на: комментарий от vurdalak

А как это решается на уровне фс? Допустим я линкую програму с какой-нибудь libastral. Какую версию выберет линкер если я ему добавлю -lastral в мейкфайл например?

Что-то я в шоке от бардака в опенсорсе современности…

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от nanoolinux

nanoolinux

Ну, в этом весь прикол этих циферок вообще-то.

это не проблема ребят из libpng

Это как раз проблема их криворукости на мой взгляд. Даже не могу себе представить сколько головной боли это добавляет ментейнерам пакетов.

все они нормально делают. Чего тебе не нравиться? Хочешь, чтобы >=1.5 работало всегда? Про обратную совместимость лучше тут промолчать.

dikiy ★★☆☆☆
()
Ответ на: комментарий от nanoolinux

Скорее всего выберет ту, на которую указывает симлинк libastral.so, но я не уверен точно. Я сишный код вручную почти не собирал и тем более не писал.

vurdalak ★★★★★
()
Ответ на: комментарий от nanoolinux

А как это решается на уровне фс? Допустим я линкую програму с какой-нибудь libastral. Какую версию выберет линкер если я ему добавлю -lastral в мейкфайл например?

добавь -l/usr/lib/atral.so.1.1.1 или как-то так. Должно работать.

Что-то я в шоке от бардака в опенсорсе современности…

как раз никакого бардака нет.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

Хочешь, чтобы >=1.5 работало всегда?

Бинго! И разве это плохо? Или сложно сделать?

Идея проста: слинковал код с 1.5 - работает со всеми до 1.99. Поменяли апи: релиз 2.0. Причём в „поменяли апи“ не входит его расширение например. Ну а баги есть баги, от них никуда не деться всё равно.

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от Reset

Правила хорошего тона требуют еще менять soname.

ну это такое дело. Можно и не менять. Сменить версию достаточно.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

Сменить версию достаточно.

Нет, за такое руки повыдёргивать хочется.

dinn ★★★★★
()
Ответ на: комментарий от nanoolinux

Хочешь, чтобы >=1.5 работало всегда?

Бинго! И разве это плохо? Или сложно сделать?

может и не сложно. Но кому-то не хочется/не считает нужным. Я к примеру не считаю такой подход чем-то ненормальным.

Идея проста: слинковал код с 1.5 - работает со всеми до 1.99. Поменяли апи: релиз 2.0. Причём в „поменяли апи“ не входит его расширение например. Ну а баги есть баги, от них никуда не деться всё равно.

хз. Так или иначе - это не является законом. Версионирование работает тоже ок. Другое дело, что можно договориться менять сразу мажорный номер, а не минорный, но это уже дело такое.

dikiy ★★☆☆☆
()
Ответ на: комментарий от nanoolinux

костыль на костыле костылём поганяет, да.

где ж костыль? Хочешь первую версию - линкуешь с /usr/lib/libastral.so.1

хочешь вторую - линкуешь с /usr/lib/libastral.so.2

что не нравится-то? Это смена soname костыль.

dikiy ★★☆☆☆
()
Ответ на: комментарий от nanoolinux

Идея проста: слинковал код с 1.5 - работает со всеми до 1.99.

так и линковал бы с /usr/lib/libpng.so.1.5

и все ок. Они API сменили, и версию на 1.6 поменяли. А если б не сменили, меняли бы в пределах 1.5.*

dikiy ★★☆☆☆
()
Последнее исправление: dikiy (всего исправлений: 1)
Ответ на: комментарий от dikiy

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

Reset ★★★★★
()
Ответ на: комментарий от Reset

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

ты ошибаешься. Есть три общепринятых уровня нумерации версий либ. И добавлять еще один уровень в виде soname нет никакой необходимости.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

Совершенно верно и это плохо. Этот мир для халтурщиков ©

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от trex6

Кривые зависимости какого-то пакета - это не проблема ребят из libpng.

Ребята из libpng создают кучу проблем окружающим за счет того, что не следуют спецификации http://semver.org/

Нарушена обратная совместимость => должен быть увеличен мажорный номер версии.

Manhunt ★★★★★
()
Ответ на: комментарий от dikiy

Чувак, ты даже не предсталяешь, насколько сильно ты себе противоречишь. Если не веришь - попробуй запустить третьекеды поверх qt4. Тебя ждёт большой сюрприз.

А потом еще возьми кеды 4.0.2 слинкованые с qt4.0.0 какой-нибудь и запусти их поверх qt4.8. Никаких сюрпризов ты не увидишь, потому-что в троллтехе не дураки и руки им отрывать не за что.

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от Manhunt

Ребята из libpng создают кучу проблем окружающим за счет того, что не следуют спецификации http://semver.org/

С моей стороны возражений больше нет.

dikiy ★★☆☆☆
()
Ответ на: комментарий от nanoolinux

Чувак, ты даже не предсталяешь, насколько сильно ты себе противоречишь. Если не веришь - попробуй запустить третьекеды поверх qt4. Тебя ждёт большой сюрприз.

я уже понял, где ошибся.

dikiy ★★☆☆☆
()
Ответ на: комментарий от nanoolinux

Даже не могу себе представить сколько головной боли это добавляет ментейнерам пакетов.

ну, просто никто не хочет тестировать свой билд с новой версией libpng -)

stevejobs ★★★★☆
()
Ответ на: комментарий от dikiy

и все ок. Они API сменили, и версию на 1.6 поменяли. А если б не сменили, меняли бы в пределах 1.5.*

Принято менять API в мажорной версии, а не в минорной или номере патча. Впрочем, дело можно было поправить в формате ELF, да только нет в нём отдельно версии ABI библиотеки.

quiet_readonly ★★★★
()
Последнее исправление: quiet_readonly (всего исправлений: 1)
Ответ на: комментарий от nanoolinux

Для этого придуманы такие инструменты как revdep-rebuild в генте например

leg0las ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.