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