* [devel] rpm-build-ocaml [2]
@ 2008-03-28 4:33 Alexey Tourbin
2008-03-28 23:29 ` [devel] rpm-build Dmitry V. Levin
2008-03-31 11:06 ` [devel] rpm-build-ocaml [2] Alexey Tourbin
0 siblings, 2 replies; 4+ messages in thread
From: Alexey Tourbin @ 2008-03-28 4:33 UTC (permalink / raw)
To: devel
[-- 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 --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [devel] rpm-build
2008-03-28 4:33 [devel] rpm-build-ocaml [2] Alexey Tourbin
@ 2008-03-28 23:29 ` Dmitry V. Levin
2008-03-29 4:41 ` Alexey Borovskoy
2008-03-31 11:06 ` [devel] rpm-build-ocaml [2] Alexey Tourbin
1 sibling, 1 reply; 4+ messages in thread
From: Dmitry V. Levin @ 2008-03-28 23:29 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 598 bytes --]
On Fri, Mar 28, 2008 at 07:33:29AM +0300, Alexey Tourbin wrote:
> On Thu, Mar 27, 2008 at 02:53:40AM +0300, Dmitry V. Levin wrote:
> > Не пора ли нам, согласно плану выпуска 4.1
> > http://freesource.info/wiki/AltLinux/Branches/41
> > всё-таки объявить freeze?
>
> У меня дело с окамлем пошло в гору, но как сайд эффект ничем кроме
> окамля в ближайшие несколько дней я заниматься не смогу.
Твои изменения в rpm-build, наверное, нужно побыстрее донести до
Сизифа, поскольку они ломают сборку нескольких пакетов, и, следовательно,
должны попасть в Сизиф до начала фриза.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [devel] rpm-build
2008-03-28 23:29 ` [devel] rpm-build Dmitry V. Levin
@ 2008-03-29 4:41 ` Alexey Borovskoy
0 siblings, 0 replies; 4+ messages in thread
From: Alexey Borovskoy @ 2008-03-29 4:41 UTC (permalink / raw)
To: ALT Devel discussion list
* Суббота 29 марта 2008 Dmitry V. Levin
> Твои изменения в rpm-build, наверное, нужно побыстрее донести
> до Сизифа, поскольку они ломают сборку нескольких пакетов, и,
> следовательно, должны попасть в Сизиф до начала фриза.
fatal: Needed a single revision
gear: Invalid commit "template/madwifi/altlinux-4.0"
buildmodules: 'gear --describe -t template/madwifi/altlinux-4.0'
failed
Чо ему надо то?
Инструмент без документации -- не инструмент.
Я просто хочу собрать модуль, а не копаться в коде инструмента.
--
Алексей.
GPG key fingerprint
DBB3 1832 13C6 5C96 4A58 4AFF 78F7 159F 66AD 8D7E
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [devel] rpm-build-ocaml [2]
2008-03-28 4:33 [devel] rpm-build-ocaml [2] Alexey Tourbin
2008-03-28 23:29 ` [devel] rpm-build Dmitry V. Levin
@ 2008-03-31 11:06 ` Alexey Tourbin
1 sibling, 0 replies; 4+ messages in thread
From: Alexey Tourbin @ 2008-03-31 11:06 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 2012 bytes --]
On Fri, Mar 28, 2008 at 07:33:29AM +0300, Alexey Tourbin wrote:
> 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
> $
Это всё фактически касается файлов для линковки (байткода или native
executables), то есть это будут зависимости как бы devel-пакетов.
Теперь вопрос такой: что делать с #!/usr/bin/ocamlrun байткодом.
У этого байткода могут быть зависимости на DLL, котрые разрешаются
самим интерпретатором ocamlrun в рантайме.
Предварительный прогресс такой: байткод тоже поддается анализу, но
совсем по-другому, нежели чем файлы с Caml1999* magic. В байткод
можно заглянуть с помощью Bytesections.seek_section, примерно как это
сделано в tools/dumpobj.ml. Небольшая модификация этого файла:
let dump_exe ic =
Bytesections.read_toc ic;
let dlls_size = Bytesections.seek_section ic "DLLS" in
let dlls = read_primitive_table ic dlls_size in
Array.iter (fun dll -> print_string "DLL\t"; print_string dll; print_newline()) dlls
позволяет распечатать список подгружаемых DLLs.
$ ./tools/dumpobj ~tmp/lablgtktop
DLL dllunix
DLL dllthreads
DLL dlllablgl
DLL dlllablgtk2
DLL dlllablgtkgl2
DLL dlllablglade2
DLL dlllablrsvg
DLL dlllablgtkspell
$
Значит, можно ввести новое пространство виртуальных зависимостей,
типа ocaml-dll(unix), чтобы обеспечить работоспособность ocamlrun
байткода по зависимостям.
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-03-31 11:06 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-28 4:33 [devel] rpm-build-ocaml [2] Alexey Tourbin
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
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