[devel] I: nant-0.86-alt2.cvs.20071228

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пн Янв 14 21:17:55 MSK 2008


On Mon, Jan 14, 2008 at 02:27:50PM +0300, Alexey Tourbin wrote:
> On Sat, Jan 12, 2008 at 05:46:41AM +0300, Dmitry V. Levin wrote:
> > On Sat, Jan 12, 2008 at 05:43:07AM +0300, QA Team Robot wrote:
> > > 	2 NEW unmet dependencies detected:
> > > nant#0.86-alt2.cvs.20071228	libc.so.6
> > 
> > mono-пакеты не должны быть noarch?
> 
> mono-пакеты не должны быть noarch, если в них используется dllimport
> (рантайм-требование на сонеймы).  Это скорее искусственное ограничение,
> но не существует способа выразить зависимость на сонейм переносимым
> между архитектурами способом.

Добавил проверку в monolib.req, теперь nant не собирается с такой
диагностикой:

find-requires: running scripts (files,lib,mono,monolib,pam,perl,pkgconfig,pkgconfiglib,python,shebang,shell,static,symlinks)
monolib.req: /usr/src/tmp/nant-buildroot/usr/lib/NAnt/NAnt.Core.dll: cannot resolve module reference kernel32.dll
monolib.req: /usr/src/tmp/nant-buildroot/usr/lib/NAnt/NAnt.Core.dll: noarch package has soname dependency libc.so.6
error: /bin/sh failed


commit af58696ad8ff7f2976fe4a990749c07469cf5120
Author: Alexey Tourbin <at на altlinux>
Date:   Mon Jan 14 20:32:18 2008 +0300

    monolib.req: added check to prevent soname dependencies in noarch packages

diff --git a/mono.req b/mono.req
index 94d39c6..c89dad4 100755
--- a/mono.req
+++ b/mono.req
@@ -79,14 +79,19 @@ MonoLibReq()
 
 	local ref
 	for ref in $refs; do
-		local target="$(fgrep "dll=\"$ref\"" "$f".config "$(MonoConfigFile)" 2>/dev/null |
+		local soname="$(fgrep "dll=\"$ref\"" "$f".config "$(MonoConfigFile)" 2>/dev/null |
 			sed -n 's/.*target="\(lib[^"]*[.]so[.][^"]*\|lib[^"]*[0-9][.]so\)".*/\1/p' |head -1)"
-		if [ -n "$target" ]; then
-			Verbose "$f: $ref -> $target"
-			echo "$target$suffix"
+		if [ -n "$soname" ]; then
+			Verbose "$f: $ref -> $soname"
+			[ "${RPM_TARGET_ARCH-}" != noarch ] &&
+				echo "$soname$suffix" ||
+				Fatal "$f: noarch package has soname dependency $soname"
 		elif [ -z "${ref##lib*.so.*}" -o -z "${ref##lib*[0-9].so}" ]; then
-			Verbose "$f: $ref = $ref"
-			echo "$ref$suffix"
+			soname=$ref
+			Verbose "$f: $ref = $soname"
+			[ "${RPM_TARGET_ARCH-}" != noarch ] &&
+				echo "$soname$suffix" ||
+				Fatal "$f: noarch package has soname dependency $soname"
 		else
 			Info "$f: cannot resolve module reference $ref"
 		fi
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20080114/83d1156d/attachment-0002.bin>


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