ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Проблема при обновлении пакета , в котором сменился soname
@ 2006-05-16 11:24 Vitaly Lipatov
  2006-05-16 11:46 ` Sergey Vlasov
  0 siblings, 1 reply; 7+ messages in thread
From: Vitaly Lipatov @ 2006-05-16 11:24 UTC (permalink / raw)
  To: devel

В пакете сначала была версия so.1 (ссылка на so.1.1.0),
а в новой сборке версия изменилась (so.1 стало указывать
на so.1.0.0). При обновлении такого пакета получается битая 
ссылка (so.1 продолжает указывать на so.1.1.0, тогда как должна 
на so.1.0.0).
Что-то не так, а что - не понимаю. Подскажите пожалуйста.

ldconfig вроде обычным образом вызывается:
%post
%post_ldconfig

%postun
%postun_ldconfig

-- 
Lav
Виталий Липатов
Санкт-Петербург
GNU! ALT Linux Team! WINE! LaTeX! LyX! http://freesource.info


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Проблема при обновлении пакета , в котором сменился soname
  2006-05-16 11:24 [devel] Проблема при обновлении пакета , в котором сменился soname Vitaly Lipatov
@ 2006-05-16 11:46 ` Sergey Vlasov
  2006-05-16 14:32   ` Sergey Vlasov
  2006-05-16 15:59   ` [devel] Проблема при обновлении пакета , " Vitaly Lipatov
  0 siblings, 2 replies; 7+ messages in thread
From: Sergey Vlasov @ 2006-05-16 11:46 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1451 bytes --]

On Tue, May 16, 2006 at 03:24:42PM +0400, Vitaly Lipatov wrote:
> В пакете сначала была версия so.1 (ссылка на so.1.1.0),
> а в новой сборке версия изменилась (so.1 стало указывать
> на so.1.0.0).

Вообще-то как раз soname в данном случае не менялось, а вот изменение
версии выглядит весьма странно.  Downgrade?  Или кто-то наконец научился
пользоваться libtool?

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

> При обновлении такого пакета получается битая ссылка (so.1 продолжает
> указывать на so.1.1.0, тогда как должна на so.1.0.0).

ldconfig при наличии нескольких библиотек с одинаковым soname выбирает из
них библиотеку с наибольшей версией.  В данном случае это правило даёт
неверный результат.

> Что-то не так, а что - не понимаю. Подскажите пожалуйста.
> 
> ldconfig вроде обычным образом вызывается:
> %post
> %post_ldconfig
> 
> %postun
> %postun_ldconfig

Во время выполнения %postun файлы предыдущих версий пакета ещё не удалены,
а в данном случае ldconfig выбирает библиотеку из старой версии.

Можно добавить %triggerpostun на предыдущие версии пакета, в котором ещё
раз вызвать %postun_ldconfig; при этом ссылка будет исправлена, но между
удалением старых файлов и выполнением %triggerpostun будет промежуток
времени, когда ссылка будет указывать на несуществующий файл.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Проблема при обновлении пакета , в котором сменился soname
  2006-05-16 11:46 ` Sergey Vlasov
@ 2006-05-16 14:32   ` Sergey Vlasov
  2006-05-16 15:28     ` [devel] Проблема при обновлении пакета, " Dmitry V. Levin
  2006-05-16 15:59   ` [devel] Проблема при обновлении пакета , " Vitaly Lipatov
  1 sibling, 1 reply; 7+ messages in thread
From: Sergey Vlasov @ 2006-05-16 14:32 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1434 bytes --]

On Tue, May 16, 2006 at 03:46:31PM +0400, Sergey Vlasov wrote:
> ldconfig при наличии нескольких библиотек с одинаковым soname выбирает из
> них библиотеку с наибольшей версией.  В данном случае это правило даёт
> неверный результат.
[...]
> Во время выполнения %postun файлы предыдущих версий пакета ещё не удалены,
> а в данном случае ldconfig выбирает библиотеку из старой версии.
> 
> Можно добавить %triggerpostun на предыдущие версии пакета, в котором ещё
> раз вызвать %postun_ldconfig; при этом ссылка будет исправлена, но между
> удалением старых файлов и выполнением %triggerpostun будет промежуток
> времени, когда ссылка будет указывать на несуществующий файл.

