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 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.*