From: Igor Vlasenko <vlasenko@imath.kiev.ua>
To: "Денис Смирнов" <mithraen@freesource.info>
Cc: Vitaly Kuznetsov <vitty@altlinux.ru>,
ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] GHC-7.4
Date: Tue, 14 Feb 2012 14:19:40 +0200
Message-ID: <20120214121940.GA15188@dad.imath.kiev.ua> (raw)
In-Reply-To: <20120213213409.GA7858@t60p.mithraen.ru>
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
next prev parent reply other threads:[~2012-02-14 12:19 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-06 6:34 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 [this message]
2012-02-14 12:46 ` Igor Vlasenko
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=20120214121940.GA15188@dad.imath.kiev.ua \
--to=vlasenko@imath.kiev.ua \
--cc=devel@lists.altlinux.org \
--cc=mithraen@freesource.info \
--cc=vitty@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