* [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