diff --git a/mono-93665_find_requires_ignore_missing.patch b/mono-93665_find_requires_ignore_missing.patch new file mode 100644 index 0000000..416cdee --- /dev/null +++ b/mono-93665_find_requires_ignore_missing.patch @@ -0,0 +1,64 @@ +Index: mono/scripts/mono-find-requires.in +=================================================================== +--- mono/scripts/mono-find-requires.in (revision 93664) ++++ mono/scripts/mono-find-requires.in (revision 93665) +@@ -4,8 +4,9 @@ + # + # Authors: + # Ben Maurer (bmaurer@ximian.com) ++# Wade Berrier (wberrier@novell.com) + # +-# (C) 2005 Novell (http://www.novell.com) ++# (C) 2008 Novell (http://www.novell.com) + # + + IFS=$'\n' +@@ -69,6 +70,9 @@ + } + ') 2> /dev/null + done ++) ++ ++rpm_config_REQUIRES=$( + # Parse the xml .config files to see what native binaries we call into + # TODO: also check monodis --moduleref + for i in "${configlist[@]}"; do +@@ -110,12 +114,25 @@ + } + } + if(!ignore) { +- system("rpm -q --whatprovides --queryformat \"%{NAME}\n\" ""\""req"'$libext'""\"") ++ print req"'$libext'" + } + } ' $i 2>/dev/null + done + ) + ++# Resolve provides to packages, warning on missing to stderr ++config_REQUIRES=$( ++ for i in ${rpm_config_REQUIRES[@]} ; do ++ out=$(rpm -q --whatprovides --queryformat "%{NAME}\n" $i) ++ if [ $? -eq 0 ] ; then ++ echo $out ++ else ++ # echo to stderr ++ echo "mono-find-requires: Warning, could not find installed package that provides: $i" >&2 ++ fi ++ done ++) ++ + # Note about above: + # Use to do: system("rpm -q --whatprovides --queryformat \"%{NAME}\n\" ""\""req"'$libext'""\"") + # rpmlint prefers to have lib names instead of package names. There was a reason I was using package names but it slips me now... +@@ -140,9 +157,10 @@ + # in PROVIDES. While RPM functions correctly when such deps exist, + # they make the metadata a bit bloated. + # ++# TODO: make this use the mono-find-provides script, to share code + + # Filter out dups from both lists +-REQUIRES=$(echo "$REQUIRES" | sort | uniq) ++REQUIRES=$(echo "$REQUIRES" "$config_REQUIRES" | sort | uniq) + PROVIDES=$(echo "$PROVIDES" | sort | uniq) + + # diff --git a/mono-core.changes b/mono-core.changes index 8595308..9fb3102 100644 --- a/mono-core.changes +++ b/mono-core.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jan 23 17:52:56 CET 2008 - wberrier@suse.de + +- mono-93665_find_requires_ignore_missing.patch: warn on missing + files found in .config files instead of generating invalid deps. + ------------------------------------------------------------------- Wed Jan 16 17:23:23 MST 2008 - wberrier@suse.de diff --git a/mono-core.spec b/mono-core.spec index 9f964a1..98a24d0 100644 --- a/mono-core.spec +++ b/mono-core.spec @@ -16,10 +16,11 @@ Group: Development/Languages/Mono Summary: A .NET Runtime Environment Url: http://go-mono.org/ Version: 1.2.6 -Release: 4 +Release: 7 BuildRoot: %{_tmppath}/%{name}-%{version}-build Source0: mono-%{version}.tar.bz2 Patch0: mono-security_includes_warnings.patch +Patch1: mono-93665_find_requires_ignore_missing.patch ExclusiveArch: %ix86 x86_64 ppc hppa armv4l sparc s390 ia64 s390x BuildRoot: %{_tmppath}/%{name}-%{version}-build Provides: mono = %{version}-%{release} @@ -960,6 +961,7 @@ Authors: %prep %setup -q -n mono-%{version} %patch0 -p1 +%patch1 -p1 %build # These are only needed if there are patches to the runtime @@ -1048,6 +1050,9 @@ rm -f $RPM_BUILD_ROOT/usr/lib/mono/1.0/transform.exe rm -rf ${RPM_BUILD_ROOT} %changelog +* Wed Jan 23 2008 wberrier@suse.de +- mono-93665_find_requires_ignore_missing.patch: warn on missing + files found in .config files instead of generating invalid deps. * Wed Jan 16 2008 wberrier@suse.de - libgdiplus -> libgdiplus0 rename - add libgluezilla0 to recommends