ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Mono: мысли по зависимостям
@ 2007-11-04 20:25 Andrey Rahmatullin
  2007-11-04 20:50 ` Alexey Tourbin
  0 siblings, 1 reply; 6+ messages in thread
From: Andrey Rahmatullin @ 2007-11-04 20:25 UTC (permalink / raw)
  To: ALT Devel discussion list

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


1. Полностью Provides должны обрабатываться только для GAC-сборок,
остальные не являются публичными, с ними невозможна штатная линковка (без
пути) и их версии и publicKeyToken игнорируются.

2. Provides генерируются следующими источниками: метаданные публичных
сборок и их publisher policy. Если у сборки нет publisher policy,
используется её версия, иначе - версия, на которую перенаправляет policy.
Кроме того, надо учитывать publicKeyToken и вроде бы culture.

3. Ссылки без publicKeyToken могут быть разрешены приватными сборками и
поэтому не должны создавать Requires с версией.

4. Ссылки с publicKeyToken должны генерировать Requires, содержащий имя,
версию, publicKeyToken и culture сборки, при этом версия берётся из
ссылки либо из .config, если он есть и содержит перенаправление.

5. Аналог rpmsodiff в Debian наз-ся mono-api-check и работает через
mono-api-info/mono-api-diff.

-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):

Вообще говоря, удаленный перезапуск sshd следует производить с известной
степенью осторожности.
		-- ldv in sisyphus@

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

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

* Re: [devel] Mono: мысли по зависимостям
  2007-11-04 20:25 [devel] Mono: мысли по зависимостям Andrey Rahmatullin
@ 2007-11-04 20:50 ` Alexey Tourbin
  2007-11-04 21:16   ` Andrey Rahmatullin
  0 siblings, 1 reply; 6+ messages in thread
From: Alexey Tourbin @ 2007-11-04 20:50 UTC (permalink / raw)
  To: ALT Devel discussion list

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

On Mon, Nov 05, 2007 at 01:25:56AM +0500, Andrey Rahmatullin wrote:
> 1. Полностью Provides должны обрабатываться только для GAC-сборок,
> остальные не являются публичными, с ними невозможна штатная линковка (без
> пути) и их версии и publicKeyToken игнорируются.

Это примерно соответствует моей идее, что Provides должен выставляться
только для /usr/lib/mono/.  Можно сделать ещё жестче -- /usr/lib/mon/gac,
но тогда будут исключения потому что mscorlib.dll лежит за пределами gac.

> 2. Provides генерируются следующими источниками: метаданные публичных
> сборок и их publisher policy. Если у сборки нет publisher policy,
> используется её версия, иначе - версия, на которую перенаправляет policy.
> Кроме того, надо учитывать publicKeyToken и вроде бы culture.

Я не силён в моновской терминологии.  Что такое publisher policy?
У меня задача попроще -- привести зависимости в божеский вид,
чтобы в глаза не бросались какие-то странные вещи даже на мой
непросвещённый взгляд.

> 3. Ссылки без publicKeyToken могут быть разрешены приватными сборками и
> поэтому не должны создавать Requires с версией.

Это я тоже не понимаю.  Давай пример пакетов в сизифе.

> 4. Ссылки с publicKeyToken должны генерировать Requires, содержащий имя,
> версию, publicKeyToken и culture сборки, при этом версия берётся из
> ссылки либо из .config, если он есть и содержит перенаправление.

Пример пакетов в сизифе.

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

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

* Re: [devel] Mono: мысли по зависимостям
  2007-11-04 20:50 ` Alexey Tourbin
@ 2007-11-04 21:16   ` Andrey Rahmatullin
  2007-11-04 21:32     ` Alexey Tourbin
  0 siblings, 1 reply; 6+ messages in thread
From: Andrey Rahmatullin @ 2007-11-04 21:16 UTC (permalink / raw)
  To: devel

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

On Sun, Nov 04, 2007 at 11:50:52PM +0300, Alexey Tourbin wrote:
> > 2. Provides генерируются следующими источниками: метаданные публичных
> > сборок и их publisher policy. Если у сборки нет publisher policy,
> > используется её версия, иначе - версия, на которую перенаправляет policy.
> > Кроме того, надо учитывать publicKeyToken и вроде бы culture.
> Я не силён в моновской терминологии.  Что такое publisher policy?
Это вот то policy.*.config, где написано, что наша foo.dll, 1.2.3.4
прикидывается foo.dll, 1.2.0.0.

> > 3. Ссылки без publicKeyToken могут быть разрешены приватными сборками и
> > поэтому не должны создавать Requires с версией.
> Это я тоже не понимаю.  Давай пример пакетов в сизифе.
Ну это про приватные сборки. Если у нас ссылка на приватную сборку, то
может быть загружена как приватная (любой версии), так и сборка из GAC.
При этом версия при загрузке проверяться не будет.
Надо ли в этом случае вообще Requires? Не знаю.
 
