From: "Денис Смирнов" <mithraen@freesource.info> To: ALT Linux Sisyphus discussions <sisyphus@lists.altlinux.org> Subject: Re: [sisyphus] обновления... гм?! Date: Mon, 15 Nov 2010 11:47:54 +0300 Message-ID: <20101115084754.GA14903@mw.mithraen.ru> (raw) In-Reply-To: <4CE0F1BC.9070601@mmedia2.kemsu.ru> [-- Attachment #1: Type: text/plain, Size: 3772 bytes --] On Mon, Nov 15, 2010 at 02:39:24PM +0600, REAL wrote: R> А вообще, Денис, если подводит память, я сам довольно часто на это R> полиси ссылался и являюсь её сторонником. Просто здесь ситуация иная. Она отличается лишь тем, что в связи с особенностями ситуации (у библиотеки очень мало клиентов) вред от несоблюдения этого полиси _сейчас_ отсутствует, и, если эта библиотека и в будущем будет столь же редкоиспользуемой, то и будет отсутствовать. R> Кстати, мне больше всего нравится идея, там не зафиксированная, но R> практикуемая некоторыми мейнтейнерами: R> 1. самая новая версия пакета - без soname в названии. R> 2. более старые (compat) - с soname. R> Так красивее, на мой взгляд, и при этом сохраняется сама суть R> обсуждаемого полиси. Суть -- да. В теории. На практике -- apt кривая поделка, которая на этом склеит ласты и потребует ручных усилий для обновления. А вся "красота" заключается в том, что имя без soversion (то есть короче на один символ, и при этом не содержит полезной информации). То есть красота исключительно визуальная, а с технической точки зрения решение -- ужасное. Объясняю еще раз. Библиотека это заведомо такая хрень, которая пользователю не нужна. Вообще не нужна. И обновлять ее со сменой soversion -- пользователю не нужно. Пользователю нужно чтобы его любимая программка -- работала. А ей для этого нужны некие либы с некими soversion. И, если пользователь хочет обновиться, эти либы с этими soversion надо обновить до последних версий. А с точки зрения приложений в runtime (а не во время сборки) нету никакого libabc, например. Есть libabc.1 или libabc.2. И если приложение хочет libabc.1, то оно хочет _именно его_. А если другое хочет libabc.2, то оно хочет _именно его_. Поэтому правильно относиться к libabc.1 и libabc.2 не как к разным версиям библиотеки libabc, а как к двум совершенно разным библиотекам. Правда, к сожалению, у libabc.1 и libabc.2 высокая вероятность пересечения по именам символов. И поэтому если по цепочке зависимостей у приложения оказывается в памяти обе этих библиотеки, то будет большая проблема. В принципе ровно та же проблема была бы если бы в памяти оказались libfoo и libbar, у которых обеих почему-то есть символ foobar. Но уж вот такая кривая вещь современные ОС, никакого namespace для этого не предусмотрено к сожалению. Но я повторюсь -- libabc.1 и libabc.2 это не "разные версии одной библиотеки". Это именно что разные библиотеки, с точки зрения системы. Поэтому называть пакет с libabc2 просто libabc, а libabc1 -- libabc-compat, это, мягко скажем, попытка ввести кого-то в заблуждение. Ибо если ты приходишь в магазин, например, то ты хочешь купить что-то. А если это что-то лежит в закрытой коробочке с надписью "фрукт" -- а ты хочешь что-то конкретное, то будешь ругаться на руководство этого магазина нехорошими словами. Вот 'libabc' это точно такая же вредная генерализация, вместо четкого именования сущности которая находится в пакете. А сущность эта -- 'libabc.1', или 'libabc.2' а не какой-нибудь там 'libabc', или, тем более 'libabc-compat' (который существует только в воображении мантейнера). Подводя итог. Если пакет с библиотекой называется иначе чем 'lib%name.%soversion' мантейнер должен иметь четкое обоснование зачем это нужно (какую цель это преследует). "и так сойдет в данной ситуации" -- это не цель, а просто обоснование почему в данном случае неисполнение этого полиси не является критической багой. Но багой оно в любом случае, до тех пор пока нет конкретной цели, для достижения которой нарушение этого полиси является необходимым инструментом. -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --]
next prev parent reply other threads:[~2010-11-15 8:47 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-11-15 3:51 Gleb Kulikov 2010-11-15 4:40 ` Денис Смирнов 2010-11-15 5:01 ` Gleb Kulikov 2010-11-15 5:26 ` Денис Смирнов 2010-11-15 5:40 ` Gleb Kulikov 2010-11-15 6:46 ` Terechkov Evgenii 2010-11-15 6:56 ` Andrey Rahmatullin 2010-11-15 7:15 ` Денис Смирнов 2010-11-15 5:48 ` REAL 2010-11-15 7:12 ` Денис Смирнов 2010-11-15 7:28 ` REAL 2010-11-15 7:53 ` Денис Смирнов 2010-11-15 8:01 ` Andrey Rahmatullin 2010-11-15 8:13 ` REAL 2010-11-15 8:58 ` Денис Смирнов 2010-11-15 9:15 ` REAL 2010-11-15 12:01 ` Денис Смирнов 2010-11-16 6:25 ` REAL 2010-11-16 8:39 ` Денис Смирнов 2010-11-15 8:39 ` REAL 2010-11-15 8:47 ` Денис Смирнов [this message] 2010-11-15 12:38 ` Sergey V Turchin 2010-11-15 14:11 ` Gleb Kulikov 2010-11-15 14:18 ` Sergey V Turchin 2010-11-15 14:46 ` Gleb Kulikov 2010-11-15 15:10 ` Sergey V Turchin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20101115084754.GA14903@mw.mithraen.ru \ --to=mithraen@freesource.info \ --cc=sisyphus@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/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 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git