[devel] rpm-build-ocaml [2]
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Мар 28 07:33:29 MSK 2008
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
$
(Виртуальные зависимости тоже могут иметь релиз, чем иногда удобно
воспользоваться.)
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20080328/417a85a5/attachment-0002.bin>
Подробная информация о списке рассылки Devel