ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: "Alexey I. Froloff" <raorn@immo.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: [devel] ruby, ruby, ruby...
Date: Thu, 10 Nov 2005 02:10:21 +0300
Message-ID: <20051109231021.GA16442@hell.immo.ru> (raw)

[-- Attachment #1: Type: text/plain, Size: 3207 bytes --]

(Извините за несколько сумбурное изложение - два часа ночи среды
;-)

Некоторое довольно продолжительное время мы с kas'ом общались в
жабере на тему ruby, rpm и Сизифа.  Ситуация складывается
примерно следующая:

Кирилл хочет (поправь меня если ошибаюсь) собрать ruby1.8,
ruby1.9 и возможно ruby1.6/1.7 в Сизиф с возможностью
одновременной установки разных версий.  Проблема с зависимостями.

Пакет с модулем называется ruby1.x-module-NAME, предоставляет
зависимости ruby(NAME) и ruby1.x(NAME).

Некая Софтина хочет модули, допустим foo и bar. Эти модули есть
для 1.8 (ruby1.8-module-foo, ruby1.8-module-bar) и 1.9
(ruby1.9-module-foo, ruby1.9-module-bar).  От версии ruby не
зависит, в зависимостях стоят ruby(foo) и ruby(bar), без версий.
Таким образом получается, что зависимости (с точки зрения
rpm/apt) могут быть удовлетворены устанвкой:

1. ruby1.8-module-foo и ruby1.8-module-bar
2. ruby1.8-module-foo и ruby1.9-module-bar
3. ruby1.9-module-foo и ruby1.8-module-bar
4. ruby1.9-module-foo и ruby1.9-module-bar

Из них рабочих вариантов - только 1. и 4., при условии что
используется /usr/bin/ruby нужной версии.

Таким образом этот вариант автоматически отпадает.


Если пакет с модулем предоставляет только версионную зависимость,
нужна версионная же зависимость на /usr/bin/ruby1.x с заменой
шебанга.  Работать будет только одна версия ruby и при переезде
на новую версию ruby нужно пересобирать ВСЁ что от ruby зависит,
либо всё что от ruby зависит и не является модулем тоже придётся
дублировать для всех поддерживаемых веток.

Это всё вариации на тему Питона и его Задницы (для всех) и тоже
по всей видимости отпадает.


Я предлагаю третий вариант (раз уж так хочется держать несколько
версий ruby если не в системе, то в репозитории).

Все модули автоматически зависят от libruby1.x (либо через
SONAME, либо через каталог %ruby_sitelibdir).  libruby разных
веток между собой конфликтуют.  Таким образом нельзя одновременно
установить в систему ruby1.8-module-foo и ruby1.9-module-foo, но
можно полностью заменить ruby1.8 на ruby1.9 при наличии
параллельных сборок всех модулей.  Ну а модули собираются
автоматически из чего-то типа kernel cvs под все поддерживаемые в
репозитории ветки ruby.

Остаётся открытым вопрос, что же делать с теми, кто не является
ни модулем, ни скриптом, но завязан на libruby.so.X.Y?  Сейчас
это vim, weechat и eruby (не знаю насколько последний в этом
списке уместен).  Пока этот список маленький, но никто не знает
что будет дальше.

Как один из вариантов, одна ветка об'является "основной", -devel
пакет из этой _и только из этой_ ветки алиасится на ruby-devel, с
которым собираются все кто этого хочет.

Или даже так - "остновная" ветка ruby не имеет версии в имени
пакета.  При смене "основной" ветки, старая и новая
пересобираются одновременно примерно с такими строчками с spec'е
(1.8 -> 1.9):

Name: ruby1.8
Obsoletes: ruby < %version-%release

Name: ruby
Obsoletes: ruby1.9 < %version-%release

Только боюсь apt скорее предложит снести всё что хочет старый
libruby.so.X.Y, чем заменить ruby на ruby1.8...


У кого-ньдь есть мысли по этому поводу?

-- 
Regards,
Sir Raorn.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

             reply	other threads:[~2005-11-09 23:10 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-09 23:10 Alexey I. Froloff [this message]
2005-11-10  0:36 ` Vitaly Lipatov
2005-11-10  6:14   ` Alexey I. Froloff
2005-11-10  7:02   ` Kirill A. Shutemov
2005-11-10 21:33     ` Vitaly Lipatov
2005-11-10 22:03       ` [devel] Re: ruby.ruby.ruby Michael Shigorin
2005-11-11  6:21       ` [devel] ruby, ruby, ruby Alexey I. Froloff
2005-11-11  7:53       ` Kirill A. Shutemov
2005-11-10  6:58 ` Kirill A. Shutemov
2005-11-10  7:05   ` Alexey I. Froloff

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=20051109231021.GA16442@hell.immo.ru \
    --to=raorn@immo.ru \
    --cc=devel@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 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