Поправка: в триггере придётся писать %post_ldconfig - %postun_ldconfig
определяет, что производится не удаление, а обновление пакета, и при
обновлении просто ничего не делает (поскольку предполагается, что
переустановка ссылки на новую версию библиотеки была выполнена в
%post_ldconfig, запущенном в post-скрипте новой версии).

Кстати, такое поведение %postun_ldconfig может приводить к проблемам при
необходимости по каким-либо причинам откатиться на старую версию пакета:
%post_ldconfig в устанавливаемой старой версии всё равно ставит ссылку на
новую версию библиотеки, %postun_ldconfig в удаляемой новой версии ничего
не делает, в результате ссылка остаётся битой, и для исправления ситуации
приходится вызывать ldconfig вручную.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Проблема при обновлении пакета, в котором сменился soname
  2006-05-16 14:32   ` Sergey Vlasov
@ 2006-05-16 15:28     ` Dmitry V. Levin
  2006-05-16 15:33       ` Alexey Tourbin
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry V. Levin @ 2006-05-16 15:28 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1693 bytes --]

On Tue, May 16, 2006 at 06:32:41PM +0400, Sergey Vlasov wrote:
> On Tue, May 16, 2006 at 03:46:31PM +0400, Sergey Vlasov wrote:
> > ldconfig при наличии нескольких библиотек с одинаковым soname выбирает из
> > них библиотеку с наибольшей версией.  В данном случае это правило даёт
> > неверный результат.
> [...]
> > Во время выполнения %postun файлы предыдущих версий пакета ещё не удалены,
> > а в данном случае ldconfig выбирает библиотеку из старой версии.
> > 
> > Можно добавить %triggerpostun на предыдущие версии пакета, в котором ещё
> > раз вызвать %postun_ldconfig; при этом ссылка будет исправлена, но между
> > удалением старых файлов и выполнением %triggerpostun будет промежуток
> > времени, когда ссылка будет указывать на несуществующий файл.
> 
> Поправка: в триггере придётся писать %post_ldconfig - %postun_ldconfig
> определяет, что производится не удаление, а обновление пакета, и при
> обновлении просто ничего не делает (поскольку предполагается, что
> переустановка ссылки на новую версию библиотеки была выполнена в
> %post_ldconfig, запущенном в post-скрипте новой версии).
> 
> Кстати, такое поведение %postun_ldconfig может приводить к проблемам при
> необходимости по каким-либо причинам откатиться на старую версию пакета:
> %post_ldconfig в устанавливаемой старой версии всё равно ставит ссылку на
> новую версию библиотеки, %postun_ldconfig в удаляемой новой версии ничего
> не делает, в результате ссылка остаётся битой, и для исправления ситуации
> приходится вызывать ldconfig вручную.

Да, конечно.  Можно отключить эту оптимизацию в %postun_ldconfig, если
проблема кажется реальной.  Какие ещё есть предложения?


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Проблема при обновлении пакета, в котором сменился soname
  2006-05-16 15:28     ` [devel] Проблема при обновлении пакета, " Dmitry V. Levin
@ 2006-05-16 15:33       ` Alexey Tourbin
  2006-05-18 10:17         ` Michael Shigorin
  0 siblings, 1 reply; 7+ messages in thread
From: Alexey Tourbin @ 2006-05-16 15:33 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1637 bytes --]

On Tue, May 16, 2006 at 07:28:10PM +0400, Dmitry V. Levin wrote:
> > > Во время выполнения %postun файлы предыдущих версий пакета ещё не удалены,
> > > а в данном случае ldconfig выбирает библиотеку из старой версии.
> > > 
> > > Можно добавить %triggerpostun на предыдущие версии пакета, в котором ещё
> > > раз вызвать %postun_ldconfig; при этом ссылка будет исправлена, но между
> > > удалением старых файлов и выполнением %triggerpostun будет промежуток
> > > времени, когда ссылка будет указывать на несуществующий файл.
> > 
> > Поправка: в триггере придётся писать %post_ldconfig - %postun_ldconfig
> > определяет, что производится не удаление, а обновление пакета, и при
> > обновлении просто ничего не делает (поскольку предполагается, что
> > переустановка ссылки на новую версию библиотеки была выполнена в
> > %post_ldconfig, запущенном в post-скрипте новой версии).
> > 
> > Кстати, такое поведение %postun_ldconfig может приводить к проблемам при
> > необходимости по каким-либо причинам откатиться на старую версию пакета:
> > %post_ldconfig в устанавливаемой старой версии всё равно ставит ссылку на
> > новую версию библиотеки, %postun_ldconfig в удаляемой новой версии ничего
> > не делает, в результате ссылка остаётся битой, и для исправления ситуации
> > приходится вызывать ldconfig вручную.
> 
> Да, конечно.  Можно отключить эту оптимизацию в %postun_ldconfig, если
> проблема кажется реальной.  Какие ещё есть предложения?

