ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Магия хэшей-кодов в зависимостях разделяемых библиотек
@ 2012-04-06 11:21 Alexey Morozov
  2012-04-06 19:35 ` Sergey Vlasov
  0 siblings, 1 reply; 6+ messages in thread
From: Alexey Morozov @ 2012-04-06 11:21 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Здравствуйте!

Имеем http://git.altlinux.org/tasks/index/sisyphus/failed/68729/build/400/i586/log

Пакет (kdevelop) собирается хорошо, однако, при попытке его установки происходит ошибка
libkdev4cmakecommon.so>= set:mgEG3imLZ9Xjq7yCq68U5lK6pjHRJ8oUXGqZJRXc2OibNKQlZo1KH7X4IvF56TUonEZ8VyAe42LDX8gS76xyryImKSxM66oUEQqGfxsNqO30J1eOmGA6Z0yLLnB5A6Ke0zGC0

а собирающийся _в рамках этой же сборки_ kdevelop-libs предоставляет:
Provides: libkdev4cmakecommon.so = set:mdRMryV7HjpwPhy64p0ghRnTlb8StEYCDkJK3VCRdPewbZwKSk3s1s1nIJcCeI7rlrPmMQFUIdFZq1mRaCSpngDStECW090bGLHeQZshqrvZKwyceLQ8OuKdl4qj3vunJemTQM5lpj5sHKdsqK3KU8DZx29eu8zLImfymlzwXWruOvNeK5vLTLCL5dIDZqJASEY32SI9fbdNK9QRo5MYmgxbY0w4wmhWZ83SRZvAwxV1gN3bCWBBiqCAsNkVQIPO3cTn6rE6Nqujc0OUxirgnCOBbi7iD4PmCssWAfs226GBl7SZywPVE4h8ZogtwqePl3xfh9t3iSSCskFIhSIy1IIrT76MaGhNuNKf7TXu4He1lsVeGHCb3PIibZerqKKGKPKm912P7JRsgHAg2QLG84fjkdQhRNic8G2Kv6EautmL4b7VkMgMEzvNG0e0bESWUDuOFQZF53ovgYxbnIRb0wrAjTLXDy1GQqOFx6OZk4WWU8A4BkAcUX7ObUkGZec3NZK5tjkb0GYdciwMz2zj2b4D8F5lHAbxgAgVIbdcMyNqZbiYfRYdvKcZbFMZn0NgZ9oJoL83oc1gCwkTOnZo8Mwme7366kdmeuq0BGr6lMInZtxRLR7U9FU9V5PTzn0ru90A7C8a9UZhf2cboTlnzZwy4x8tyuE8x1ojhLy5kc2p6IvqiJHAhznO38V1Du

и так со всеми .so-шками, входящими в kdevelop-libs.

Товарищи учёные, как говорится, объясните явление!

P.S. Два дня назад в локальном хэшере это, кажется, собиралось и даже дист-агрейдилось.




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

* Re: [devel] Магия хэшей-кодов в зависимостях разделяемых библиотек
  2012-04-06 11:21 [devel] Магия хэшей-кодов в зависимостях разделяемых библиотек Alexey Morozov
@ 2012-04-06 19:35 ` Sergey Vlasov
  2012-04-07  4:09   ` Alexey Morozov
  0 siblings, 1 reply; 6+ messages in thread
From: Sergey Vlasov @ 2012-04-06 19:35 UTC (permalink / raw)
  To: devel

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

On Fri, Apr 06, 2012 at 06:21:57PM +0700, Alexey Morozov wrote:
> Имеем http://git.altlinux.org/tasks/index/sisyphus/failed/68729/build/400/i586/log
> 
> Пакет (kdevelop) собирается хорошо, однако, при попытке его установки происходит ошибка
> libkdev4cmakecommon.so>= set:mgEG3imLZ9Xjq7yCq68U5lK6pjHRJ8oUXGqZJRXc2OibNKQlZo1KH7X4IvF56TUonEZ8VyAe42LDX8gS76xyryImKSxM66oUEQqGfxsNqO30J1eOmGA6Z0yLLnB5A6Ke0zGC0
> 
> а собирающийся _в рамках этой же сборки_ kdevelop-libs предоставляет:
> Provides: libkdev4cmakecommon.so = set:mdRMryV7HjpwPhy64p0ghRnTlb8StEYCDkJK3VCRdPewbZwKSk3s1s1nIJcCeI7rlrPmMQFUIdFZq1mRaCSpngDStECW090bGLHeQZshqrvZKwyceLQ8OuKdl4qj3vunJemTQM5lpj5sHKdsqK3KU8DZx29eu8zLImfymlzwXWruOvNeK5vLTLCL5dIDZqJASEY32SI9fbdNK9QRo5MYmgxbY0w4wmhWZ83SRZvAwxV1gN3bCWBBiqCAsNkVQIPO3cTn6rE6Nqujc0OUxirgnCOBbi7iD4PmCssWAfs226GBl7SZywPVE4h8ZogtwqePl3xfh9t3iSSCskFIhSIy1IIrT76MaGhNuNKf7TXu4He1lsVeGHCb3PIibZerqKKGKPKm912P7JRsgHAg2QLG84fjkdQhRNic8G2Kv6EautmL4b7VkMgMEzvNG0e0bESWUDuOFQZF53ovgYxbnIRb0wrAjTLXDy1GQqOFx6OZk4WWU8A4BkAcUX7ObUkGZec3NZK5tjkb0GYdciwMz2zj2b4D8F5lHAbxgAgVIbdcMyNqZbiYfRYdvKcZbFMZn0NgZ9oJoL83oc1gCwkTOnZo8Mwme7366kdmeuq0BGr6lMInZtxRLR7U9FU9V5PTzn0ru90A7C8a9UZhf2cboTlnzZwy4x8tyuE8x1ojhLy5kc2p6IvqiJHAhznO38V1Du
> 
> и так со всеми .so-шками, входящими в kdevelop-libs.
> 
> Товарищи учёные, как говорится, объясните явление!

Создаётся впечатление, что apt запутывается в имеющейся в этом задании
мешанине пакетов, содержащих вроде бы одни и те же библиотеки, но
разных версий (kdevelop-libs, kdevelop-pre4.4-libs, и ещё откуда-то
берётся kdevelop-unstable-libs).  Возможно, поможет добавление в пакет
kdevelop-base явной зависимости на kdevelop-libs вида

  Requires: %name-libs = %epoch:%version-%release

(и аналогично в kdevelop-pre4.4-base).  Вообще rpm по поводу
отсутствия этой зависимости выдаёт предупреждения:

warning: kdevelop-base: non-strict dependency on kdevelop-libs

warning: kdevelop-pre4.4-base: non-strict dependency on kdevelop-pre4.4-libs

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

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

* Re: [devel] Магия хэшей-кодов в зависимостях разделяемых библиотек
  2012-04-06 19:35 ` Sergey Vlasov