> > 4. Ссылки с publicKeyToken должны генерировать Requires, содержащий имя,
> > версию, publicKeyToken и culture сборки, при этом версия берётся из
> > ссылки либо из .config, если он есть и содержит перенаправление.
> Пример пакетов в сизифе.
/usr/lib/mono/gac/Nemerle.CSharp/0.9.3.29994__5291d186334f6101/Nemerle.CSharp.dll

Чтобы загрузить эту сборку, в программе должен быть блок

.assembly extern Nemerle.CSharp
{
  .ver 0:9:3:29994
  .publickeytoken = (52 91 D1 86 33 4F 61 01 )
}

Поэтому зависимость, по-хорошему, должна включать и имя, и версию, и хэш
ключа.

-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):

> Скорее всего, достаточно будет одного взмаха напильником: убрать из
> созданной buildreq'ом строки BuildRequires сам ImageMagick.
Беда в том, что когда мне приходится заниматься чем-то типа пакета
ImageMagick, после первого взмаха напильник уже трудно остановить.
		-- ldv in devel@

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

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

* Re: [devel] Mono: мысли по зависимостям
  2007-11-04 21:16   ` Andrey Rahmatullin
@ 2007-11-04 21:32     ` Alexey Tourbin
  2007-11-05 10:48       ` Andrey Rahmatullin
  0 siblings, 1 reply; 6+ messages in thread
From: Alexey Tourbin @ 2007-11-04 21:32 UTC (permalink / raw)
  To: devel

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

On Mon, Nov 05, 2007 at 02:16:44AM +0500, Andrey Rahmatullin wrote:
> > > 4. Ссылки с publicKeyToken должны генерировать Requires, содержащий имя,
> > > версию, publicKeyToken и culture сборки, при этом версия берётся из
> > > ссылки либо из .config, если он есть и содержит перенаправление.
> > Пример пакетов в сизифе.
> /usr/lib/mono/gac/Nemerle.CSharp/0.9.3.29994__5291d186334f6101/Nemerle.CSharp.dll
> 
> Чтобы загрузить эту сборку, в программе должен быть блок
> 
> .assembly extern Nemerle.CSharp
> {
>   .ver 0:9:3:29994
>   .publickeytoken = (52 91 D1 86 33 4F 61 01 )
> }

А если в программе вообще не указан .publickeytoken?
Программа "слинкуется" с текущей версией или как?

> Поэтому зависимость, по-хорошему, должна включать и имя, и версию, и хэш
> ключа.

Можно сделать наиболее общий формат зависимостей 1.2.3.4-HASH.
То есть hash вынести в релиз.  Это можно абсолютно безболезненно
делать как минимум в Provides.  А потом включать hash и в Requires.
Или не включать -- здесь сохраняется степень свободы, потому что
зависимость без релиза успешно разрешится в любой релиз.

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

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

* Re: [devel] Mono: мысли по зависимостям
  2007-11-04 21:32     ` Alexey Tourbin
@ 2007-11-05 10:48       ` Andrey Rahmatullin
  2007-11-05 11:04         ` Alexey Tourbin
  0 siblings, 1 reply; 6+ messages in thread
From: Andrey Rahmatullin @ 2007-11-05 10:48 UTC (permalink / raw)
  To: devel

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

On Mon, Nov 05, 2007 at 12:32:47AM +0300, Alexey Tourbin wrote:
> А если в программе вообще не указан .publickeytoken?
> Программа "слинкуется" с текущей версией или как?
То, во-1-х, загрузчик будет искать сборки и локально, во-2-х, версия при
поиске сравниваься не будет.

> Это можно абсолютно безболезненно делать как минимум в Provides.  А
> потом включать hash и в Requires.  Или не включать
Как не включать? А как оно тогда разрешаться будет, если Provides с хэшем?

-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):

[...] если применять боцманские методы к достаточно
contrib-пакетам, то я сейчас опять вспомню via686 >;-E
		-- mike in sisyphus@

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

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

* Re: [devel] Mono: мысли по зависимостям
  2007-11-05 10:48       ` Andrey Rahmatullin
@ 2007-11-05 11:04         ` Alexey Tourbin
  0 siblings, 0 replies; 6+ messages in thread
From: Alexey Tourbin @ 2007-11-05 11:04 UTC (permalink / raw)
  To: devel

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

On Mon, Nov 05, 2007 at 03:48:15PM +0500, Andrey Rahmatullin wrote:
> > Это можно абсолютно безболезненно делать как минимум в Provides.  А
> > потом включать hash и в Requires.  Или не включать
> Как не включать? А как оно тогда разрешаться будет, если Provides с хэшем?

Хеш будет в "релизе".  То есть ты напремер пишеш "Requires: glibc-core = 2.5"
как оно разрешаца будет?  Если равно указано с точностью до версии то
разрешаецо без релиза.

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

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

end of thread, other threads:[~2007-11-05 11:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-04 20:25 [devel] Mono: мысли по зависимостям Andrey Rahmatullin
2007-11-04 20:50 ` Alexey Tourbin
2007-11-04 21:16   ` Andrey Rahmatullin
2007-11-04 21:32     ` Alexey Tourbin
2007-11-05 10:48       ` Andrey Rahmatullin
2007-11-05 11:04         ` Alexey Tourbin

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