From: at@turbinal.org To: devel@altlinux.ru Subject: Re: [devel] Re: perl-5.8.0-alt0.3 (important) Date: Sat, 19 Oct 2002 03:42:41 +0400 Message-ID: <20021018234241.GA5988@homestead.turbinal.org> (raw) In-Reply-To: <20021018222612.GA2153@mhz.mikhail.zabaluev.name> On Sat, Oct 19, 2002 at 02:26:12AM +0400, Mikhail Zabaluev wrote: > CPAN явно не место в perl-devel. > Hint: perl-CPAN? Не знаю. Я хотел бы избежать дальнейшего дробления основных перловых пакетов. По плотности зависимостей -- никуда кроме как в perl-devel его сейчас деть нельзя, да и perl-devel из-за него начинает хотеть libnet, libwww и т.п. Да, наверное, стоит сделать perl-CPAN. > Я бы вообще не задавался идеей ставить только perl-base > в какой бы то ни было инсталляции. Наоборот, лучше было > бы отпилить от пакета perl те модули, которые требуют > нетривиального, типа DB*_File и GDBM_File, и объединить > его c perl-base. Пользователям Junior может стать Сюрприз, сюрприз! Я так и сделал. Вот что у меня на эту тему в спеке. %files base # perl-base modules %privlib/AnyDBM_File.pm # dbm stuff: include only one in perl-base to satisfy AnyDBM_File; # proirities according to AnyDBM_File.pm %if_with ndbm %archlib/NDBM_File.pm %autolib/NDBM_File %else %if_with db %archlib/DB_File.pm %autolib/DB_File %else %if_with gdbm %archlib/GDBM_File.pm %autolib/GDBM_File %else %if_with sdbm %archlib/SDBM_File.pm %autolib/SDBM_File %autolib/sdbm %endif %endif %endif %endif %files # dbm stuff %if_with ndbm %if_with db %archlib/DB_File.pm %autolib/DB_File %endif %if_with gdbm %archlib/GDBM_File.pm %autolib/GDBM_File %endif %if_with sdbm %archlib/SDBM_File.pm %autolib/SDBM_File %autolib/sdbm %endif %else %if_with db %if_with gdbm %archlib/GDBM_File.pm %autolib/GDBM_File %endif %if_with sdbm %archlib/SDBM_File.pm %autolib/SDBM_File %autolib/sdbm %endif %else %if_with gdbm %if_with sdbm %archlib/SDBM_File.pm %autolib/SDBM_File %autolib/sdbm %endif %endif %endif %endif > Есть гарантия, что это не приведёт к крэшам при использовании > несовместимых модулей? Соответствие ABI проверяется при > динамической загрузке? Нет. Полную гарантию может дать только... Соответствие API/ABI должен проверять дистрибутив, и он может делать это лучше, чем inc_version_list. > Противоречит, но кому охота прописывать зависимость от версии > perl во все пакеты? > Или жёстко (полу-)автоматически привязывать пакеты к версии > perl и при смене этой версии всё пересобирать? Нужно жестко зашивать версию ABI в пакеты с бинарным кодом, и при смене ABI у перла apt должет приказать им долго жить. :) Версию ABI легче всего идентифицировать по libperl soname. PreReq: libperl.so.5.8 При этом мы получаем мягкий вариант контроля бинарной совместимости как минимум для всех perl-5.8.x, т.е. на достаточно долгое время. Если perl-5.10 будет бинарно совместим с perl-5.8, то: %package base Provides: libperl.so.5.8 %install ln -sf libperl.so.5.10 libperl.so.5.8 При этом все остальные перловые пакеты можно будет не пересобирать, а при пересборке можно оставлять старый soname. Тогда будет возможность обновить этот пакет без обновления самого перла. К сожалению, этого не получится сделать там, где бинарный код явно слинкуется с libperl.so.5.10. > Это не ошибка, а недоработка, и с задачей, для которой фича была > введена, она справляется хотя бы частично. Если вы предлагаете оставить inc_version_list, скажите об этом явно. > > Страшно другое: для других пакетов сборка с тредами может быть бинарно > > несовместима со сборкой без тредов. Так это или нет, я не знаю, и пока > > даже не знаю, как узнать. Вы не в курсе? > > Нет, но скорее всего, несовместима. Тогда возможный откат на безтредовую сборку может стать очень тяжелым (в смысле частичного обновления, которое приводит к крэшу). Лучше сразу предусмотреть такую возможность. Как лучше сделать? 1) виртуальные provides. Так сделано в RH: Provides: perl(:WITH_ITHREADS) Provides: perl(:WITH_THREADS) 2) дальнейшее усложнение soname: libperl-ithreads.so.5.8 libperl-nothreads.so.5.8 Второе проще по части сборки остальных пакетов, но нельзя предусмотреть в soname все возможные комбинации различных флагов сборки, которые могут привести к бинарной несовместимости. 3) оставить пока libperl.so.5.8; при откате назвать libperl-nothreads.so.5.8. Так и сделаем. > > > > название каталога в любом случае условно и не всегда/не вполне > > > > соответствует действительности. > > > > > > Оно соответствует некоторому выбору флагов при сборке, который стоит > > > отличать от других возможных наборов флагов. > > > > Это имеет смысл, но этим нельзя всерьёз увлекаться в дистрибутиве с > > сильным контролем зависимостей. > > Не понял, при чём здесь контроль зависимостей? И что значит "сильный"? В целом же, я думаю, что мы хорошо понимаем друг друга. В целостном состоянии дистрибутива на основе apt/rpm невозможно одновременное существование бинарно несовместимых пакетов. По этой причине нет смысла учитывать флаги сборки в названии archlib.
next prev parent reply other threads:[~2002-10-18 23:42 UTC|newest] Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top 2002-10-16 1:45 [devel] " at 2002-10-16 4:44 ` at 2002-10-16 8:54 ` Dmitry V. Levin 2002-10-16 14:47 ` at 2002-10-16 15:31 ` Dmitry V. Levin 2002-10-16 8:39 ` Alexander Bokovoy 2002-10-16 9:09 ` Stanislav Ievlev 2002-10-16 8:50 ` Dmitry V. Levin 2002-10-16 8:56 ` Anton V. Boyarshinov 2002-10-16 14:19 ` at 2002-10-17 8:14 ` [devel] " Mikhail Zabaluev 2002-10-18 1:40 ` at 2002-10-18 22:26 ` Mikhail Zabaluev 2002-10-18 23:42 ` at [this message] 2002-10-19 9:38 ` Mikhail Zabaluev 2002-10-19 20:45 ` [devel] Re: perl ABI detection at find-requires stage at 2002-10-20 0:06 ` at 2002-10-21 23:05 ` Mikhail Zabaluev 2002-10-21 6:00 ` [devel] Re: perl-5.8.0-alt0.3 (important) Anton V. Boyarshinov 2002-10-21 19:26 ` Alexey I. Froloff 2002-10-22 8:20 ` Dmitry V. Levin 2002-10-21 20:16 ` [devel] Re: perl inc_version_list at 2002-10-21 22:52 ` [devel] Re: perl-5.8.0-alt0.3 (important) Mikhail Zabaluev 2002-10-22 6:25 ` Anton V. Boyarshinov 2002-10-22 13:08 ` Alexey Tourbin 2002-10-26 0:32 ` [devel] Re: perl thread safety at 2002-10-20 1:37 ` [devel] Re: perl/Junior at 2002-10-20 13:37 ` [devel] Re: perl-5.8.0-alt0.3 (important) Michael Shigorin 2002-10-21 2:12 ` at 2002-10-21 22:50 ` Mikhail Zabaluev 2002-10-21 3:01 ` at
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=20021018234241.GA5988@homestead.turbinal.org \ --to=at@turbinal.org \ --cc=devel@altlinux.ru \ /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 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