@ 2012-04-07  4:09   ` Alexey Morozov
  2012-04-07 14:03     ` Sergey Vlasov
  0 siblings, 1 reply; 6+ messages in thread
From: Alexey Morozov @ 2012-04-07  4:09 UTC (permalink / raw)
  To: devel

Доброго утра!

On 6 апреля 2012 23:35:12 Sergey Vlasov wrote:
> Создаётся впечатление, что apt запутывается в имеющейся в этом задании
> мешанине пакетов, содержащих вроде бы одни и те же библиотеки, но
> разных версий (kdevelop-libs, kdevelop-pre4.4-libs, и ещё откуда-то
> берётся kdevelop-unstable-libs).  Возможно, поможет добавление в пакет
> kdevelop-base явной зависимости на kdevelop-libs вида
> 
>   Requires: %name-libs = %epoch:%version-%release

Ну, после подчистки задания (оставил только kdevelop-4.3.0 & Co) и выставления
явной зависимости на kdevelop-libs, диагностика при инсталляции несколько
изменилась, теперь я вообще отказываюсь что-либо понимать :)

При попытке автоматической инсталляции -debuginfo пакетов выдаётся такое
http://git.altlinux.org/tasks/index/sisyphus/failed/68729/logs/events.6.1.log :

The following extra packages will be installed:
  kdevelop-base kdevelop-common kdevelop-libs kdevelop-okteta
  kdevelop-okteta-debuginfo kdevplatform kdevplatform-libs
  kdevplatform-libs-debuginfo
The following packages will be REPLACED:
  kdevplatform-unstable-common (by kdevplatform-libs)
