[devel] mono.pc

Alexey Tourbin at на altlinux.ru
Вт Ноя 20 06:41:04 MSK 2007


On Tue, Nov 20, 2007 at 05:39:36AM +0300, Alexey Tourbin wrote:
> Тут случился ещё один прокол.  Дело в том, что моновские пакеты
> используют mono.pc для обнаружения mono.  Это как бы не совсем
> правильно, потом что mono.pc получается от сборки чисто сишного
> libmono и предназначен для линковки с libmono.
> 
> Name: Mono
> Requires: glib-2.0 gthread-2.0
> Libs: -L${libdir} -lmono -lpthread -ldl -lpthread -lm
> Cflags: -I${includedir} -D_REENTRANT
> 
> Короче, я положил mono.pc в новый пакет libmono-devel, не особо подумав
> о том, что кто-то может его использовать для обнаружения mono-рантайма.
> 
> Теперь что с этим делать.  Пакеты libmono-devel и mono (рантайм) не
> должны между собой напрямую зависеть.  То есть должна остаться
> возможность установить один из них без другого.  Поэтому я думаю что
> mono.pc придётся продублировать сразу в двух этих пакетах.

Вот более развернутый комментарий.


commit bb80483a59906285ac251dc177e9ee8a5545d28b
Author: Alexey Tourbin <at на altlinux>
Date:   Tue Nov 20 06:31:23 2007 +0300

    spec: packaged mono.pc into both mono and libmono-devel
    
    mono.pc is used for two different things: 1) for linkage with libmono;
    2) in configure.ac, mono packages query mono.pc to detect if mono runtime
    is installed.
    
    There seems to be no easy way to rearrange dependencies so as to deal with
    this ambiguity -- mono and libmono-devel should not explicitly depend on
    each other.  However, I noticed that currently no package requires
    'pkgconfig(mono)'.  This means I can package the same mono.pc file into
    both mono and libmono-devel without adding yet more ambiguity.
    
    Note that mono now requires glib2-devel.  There's not much I can do about that.
    glib2 dependencies cannot be moved under Requires.private, because libmono-devel
    header files include glib2-devel header files.  At the same time, I cannot
    ignore glib2-devel dependencies in mono package, because mono.pc is not going
    to work unless all dependencies are met.

diff --git a/mono.spec b/mono.spec
index 9589173..714def5 100644
--- a/mono.spec
+++ b/mono.spec
@@ -121,6 +121,8 @@ ZipLib, I18N, Cairo and Mono.* )
 %_monodir/*/cscompmgd
 %_monodir/*/cscompmgd.dll*
 %_monodir/*/mscorlib.dll*
+# mono.pc is packaged into both mono and libmono-devel
+%_pkgconfigdir/mono.pc
 %_pkgconfigdir/mono-cairo.pc
 %doc %_man1dir/mono.*
 %doc %_man1dir/mint.*
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/devel/attachments/20071120/6a382e35/attachment.bin 


Подробная информация о списке рассылки Devel