* [devel] GHC-7.4 @ 2012-02-06 6:34 Vitaly Kuznetsov 2012-02-06 8:22 ` Денис Смирнов 0 siblings, 1 reply; 19+ messages in thread From: Vitaly Kuznetsov @ 2012-02-06 6:34 UTC (permalink / raw) To: ALT Linux Team general development Hi, в связи с выходом ghc-7.4.1 задумался о переезде Сизифа на эту версию. Наши коллеги из debian уже сделали это в unstable. Есть ли противопоказания? ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-06 6:34 [devel] GHC-7.4 Vitaly Kuznetsov @ 2012-02-06 8:22 ` Денис Смирнов 2012-02-06 10:01 ` Vitaly Kuznetsov 0 siblings, 1 reply; 19+ messages in thread From: Денис Смирнов @ 2012-02-06 8:22 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 592 bytes --] On Mon, Feb 06, 2012 at 10:34:34AM +0400, Vitaly Kuznetsov wrote: VK> в связи с выходом ghc-7.4.1 задумался о переезде Сизифа на эту версию. VK> Наши коллеги из debian уже сделали это в unstable. VK> Есть ли противопоказания? Я бы очень хотел внедрить поддержку нескольких версий ghc, аналогично gcc. Ибо с новым ghc часто не собирается много старого добра. У меня пока не хватает времени чтобы сделать это, но активную помощь если возьмешься обещаю. -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-06 8:22 ` Денис Смирнов @ 2012-02-06 10:01 ` Vitaly Kuznetsov 2012-02-06 13:51 ` Денис Смирнов 0 siblings, 1 reply; 19+ messages in thread From: Vitaly Kuznetsov @ 2012-02-06 10:01 UTC (permalink / raw) To: devel On Mon, 6 Feb 2012 12:22:18 +0400, Денис Смирнов wrote: > On Mon, Feb 06, 2012 at 10:34:34AM +0400, Vitaly Kuznetsov wrote: > > VK> в связи с выходом ghc-7.4.1 задумался о переезде Сизифа на эту > версию. > VK> Наши коллеги из debian уже сделали это в unstable. > VK> Есть ли противопоказания? > > Я бы очень хотел внедрить поддержку нескольких версий ghc, аналогично > gcc. > Ибо с новым ghc часто не собирается много старого добра. У меня пока > не > хватает времени чтобы сделать это, но активную помощь если возьмешься > обещаю. Трезво оценивая имеющиеся на околохаскельные дела ресурсы плюрализм не кажется мне хорошей идеей. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-06 10:01 ` Vitaly Kuznetsov @ 2012-02-06 13:51 ` Денис Смирнов 2012-02-06 15:32 ` Igor Vlasenko 0 siblings, 1 reply; 19+ messages in thread From: Денис Смирнов @ 2012-02-06 13:51 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 622 bytes --] On Mon, Feb 06, 2012 at 02:01:02PM +0400, Vitaly Kuznetsov wrote: VK> Трезво оценивая имеющиеся на околохаскельные дела ресурсы плюрализм не VK> кажется мне хорошей идеей. Именно поэтому она и хорошая. Потому как сборка нового хаскеля (и обновление библиотек), при том что в репо есть пакеты, требующие хаскеля для сборки -- это целое представление. Я в свое время делал один подход к 7.0 и отступил. При наличии же параллельных версий, эта проблема решается вполне тривиально. -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-06 13:51 ` Денис Смирнов @ 2012-02-06 15:32 ` Igor Vlasenko 2012-02-08 22:28 ` Денис Смирнов 0 siblings, 1 reply; 19+ messages in thread From: Igor Vlasenko @ 2012-02-06 15:32 UTC (permalink / raw) To: ALT Linux Team development discussions On Mon, Feb 06, 2012 at 05:51:49PM +0400, Денис Смирнов wrote: > On Mon, Feb 06, 2012 at 02:01:02PM +0400, Vitaly Kuznetsov wrote: > > VK> Трезво оценивая имеющиеся на околохаскельные дела ресурсы плюрализм не > VK> кажется мне хорошей идеей. > > Именно поэтому она и хорошая. Потому как сборка нового хаскеля (и > обновление библиотек), при том что в репо есть пакеты, требующие хаскеля > для сборки -- это целое представление. Я в свое время делал один подход к > 7.0 и отступил. > > При наличии же параллельных версий, эта проблема решается вполне > тривиально. Хотел бы предложить помощь. Могу заскриптовать работу с srpm пакетами для поддержки нескольких версий ghc. Еще в прошлом году собирался так сделать, но попал в положение Буриданова осла, когда было несколько вариантов, как это будет выглядеть на практике, со своими достоинствами и недостатками, и так и не выбрал, как должно выглядеть multighc полиси. Т.е. надо выбрать схему работы, а я ее с удовольствием заскриптую. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-06 15:32 ` Igor Vlasenko @ 2012-02-08 22:28 ` Денис Смирнов 2012-02-09 21:22 ` Igor Vlasenko 0 siblings, 1 reply; 19+ messages in thread From: Денис Смирнов @ 2012-02-08 22:28 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 691 bytes --] On Mon, Feb 06, 2012 at 05:32:55PM +0200, Igor Vlasenko wrote: IV> Хотел бы предложить помощь. Могу заскриптовать работу с srpm пакетами IV> для поддержки нескольких версий ghc. Еще в прошлом году собирался IV> так сделать, но попал в положение Буриданова осла, когда IV> было несколько вариантов, как это будет выглядеть на практике, IV> со своими достоинствами и недостатками, и так и не выбрал, как IV> должно выглядеть multighc полиси. IV> Т.е. надо выбрать схему работы, а я ее с удовольствием заскриптую. А какие варианты ты преддполагаешь? -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-08 22:28 ` Денис Смирнов @ 2012-02-09 21:22 ` Igor Vlasenko 2012-02-10 4:44 ` Vitaly Kuznetsov 2012-02-13 15:06 ` Денис Смирнов 0 siblings, 2 replies; 19+ messages in thread From: Igor Vlasenko @ 2012-02-09 21:22 UTC (permalink / raw) To: ALT Linux Team development discussions Cc: Денис Смирнов, Vitaly Kuznetsov On Thu, Feb 09, 2012 at 02:28:23AM +0400, Денис Смирнов wrote: > On Mon, Feb 06, 2012 at 05:32:55PM +0200, Igor Vlasenko wrote: > IV> Хотел бы предложить помощь. Могу заскриптовать работу с srpm пакетами > IV> для поддержки нескольких версий ghc. Еще в прошлом году собирался > IV> так сделать, но попал в положение Буриданова осла, когда > IV> было несколько вариантов, как это будет выглядеть на практике, > IV> со своими достоинствами и недостатками, и так и не выбрал, как > IV> должно выглядеть multighc полиси. > IV> Т.е. надо выбрать схему работы, а я ее с удовольствием заскриптую. > > А какие варианты ты преддполагаешь? Подумав еще раз, выбрал и хочу предложить следующее: Каждое приложение (вроде xmonad) в установленной системе одно, Библиотек (вроде ghc-zlib) в системе может быть несколько, неконфликтующих, равноправных, с названиями ghcXYZ(.T)-zlib, где XYZ - версия ghc, .T -serial (обычно %nil). требующих каждая свой ghcXYZ(.T). ghc при этом придется перевести на альтернативы. Виртуальных Provides: вида ghc-zlib НЕ БУДЕТ. Вместо этого BuildRequires: будут вычисляться при сборке, макросом. У приложений будет написано BuildRequires: %{ghcdep zlib utf8-string ...} которые в зависимости от содержимого rpm-build-ghc будут при сборке раскрываться в конкретные ghcXYZ(.T)-zlib, ghcXYZ(.T)-utf8-string, ghcXYZ(.T)-... При обновлении сначала неспеша собираем новый ghc и библиотеки к нему. Затем меняем rpm-build-ghc и неспеша пересобираем приложения. Те приложения, которые с новым набором ghc+libs собираться упорно не хотят, оставляем собираться со старым набором, явно загружая при сборке rpm-build-ghc-compat-ABC(.D). Инструменты для автоматизированной правки спеков я напишу и предоставлю. Как такой вариант? -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-09 21:22 ` Igor Vlasenko @ 2012-02-10 4:44 ` Vitaly Kuznetsov 2012-02-10 16:49 ` Igor Vlasenko 2012-02-13 15:06 ` Денис Смирнов 1 sibling, 1 reply; 19+ messages in thread From: Vitaly Kuznetsov @ 2012-02-10 4:44 UTC (permalink / raw) To: Igor Vlasenko Cc: Денис Смирнов, ALT Linux Team development discussions On Thu, 9 Feb 2012 23:22:50 +0200, Igor Vlasenko wrote: > Подумав еще раз, выбрал и хочу предложить следующее: > > Каждое приложение (вроде xmonad) в установленной системе одно, > Библиотек (вроде ghc-zlib) в системе может быть несколько, > неконфликтующих, равноправных, с названиями > ghcXYZ(.T)-zlib, где XYZ - версия ghc, .T -serial (обычно %nil). > требующих каждая свой ghcXYZ(.T). ghc при этом придется перевести > на альтернативы. > > Виртуальных Provides: вида ghc-zlib НЕ БУДЕТ. Вместо этого > BuildRequires: будут вычисляться при сборке, макросом. > > У приложений будет написано > BuildRequires: %{ghcdep zlib utf8-string ...} > которые в зависимости от содержимого rpm-build-ghc > будут при сборке раскрываться в конкретные > ghcXYZ(.T)-zlib, ghcXYZ(.T)-utf8-string, ghcXYZ(.T)-... > > При обновлении сначала неспеша собираем новый ghc и библиотеки к > нему. > Затем меняем rpm-build-ghc и неспеша пересобираем приложения. > > Те приложения, которые с новым набором ghc+libs собираться > упорно не хотят, оставляем собираться со старым набором, > явно загружая при сборке rpm-build-ghc-compat-ABC(.D). > > Инструменты для автоматизированной правки спеков я напишу и > предоставлю. > > Как такой вариант? Мне непонятно, откуда в этой схеме будет появляться несколько версий одной библиотеки. Они будут собираться из разных исходных пакетов? Если я правильно понял Дениса, то хочется получить следующий workflow: 1) Вышел новый ghc - собираем в репозиторий его и rpm-build-ghc-whatever 2) По одной пересобираем библиотеки с новым ghc (и вот тут как раз должны рождаться 2 версии) 3) Пересобираем приложения, проверяем что старые библиотеки никому не нужны 4) Пересобираем библиоткеки ещё раз, оставляем только новую версию. В предложеной схеме, если я правильно понял, на шаге 2 нужно будет автоматизированным способом создать клоны исходных пакетов с библиотеками. Можно, наверное, пойти другим путём: собирать все возможные версии библиотеки (точнее - все, которые собираются) из одного спека. При этом потребуется устроить циклы в %build и %install, ну да это не сложно. Можно также предположить, что почти всё с новым ghc собирается. Это означает, что нужно лишь придумать возможность собрать compat-библиотеку и держать в Сизифе несколько ghc. Спеки же самих пакетов можно не менять. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-10 4:44 ` Vitaly Kuznetsov @ 2012-02-10 16:49 ` Igor Vlasenko 2012-02-10 17:54 ` Igor Vlasenko 0 siblings, 1 reply; 19+ messages in thread From: Igor Vlasenko @ 2012-02-10 16:49 UTC (permalink / raw) To: ALT Linux Team development discussions Cc: Денис Смирнов, Vitaly Kuznetsov On Fri, Feb 10, 2012 at 08:44:45AM +0400, Vitaly Kuznetsov wrote: > Мне непонятно, откуда в этой схеме будет появляться несколько версий > одной библиотеки. Они будут собираться из разных исходных пакетов? Да. Основное различие в значениях макросов GHC_VER, и опционально, GHC_SERIAL (обычно %nil; нужен, если вдруг придется собирать несколько поколений с одной версией ghc). > Если я правильно понял Дениса, то хочется получить следующий workflow: > 1) Вышел новый ghc - собираем в репозиторий его и > rpm-build-ghc-whatever > 2) По одной пересобираем библиотеки с новым ghc (и вот тут как раз > должны рождаться 2 версии) > 3) Пересобираем приложения, проверяем что старые библиотеки никому > не нужны > 4) Пересобираем библиоткеки ещё раз, оставляем только новую версию. В предложенной схеме в пункте 4 нет необходимости. Можно просто удалить старые библиотеки. А можно и не удалять. > В предложеной схеме, если я правильно понял, на шаге 2 нужно будет > автоматизированным способом создать клоны исходных пакетов с > библиотеками. Да, + еще автоматизированно обновляться из Hackage и инструменты подготовки транзакций для заливки. > Можно, наверное, пойти другим путём: собирать все возможные версии > библиотеки (точнее - все, которые собираются) из одного спека. При > этом потребуется устроить циклы в %build и %install, ну да это не > сложно. Это подход к автоматизации, при которой мы по сути хотим хранить скрипты автоматизации в спек файле. IMHO, это не эффективно, так как придется руками хардкодить списки и т.д., внешние скрипты эффективнее, IMHO. > Можно также предположить, что почти всё с новым ghc собирается. Это > означает, что нужно лишь придумать возможность собрать > compat-библиотеку и держать в Сизифе несколько ghc. Спеки же самих > пакетов можно не менять. Я тоже сначала думал о таких подходах, но если спеки самих пакетов не менять, то у нас сразу же возникает шаг 4) выше -- обязательная всеобщая пересборка. А всеобщая пересборка -- вещь очень коварная, когда семеро одного ждут. Если у нас 20 ghc пакетов -- этот аспект не заметен. Если у нас 90 ghc пакетов, как сейчас - это еще терпимо. Но если у нас будет 900 ghc пакетов (не обязательно в Сизифе; может быть, в отдельной песочнице автоимпорта из Hackage) то необходимость всеобщей пересборки на шаге 4) обязательно выстрелит в ногу и рано или поздно парализует работу. Вспомним героические усилия для обновления питона. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-10 16:49 ` Igor Vlasenko @ 2012-02-10 17:54 ` Igor Vlasenko 2012-02-10 22:52 ` Денис Смирнов 0 siblings, 1 reply; 19+ messages in thread From: Igor Vlasenko @ 2012-02-10 17:54 UTC (permalink / raw) To: ALT Linux Team development discussions On Fri, Feb 10, 2012 at 06:49:30PM +0200, Igor Vlasenko wrote: > Я тоже сначала думал о таких подходах, но если спеки самих > пакетов не менять, то у нас сразу же возникает шаг 4) > выше -- обязательная всеобщая пересборка. > А всеобщая пересборка -- вещь очень коварная, когда семеро одного ждут. > Если у нас 20 ghc пакетов -- этот аспект не заметен. > Если у нас 90 ghc пакетов, как сейчас - это еще терпимо. > Но если у нас будет 900 ghc пакетов (не обязательно в Сизифе; > может быть, в отдельной песочнице автоимпорта из Hackage) > то необходимость всеобщей пересборки на шаге 4) обязательно > выстрелит в ногу и рано или поздно парализует работу. > > Вспомним героические усилия для обновления питона. Впрочем, я не утверждаю, что изложенный выше подход самый правильный. У каждого подхода свои плюсы и минусы. Но что-то выбрать надо. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-10 17:54 ` Igor Vlasenko @ 2012-02-10 22:52 ` Денис Смирнов 2012-02-10 23:04 ` Igor Zubkov 2012-02-11 18:54 ` Igor Vlasenko 0 siblings, 2 replies; 19+ messages in thread From: Денис Смирнов @ 2012-02-10 22:52 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 809 bytes --] On Fri, Feb 10, 2012 at 07:54:34PM +0200, Igor Vlasenko wrote: IV> Впрочем, я не утверждаю, что изложенный выше подход IV> самый правильный. У каждого подхода свои плюсы и минусы. IV> Но что-то выбрать надо. Я считаю что исходные пакеты должны содержать в себе номер версии хаскеля, с которым они собираются. Это очень грязный хак, но другого способа поддерживать в репозитории две версии хаскеля одновременно я себе не представляю. Так что редактирование спеков делать придется :( Правда жизнь облегчается тем, что сборка из hackage в rpm крайне простая, мой cabal2gear с этим справляется прекрасно (разве что не умеет сам сборочные зависимости проставлять). -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-10 22:52 ` Денис Смирнов @ 2012-02-10 23:04 ` Igor Zubkov 2012-02-10 23:40 ` Денис Смирнов 2012-02-11 18:54 ` Igor Vlasenko 1 sibling, 1 reply; 19+ messages in thread From: Igor Zubkov @ 2012-02-10 23:04 UTC (permalink / raw) To: ALT Linux Team development discussions 2012/2/11 Денис Смирнов: > On Fri, Feb 10, 2012 at 07:54:34PM +0200, Igor Vlasenko wrote: > > IV> Впрочем, я не утверждаю, что изложенный выше подход > IV> самый правильный. У каждого подхода свои плюсы и минусы. > IV> Но что-то выбрать надо. > > Я считаю что исходные пакеты должны содержать в себе номер версии хаскеля, > с которым они собираются. Это очень грязный хак, но другого способа > поддерживать в репозитории две версии хаскеля одновременно я себе не > представляю. > > Так что редактирование спеков делать придется :( > > Правда жизнь облегчается тем, что сборка из hackage в rpm крайне простая, > мой cabal2gear с этим справляется прекрасно (разве что не умеет сам > сборочные зависимости проставлять). Это этому скрипту мы обязаны за кривые урлы в ghc-пакетах? http://packages.altlinux.org/en/search?utf8=✓&branch=Sisyphus&query=ghc -- Igor Zubkov http://hi.im/ice ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-10 23:04 ` Igor Zubkov @ 2012-02-10 23:40 ` Денис Смирнов 0 siblings, 0 replies; 19+ messages in thread From: Денис Смирнов @ 2012-02-10 23:40 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 405 bytes --] On Sat, Feb 11, 2012 at 01:04:21AM +0200, Igor Zubkov wrote: IZ> Это этому скрипту мы обязаны за кривые урлы в ghc-пакетах? IZ> http://packages.altlinux.org/en/search?utf8=✓&branch=Sisyphus&query=ghc Да :) -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-10 22:52 ` Денис Смирнов 2012-02-10 23:04 ` Igor Zubkov @ 2012-02-11 18:54 ` Igor Vlasenko 2012-02-12 21:32 ` Денис Смирнов 1 sibling, 1 reply; 19+ messages in thread From: Igor Vlasenko @ 2012-02-11 18:54 UTC (permalink / raw) To: ALT Linux Team development discussions On Sat, Feb 11, 2012 at 02:52:39AM +0400, Денис Смирнов wrote: > On Fri, Feb 10, 2012 at 07:54:34PM +0200, Igor Vlasenko wrote: > > Я считаю что исходные пакеты должны содержать в себе номер версии хаскеля, > с которым они собираются. Это очень грязный хак, но другого способа > поддерживать в репозитории две версии хаскеля одновременно я себе не > представляю. > > Так что редактирование спеков делать придется :( В общем, при любой схеме нужна возможность ставить рядом несколько ghc. Думаю, с этого надо начать, если это еще не сделано. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-11 18:54 ` Igor Vlasenko @ 2012-02-12 21:32 ` Денис Смирнов 0 siblings, 0 replies; 19+ messages in thread From: Денис Смирнов @ 2012-02-12 21:32 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 420 bytes --] On Sat, Feb 11, 2012 at 08:54:07PM +0200, Igor Vlasenko wrote: IV> В общем, при любой схеме нужна возможность ставить рядом несколько ghc. IV> Думаю, с этого надо начать, если это еще не сделано. Нужно реализовать схему аналогичную gcc, только у меня силенок не хватает ее осознать. -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-09 21:22 ` Igor Vlasenko 2012-02-10 4:44 ` Vitaly Kuznetsov @ 2012-02-13 15:06 ` Денис Смирнов 2012-02-13 19:17 ` Igor Vlasenko 1 sibling, 1 reply; 19+ messages in thread From: Денис Смирнов @ 2012-02-13 15:06 UTC (permalink / raw) To: Igor Vlasenko; +Cc: Vitaly Kuznetsov, ALT Linux Team development discussions On Thu, Feb 09, 2012 at 11:22:50PM +0200, Igor Vlasenko wrote: IV> Подумав еще раз, выбрал и хочу предложить следующее: IV> Каждое приложение (вроде xmonad) в установленной системе одно, IV> Библиотек (вроде ghc-zlib) в системе может быть несколько, IV> неконфликтующих, равноправных, с названиями IV> ghcXYZ(.T)-zlib, где XYZ - версия ghc, .T -serial (обычно %nil). IV> требующих каждая свой ghcXYZ(.T). ghc при этом придется перевести IV> на альтернативы. Для чего serial? IV> Виртуальных Provides: вида ghc-zlib НЕ БУДЕТ. Вместо этого IV> BuildRequires: будут вычисляться при сборке, макросом. Согласен. IV> У приложений будет написано IV> BuildRequires: %{ghcdep zlib utf8-string ...} IV> которые в зависимости от содержимого rpm-build-ghc IV> будут при сборке раскрываться в конкретные IV> ghcXYZ(.T)-zlib, ghcXYZ(.T)-utf8-string, ghcXYZ(.T)-... Да, это важно для сборки приложений (вроде xmonad). Для остального -- так как версия ghc также будет и в %name, то можно в buildrequires обойтись без макросов а указывать конкретные пакеты. IV> При обновлении сначала неспеша собираем новый ghc и библиотеки к нему. Да. IV> Затем меняем rpm-build-ghc и неспеша пересобираем приложения. Гм, а почему меняем rpm-build-ghc? Ради ghcdep? IV> Те приложения, которые с новым набором ghc+libs собираться IV> упорно не хотят, оставляем собираться со старым набором, IV> явно загружая при сборке rpm-build-ghc-compat-ABC(.D). Скорее юзая макрос типа %set_ghc_version (по аналогии с gcc). Он будет важен потому, что если у нас одновременно установлено в системе два ghc -- должен использоваться нужный. IV> Инструменты для автоматизированной правки спеков я напишу и предоставлю. IV> Как такой вариант? -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-13 15:06 ` Денис Смирнов @ 2012-02-13 19:17 ` Igor Vlasenko 0 siblings, 1 reply; 19+ messages in thread From: Igor Vlasenko @ 2012-02-13 19:17 UTC (permalink / raw) To: ALT Linux Team development discussions Cc: Денис Смирнов, Vitaly Kuznetsov Сорри, приболел, реагирую с запаздыванием. On Mon, Feb 13, 2012 at 07:06:30PM +0400, Денис Смирнов wrote: > IV> Подумав еще раз, выбрал и хочу предложить следующее: > IV> Каждое приложение (вроде xmonad) в установленной системе одно, > IV> Библиотек (вроде ghc-zlib) в системе может быть несколько, > IV> неконфликтующих, равноправных, с названиями > IV> ghcXYZ(.T)-zlib, где XYZ - версия ghc, .T -serial (обычно %nil). > IV> требующих каждая свой ghcXYZ(.T). ghc при этом придется перевести > IV> на альтернативы. > > Для чего serial? Для следующего, прошу поправить, если не так понимаю. Даже если версия XYZ не изменилась, при необходимости внести изменения в ghc полетят его provides - diff -u rebuild_provides sisyphus_provides ... ghc7.0.1(time) = 1.2.0.3 -ghc7.0.1(time-1.2.0.3-edf96900354f64de48284c95dbf6029a) +ghc7.0.1(time-1.2.0.3-9dc693ae41bc4a79faf2339f8923a2c4) ghc7.0.1(unix) = 2.4.1.0 -ghc7.0.1(unix-2.4.1.0-13f44222715caac4bba717310d1dd2e6) +ghc7.0.1(unix-2.4.1.0-f61f2ddea759757341ca757be499cab8) ghc = 7.0.1-alt1 и т.д. И для нового релиза ghcXYZ придется вместе с ним пересобирать все пакеты, а мы пытаемся уйти от гигантских транзакций. Вот чтобы и не требовалась тотальная пересборка, и нужен ghc_serial, который по умолчанию %nil и не виден, но если понадобится (например, с патченным ghc сборка чего-то отвалилась) то он есть. > IV> У приложений будет написано > IV> BuildRequires: %{ghcdep zlib utf8-string ...} > IV> которые в зависимости от содержимого rpm-build-ghc > IV> будут при сборке раскрываться в конкретные > IV> ghcXYZ(.T)-zlib, ghcXYZ(.T)-utf8-string, ghcXYZ(.T)-... > > Да, это важно для сборки приложений (вроде xmonad). > > Для остального -- так как версия ghc также будет и в %name, то можно в > buildrequires обойтись без макросов а указывать конкретные пакеты. Согласен. > IV> Затем меняем rpm-build-ghc и неспеша пересобираем приложения. > Гм, а почему меняем rpm-build-ghc? Ради ghcdep? Ну да. мы же теперь хотим, чтобы он раскрывался в новое значение. > IV> Те приложения, которые с новым набором ghc+libs собираться > IV> упорно не хотят, оставляем собираться со старым набором, > IV> явно загружая при сборке rpm-build-ghc-compat-ABC(.D). > Скорее юзая макрос типа %set_ghc_version (по аналогии с gcc). Поддерживаю любую реализацию. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 19+ messages in thread
[parent not found: <20120213213409.GA7858@t60p.mithraen.ru>]
* Re: [devel] GHC-7.4 @ 2012-02-14 12:19 ` Igor Vlasenko 2012-02-14 12:46 ` Igor Vlasenko 0 siblings, 1 reply; 19+ messages in thread From: Igor Vlasenko @ 2012-02-14 12:19 UTC (permalink / raw) To: Денис Смирнов Cc: Vitaly Kuznetsov, ALT Linux Team development discussions On Tue, Feb 14, 2012 at 01:34:10AM +0400, Денис Смирнов wrote: > IV> Даже если версия XYZ не изменилась, при необходимости внести > IV> изменения в ghc полетят его provides - > > Да, действительно. Только тогда получается что мы не можем просто > пересобрать ghc (ибо он предоставляет provides, нужные другим пакетам). И > любая попытка пересборки ghc потребует сборки его под новым именем. > > Причем это вызовет путаниук у пользователей -- 7.0.1.1, это 7.0.1 с serial > 1, bkb 7.0.1.1 c serial %nil? Надо просто вносить версию (и ,опционально, serial) в %name, при чем по разному записывать. Например, верся ghc слитно без точки, а если есть сериал, то отделять его точкой (запятой, другим символом) тогда будет ghc701-utf8-string (serial=%nil) ghc701.1-utf8-string (serial=.1) либо использовать текстовый serial, ghc701rel2-utf8-string (serial=rel2) т.е. ghc701rel2 = 7.0.1-alt1 > Сами по себе гигантские транзакции страшны не размерами, а тем, что при > обновлении ghc у нас часто половина пакетов будет не собираться. > Кстати сами по себе гигантские транзакции все равно никуда не денутся. > Скажем что будет если пытаться обновить ghc-utf8-string, или любой другой > пакет с большой иерархией зависимостей? Если пытаться обновлять, то да. но мы такие вещи хотим собирать параллельно. Это в старой парадигме мы все пересобираем (гигантскими) транзакциями. В новой мы все собираем рядом. т.е. (условно) собрать рядом с ghc701-x-string = 0.3.6-alt1 пакет ghc701-x-string-v0.4.0 = 0.4.0-alt1 и они станут рядом не конфликтуя. А я в скрипты автоматизации внесу логику, что если программа marmelad собиралась с ghc701 и ghc701-x-string-v0.4.0, мы ее хотим пересобрать с ghc745, с котром штатно собран ghc745-x-string = 0.4.0, то умный скрипт сам заменит в BuildRequires: ghc701-x-string-v0.4.0 на просто ghc745-x-string. Более того, с поддержкой cabal умный скрипт заменит ghc701-x-string-v0.4.0 и на ghc745-x-string = 0.4.1, если версия 0.4.1 входит в допустимый дапазон. Мораль: Модули тоже надо иметь возможность размножать по их версии/serial (по умолчанию %nil). По мере роста пакетов неизбежно придем к ситуации, когда пакету A нужна версия v1 библиотеки C, а пакету B нужна версия v2 библиотеки C, и собирать надо обе версии. Типичная, кстати для java ситуация, поскольку средства сборки поощряют. Поэтому надо иметь возможность собирать и ghcXYZ-x-string, и ghcXYZ-x-string-vA.B.C, и ghcXYZ-x-string-vA.B.C-rel2 в случае такой необходимости. А если нет необходимости, то будет просто ghcXYZ-x-string. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [devel] GHC-7.4 2012-02-14 12:19 ` Igor Vlasenko @ 2012-02-14 12:46 ` Igor Vlasenko 0 siblings, 0 replies; 19+ messages in thread From: Igor Vlasenko @ 2012-02-14 12:46 UTC (permalink / raw) To: Денис Смирнов Cc: Vitaly Kuznetsov, ALT Linux Team development discussions On Tue, Feb 14, 2012 at 02:19:40PM +0200, Igor Vlasenko wrote: > Это в старой парадигме мы все пересобираем (гигантскими) транзакциями. > В новой мы все собираем рядом. Чтобы понять разницу в подходах, применим подход "редукция к абсурду". Представим, что подход "один ghc, одна библиотека" процвел и в Сизифе появилась подсистема haskell на 1000 пакетов. Что это будет? Подсистема python'а по сравнению с ней - детский сад. С питоном большую часть времени можно спокойно работать, только раз в год надо обновить питон. Тогда надо призвать былинного богатыря, который сбросит в incoming гигантского змия-транзакцию на 1000 пакетов, от которой неделю будет содрогаться сборочница и стонать майнтайнеры. После чего все дружно возликуют и будут спокойно жить еще год. А haskell при подходе "один ghc, одна библиотека" -- это питон, в котором былинного богатыря надо призывать на каждое обновление любого питоньего модуля. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2012-02-14 12:46 UTC | newest] Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-02-06 6:34 [devel] GHC-7.4 Vitaly Kuznetsov 2012-02-06 8:22 ` Денис Смирнов 2012-02-06 10:01 ` Vitaly Kuznetsov 2012-02-06 13:51 ` Денис Смирнов 2012-02-06 15:32 ` Igor Vlasenko 2012-02-08 22:28 ` Денис Смирнов 2012-02-09 21:22 ` Igor Vlasenko 2012-02-10 4:44 ` Vitaly Kuznetsov 2012-02-10 16:49 ` Igor Vlasenko 2012-02-10 17:54 ` Igor Vlasenko 2012-02-10 22:52 ` Денис Смирнов 2012-02-10 23:04 ` Igor Zubkov 2012-02-10 23:40 ` Денис Смирнов 2012-02-11 18:54 ` Igor Vlasenko 2012-02-12 21:32 ` Денис Смирнов 2012-02-13 15:06 ` Денис Смирнов 2012-02-13 19:17 ` Igor Vlasenko 2012-02-14 12:19 ` Igor Vlasenko 2012-02-14 12:46 ` Igor Vlasenko
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