The following packages will be REMOVED:
  libkdevplatformdebugger4-unstable libkdevplatformdebugger4-unstable-debuginfo
  libkdevplatformdocumentation4-unstable
  libkdevplatformdocumentation4-unstable-debuginfo
  libkdevplatforminterfaces4-unstable
  libkdevplatforminterfaces4-unstable-debuginfo
  libkdevplatformlanguage4-unstable libkdevplatformlanguage4-unstable-debuginfo
  libkdevplatformoutputview4-unstable
  libkdevplatformoutputview4-unstable-debuginfo
  libkdevplatformproject4-unstable libkdevplatformproject4-unstable-debuginfo
  libkdevplatformshell4-unstable libkdevplatformshell4-unstable-debuginfo
  libkdevplatformutil4-unstable libkdevplatformutil4-unstable-debuginfo
  libkdevplatformvcs4-unstable libkdevplatformvcs4-unstable-debuginfo
  libsublime4-unstable libsublime4-unstable-debuginfo
The following NEW packages will be installed:
  kdevelop-base kdevelop-common kdevelop-libs kdevelop-okteta
  kdevelop-okteta-debuginfo kdevplatform kdevplatform-libs
  kdevplatform-libs-debuginfo
0 upgraded, 8 newly installed, 1 replaced, 20 removed and 0 not upgraded.
Need to get 0B/17.1MB of archives.
After unpacking 15.1MB of additional disk space will be used.

В общем, пока как и ожидалось. Однако, следом:
Executing RPM (hsh-rpmi-print-files -e -r /tmp/.private/bee9/hasher/aptbox --nodeps)...
hsh-rpmi-print-files: cannot erase packages: libkdevplatformshell4-unstable-debuginfo libsublime4-unstable-debuginfo libkdevplatformshell4-unstable libsublime4-unstable libkdevplatformvcs4-unstable-debuginfo libkdevplatformvcs4-unstable libkdevplatformproject4-unstable-debuginfo libkdevplatformlanguage4-unstable-debuginfo libkdevplatformdebugger4-unstable-debuginfo libkdevplatformutil4-unstable-debuginfo libkdevplatformproject4-unstable libkdevplatformlanguage4-unstable libkdevplatformdebugger4-unstable libkdevplatformutil4-unstable libkdevplatformoutputview4-unstable-debuginfo libkdevplatformoutputview4-unstable libkdevplatformdocumentation4-unstable-debuginfo libkdevplatforminterfaces4-unstable-debuginfo libkdevplatformdocumentation4-unstable libkdevplatforminterfaces4-unstable

Чтобы rpm -e --nodeps не выносил пакеты, а довольствовался лишь мозгом - такое,
признаться, вижу впервые :)

АМ

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

* Re: [devel] Магия хэшей-кодов в зависимостях разделяемых библиотек
  2012-04-07  4:09   ` Alexey Morozov
@ 2012-04-07 14:03     ` Sergey Vlasov
  2012-04-07 15:38       ` Alexey Morozov
  0 siblings, 1 reply; 6+ messages in thread
From: Sergey Vlasov @ 2012-04-07 14:03 UTC (permalink / raw)
  To: devel

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

On Sat, Apr 07, 2012 at 11:09:50AM +0700, Alexey Morozov wrote:
> Ну, после подчистки задания (оставил только kdevelop-4.3.0 & Co) и выставления
> явной зависимости на kdevelop-libs, диагностика при инсталляции несколько
> изменилась, теперь я вообще отказываюсь что-либо понимать :)
> 
> При попытке автоматической инсталляции -debuginfo пакетов выдаётся такое
> http://git.altlinux.org/tasks/index/sisyphus/failed/68729/logs/events.6.1.log :
[...]
> Executing RPM (hsh-rpmi-print-files -e -r /tmp/.private/bee9/hasher/aptbox --nodeps)...
> hsh-rpmi-print-files: cannot erase packages: libkdevplatformshell4-unstable-debuginfo libsublime4-unstable-debuginfo libkdevplatformshell4-unstable libsublime4-unstable libkdevplatformvcs4-unstable-debuginfo libkdevplatformvcs4-unstable libkdevplatformproject4-unstable-debuginfo libkdevplatformlanguage4-unstable-debuginfo libkdevplatformdebugger4-unstable-debuginfo libkdevplatformutil4-unstable-debuginfo libkdevplatformproject4-unstable libkdevplatformlanguage4-unstable libkdevplatformdebugger4-unstable libkdevplatformutil4-unstable libkdevplatformoutputview4-unstable-debuginfo libkdevplatformoutputview4-unstable libkdevplatformdocumentation4-unstable-debuginfo libkdevplatforminterfaces4-unstable-debuginfo libkdevplatformdocumentation4-unstable libkdevplatforminterfaces4-unstable
> 
> Чтобы rpm -e --nodeps не выносил пакеты, а довольствовался лишь мозгом - такое,
> признаться, вижу впервые :)

На самом деле hsh-rpmi-print-files в принципе не может удалять пакеты
и отказывается делать это.  Вопрос в том, откуда на этом шаге вообще
может возникать запрос на удаление пакетов.

Вообще при проверке check-install установка пакетов в chroot с базовой
системой выполняется в два этапа:

1) Устанавливаются все пакеты, которые требуются по зависимостям для у
   становки тестируемого пакета, за исключением самого этого пакета:

     hsh-install -- "$N=$EVR" "$N-"

2) Устанавливается сам тестируемый пакет:

     hsh-install -- "$N=$EVR"

В данном случае при выполнении второй установки обнаруживается, что во
время первой установки в chroot оказались установлены пакеты
*-unstable не от той версии kdevplatform, которая нужна (да и вместо
kdevplatform-libs установился kdevplatform-unstable-common).  Каким
образом такое могло произойти - apt его знает.

Насколько я понял, все эти пакеты *-unstable предполагалось в конечном
итоге удалить из Сизифа; тогда, возможно, проще будет сначала их
удалить явным образом, а потом уже собирать новую версию (попробовать
сначала в одном задании, если не пройдёт с похожими ошибками -
придётся сначала выносить отдельным заданием).

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

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

* Re: [devel] Магия хэшей-кодов в зависимостях разделяемых библиотек
  2012-04-07 14:03     ` Sergey Vlasov