Проблема кажется реальной.  Я время от времени тестирую новые сборки
"вижвую" и потом иногда откатываю на старые сборки.  Наступал на эти
грабли несколько раз.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Проблема при обновлении пакета , в котором сменился soname
  2006-05-16 11:46 ` Sergey Vlasov
  2006-05-16 14:32   ` Sergey Vlasov
@ 2006-05-16 15:59   ` Vitaly Lipatov
  1 sibling, 0 replies; 7+ messages in thread
From: Vitaly Lipatov @ 2006-05-16 15:59 UTC (permalink / raw)
  To: ALT Devel discussion list

On Tuesday 16 May 2006 15:46, Sergey Vlasov wrote:
> On Tue, May 16, 2006 at 03:24:42PM +0400, Vitaly Lipatov wrote:
> > В пакете сначала была версия so.1 (ссылка на so.1.1.0),
> > а в новой сборке версия изменилась (so.1 стало указывать
> > на so.1.0.0).
>
> Вообще-то как раз soname в данном случае не менялось, а вот
> изменение версии выглядит весьма странно.  Downgrade?  Или
> кто-то наконец научился пользоваться libtool?
>
> Надо бы внимательно исследовать этот вопрос - возможно, это
> ошибка в upstream, тогда лучше исправить её, чтобы получить
> правильную версию, а не вставлять костыли в спек.
upstream - это я, вот и пытаюсь исследовать.

> > При обновлении такого пакета получается битая ссылка (so.1
> > продолжает указывать на so.1.1.0, тогда как должна на
> > so.1.0.0).
>
> ldconfig при наличии нескольких библиотек с одинаковым soname
> выбирает из них библиотеку с наибольшей версией.  В данном
> случае это правило даёт неверный результат.
То есть можно констатировать, что downgrade для soname чреват 
проблемами? Я слышал, но не понял сразу что это ко мне 
относится :)

> Во время выполнения %postun файлы предыдущих версий пакета ещё
> не удалены, а в данном случае ldconfig выбирает библиотеку из
> старой версии.
>
> Можно добавить %triggerpostun на предыдущие версии пакета, в
> котором ещё раз вызвать %postun_ldconfig; при этом ссылка
> будет исправлена, но между удалением старых файлов и
> выполнением %triggerpostun будет промежуток времени, когда
> ссылка будет указывать на несуществующий файл.
Спасибо за советы, всё ясно.


-- 
Lav
Виталий Липатов
Санкт-Петербург
GNU! ALT Linux Team! WINE! LaTeX! LyX! http://freesource.info


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Проблема при обновлении пакета, в котором сменился soname
  2006-05-16 15:33       ` Alexey Tourbin
@ 2006-05-18 10:17         ` Michael Shigorin
  0 siblings, 0 replies; 7+ messages in thread
From: Michael Shigorin @ 2006-05-18 10:17 UTC (permalink / raw)
  To: ALT Devel discussion list

On Tue, May 16, 2006 at 07:33:29PM +0400, Alexey Tourbin wrote:
> > Да, конечно.  Можно отключить эту оптимизацию в
> > %postun_ldconfig, если проблема кажется реальной.  Какие ещё
> > есть предложения?

Выставлять что-то при --oldpackage, на что реагировать в
%postun_ldconfig?

> Проблема кажется реальной.  Я время от времени тестирую новые
> сборки "вижвую" и потом иногда откатываю на старые сборки.
> Наступал на эти грабли несколько раз.

"Так вот оно что было".
+1

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2006-05-18 10:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-16 11:24 [devel] Проблема при обновлении пакета , в котором сменился soname Vitaly Lipatov
2006-05-16 11:46 ` Sergey Vlasov
2006-05-16 14:32   ` Sergey Vlasov
2006-05-16 15:28     ` [devel] Проблема при обновлении пакета, " Dmitry V. Levin
2006-05-16 15:33       ` Alexey Tourbin
2006-05-18 10:17         ` Michael Shigorin
2006-05-16 15:59   ` [devel] Проблема при обновлении пакета , " Vitaly Lipatov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git