ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: devel@lists.altlinux.org
Subject: [devel] rpm-build-ocaml [2]
Date: Fri, 28 Mar 2008 07:33:29 +0300
Message-ID: <20080328043329.GC31135@solemn.turbinal> (raw)

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

On Thu, Mar 27, 2008 at 02:53:40AM +0300, Dmitry V. Levin wrote:
> Не пора ли нам, согласно плану выпуска 4.1
> http://freesource.info/wiki/AltLinux/Branches/41
> всё-таки объявить freeze?

У меня дело с окамлем пошло в гору, но как сайд эффект ничем кроме
окамля в ближайшие несколько дней я заниматься не смогу.  А то вылетит
из головы или станет не интересно.  Прошу пока не удалять мои пакеты в
orphaned, которые очень долго не пересобираются (perl-Gtk2), я к ним
обязательно вернусь.

Прогресс по части окамля таков:

1) версионные зависимости на сам окамль должны быть не = %version,
а $MAJOR.$MINOR (т.е. не 3.10.2, а 3.10).  В любом случае, зависимость
на версию окамля очень мало гарантирует (на самом деле, версия самого
окамля в окамлевских файлах нигде не учитывается).

2) Связь между окамлевскими файлами (внутренние зависимости)
осуществляются на уровне md5-сумм *.cmi интерфейсов.

Я подсмотрел, как собирают окмль в федоре.  В окамле есть утилита
objinfo (ocamlobjinfo), которая по умолчанию не устанавливается,
но это легко исправить.  Это утилита показывает внутренние зависимости
на *.cmi интерфейсы и их md5 суммы.

$ ocamlobjinfo /usr/lib/ocaml/weak.cmi 
File /usr/lib/ocaml/weak.cmi
  Module name: Weak
  Interfaces imported:
        6d509339939dea165d9dfd44d8a6a035        Weak
        8ba3d1faa24d659525c9025f41fd0c57        Pervasives
        083f2c94b44ff4e0b3220aaea6a783b4        Hashtbl
$

Любой *.cmi интерфейс условно загружает сам себя, откуда лего узнать md5
сумму его самого; а такжа реально загружает другие интерфейсы, откуда
легко узнать md5 суммы зависимостей.

Я предлагаю отображать внутренние окамлевские md5-зависимости
в виртуальные зависимости пакетов.  (Похожим образом, но всё-таки
немного по-другому, сделано в федоре.)  А именно, формат зависимостей
на интерфейсы может иметь вид:

	ocaml(cmi) = V-rel

где cmi -- имя модуля,
V -- $MAJOR.$MINOR окамля,
rel -- первые 8 символов md5 суммы (uppercased).

Пример (preview):

$ pwd
/home/at/git.alt/rpm-build-ocaml
$ ./scripts/ocaml.prov /usr/lib/ocaml/weak.cmi
ocaml(Weak) = 3.10-6D509339
$

(Виртуальные зависимости тоже могут иметь релиз, чем иногда удобно
воспользоваться.)

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

             reply	other threads:[~2008-03-28  4:33 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-28  4:33 Alexey Tourbin [this message]
2008-03-28 23:29 ` [devel] rpm-build Dmitry V. Levin
2008-03-29  4:41   ` Alexey Borovskoy
2008-03-31 11:06 ` [devel] rpm-build-ocaml [2] Alexey Tourbin

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=20080328043329.GC31135@solemn.turbinal \
    --to=at@altlinux.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