@ 2012-04-07 15:38       ` Alexey Morozov
  2012-04-07 18:52         ` Sergey Vlasov
  0 siblings, 1 reply; 6+ messages in thread
From: Alexey Morozov @ 2012-04-07 15:38 UTC (permalink / raw)
  To: devel

Добрый вечер!

On 7 апреля 2012 18:03:56 Sergey Vlasov wrote:

> Насколько я понял, все эти пакеты *-unstable предполагалось в конечном
> итоге удалить из Сизифа; тогда, возможно, проще будет сначала их
> удалить явным образом, а потом уже собирать новую версию (попробовать
> сначала в одном задании, если не пройдёт с похожими ошибками -
> придётся сначала выносить отдельным заданием).

Ну, здесь есть два аспекта. Первое - я не совсем понимаю, как удалять пакеты 
из Сизифа:

for dp in libkdevplatformshell4-unstable-debuginfo \
   libsublime4-unstable-debuginfo libkdevplatformvcs4-unstable-debuginfo \
   libkdevplatformproject4-unstable-debuginfo \
   libkdevplatformlanguage4-unstable-debuginfo \
   libkdevplatformdebugger4-unstable-debuginfo \
   libkdevplatformutil4-unstable-debuginfo \
   libkdevplatformoutputview4-unstable-debuginfo \
   libkdevplatformdocumentation4-unstable-debuginfo \
   libkdevplatforminterfaces4-unstable-debuginfo;
do
   ssh git.alt build del $dp;
done

new task #68928: owner=morozov repo=sisyphus
girar-task add: Invalid request to delete nonexistent package 
`libkdevplatformshell4-unstable-debuginfo' from `sisyphus'
removing task #68928 ... done
new task #68929: owner=morozov repo=sisyphus
girar-task add: Invalid request to delete nonexistent package `libsublime4-
unstable-debuginfo' from `sisyphus'
removing task #68929 ... done
new task #68930: owner=morozov repo=sisyphus
girar-task add: Invalid request to delete nonexistent package 
`libkdevplatformvcs4-unstable-debuginfo' from `sisyphus'
removing task #68930 ... done

Я так понимаю, удалить отдельные подпакеты нельзя? И как это сделать в рамках 
одной транзакции со сборкой?

Второй момент связан вот с чем. Да, действительно, схема со стабильным и 
нестабильным kdevelop оказалась не слишком удачной, и в 4.3.0 я хотел удалить 
{kdevelop,kdevplatform}-unstable-*. Однако, совсем отказываться от пре-релизов 
тоже не хотелось бы, в 4.3.60+ уже сейчас есть всякие заманушки. Кроме этого, 
я считаю важным, что установленные пакеты пре-релизных версий не должны 
автоматически апгрейдиться до следующего пре-релиза. Например, если у человека 
установлен, например, пакет kdevelop-4.2.80 (с соотв. kdevplatform), то при 
появлении в репозитории kdevelop-4.3.0 и kdevelop-4.3.60 dist-upgrade должен 
происходить до 4.3.0, а не до 4.3.60 (и в локальном хэшере так и было, чес-
слово :)).

Поэтому я решил, что нестабильные сборки будут нести в имени некоторый 
уникальный для данной нестабильной ветки суффикс (для 4.3.60+ это -pre4.4), а 
следующая стабильная версия, когда она будет готова, должна такие пакеты 
обсолетить. Помимо этого, соотв. пакеты должны "во веки веков" обсолетить ещё 
и {kdevelop,kdevplatform}-unstable

Поэтому переводить ситуацию целиком на ручное управление очень не хочется. Но, 
с другой стороны, запихнуть в Sisyphus стабильный kdevelop тоже актуально.

С уважением,
Алексей Морозов

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

* Re: [devel] Магия хэшей-кодов в зависимостях разделяемых библиотек
  2012-04-07 15:38       ` Alexey Morozov
@ 2012-04-07 18:52         ` Sergey Vlasov
  0 siblings, 0 replies; 6+ messages in thread
From: Sergey Vlasov @ 2012-04-07 18:52 UTC (permalink / raw)
  To: devel

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

On Sat, Apr 07, 2012 at 10:38:54PM +0700, Alexey Morozov wrote:
> Добрый вечер!
> 
> On 7 апреля 2012 18:03:56 Sergey Vlasov wrote:
> 
> > Насколько я понял, все эти пакеты *-unstable предполагалось в конечном
> > итоге удалить из Сизифа; тогда, возможно, проще будет сначала их
> > удалить явным образом, а потом уже собирать новую версию (попробовать
> > сначала в одном задании, если не пройдёт с похожими ошибками -
> > придётся сначала выносить отдельным заданием).
[...]
> Я так понимаю, удалить отдельные подпакеты нельзя? И как это сделать в рамках 
> одной транзакции со сборкой?

Удаление производится по имени исходного пакета, удаляются все
собранные из него бинарные пакеты.

Добавление запроса на удаление пакета в задание:

  ssh git.alt task add [<task_id> [<before_subtask_id>]] del <package>

Или от этого unstable зависит что-то важное, что не хотелось бы
удалять?  Хотя, если удалять в том же задании, в котором собирается
новая версия, заменяющая пакет, такое задание должно пройти.

> Второй момент связан вот с чем. Да, действительно, схема со стабильным и 
> нестабильным kdevelop оказалась не слишком удачной, и в 4.3.0 я хотел удалить 
> {kdevelop,kdevplatform}-unstable-*. Однако, совсем отказываться от пре-релизов 
> тоже не хотелось бы, в 4.3.60+ уже сейчас есть всякие заманушки. Кроме этого, 
> я считаю важным, что установленные пакеты пре-релизных версий не должны 
> автоматически апгрейдиться до следующего пре-релиза. Например, если у человека 
> установлен, например, пакет kdevelop-4.2.80 (с соотв. kdevplatform), то при 
> появлении в репозитории kdevelop-4.3.0 и kdevelop-4.3.60 dist-upgrade должен 
> происходить до 4.3.0, а не до 4.3.60 (и в локальном хэшере так и было, чес-
> слово :)).
> 
> Поэтому я решил, что нестабильные сборки будут нести в имени некоторый 
> уникальный для данной нестабильной ветки суффикс (для 4.3.60+ это -pre4.4), а 
> следующая стабильная версия, когда она будет готова, должна такие пакеты 
> обсолетить. Помимо этого, соотв. пакеты должны "во веки веков" обсолетить ещё 
> и {kdevelop,kdevplatform}-unstable

При такой схеме в стабильных версиях будут постепенно накапливаться
Obsoletes на -preX.Y.

> Поэтому переводить ситуацию целиком на ручное управление очень не хочется. Но, 
> с другой стороны, запихнуть в Sisyphus стабильный kdevelop тоже актуально.

Возможно, проблема сейчас возникает из-за недостаточно жёстких
зависимостей в старом unstable (типа той, про которую выдавалось
предупреждение при сборке новых пакетов).

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

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

end of thread, other threads:[~2012-04-07 18:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-06 11:21 [devel] Магия хэшей-кодов в зависимостях разделяемых библиотек Alexey Morozov
2012-04-06 19:35 ` Sergey Vlasov
2012-04-07  4:09   ` Alexey Morozov
2012-04-07 14:03     ` Sergey Vlasov
2012-04-07 15:38       ` Alexey Morozov
2012-04-07 18:52         ` Sergey Vlasov

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