[mono/f14/master] Move xbuild.exe and dependencies into -devel sub-package (BZ 671917) Ensure that the symbolic links

chkr chkr at fedoraproject.org
Mon Mar 14 23:58:37 UTC 2011


commit c54ed4c7e25ef2c453ce47c56e5d6bff16448bdc
Author: Christian Krause <chkr at fedoraproject.org>
Date:   Tue Mar 15 00:58:33 2011 +0100

    Move xbuild.exe and dependencies into -devel sub-package (BZ 671917)
    Ensure that the symbolic links and the actual libraries in the GAC are
    always in the same sub-package
    CVE-2010-4159 (BZ 654405)
    CVE-2010-4254 (BZ 659911)

 ...ric-instantions-for-constraint-violations.patch |  112 ++++++++++++++++
 ...eric-instance-verification-is-security-is.patch |   38 ++++++
 0001-Fix-corlib-testsuite-crash.patch              |   30 ++++
 ...-invalid-instantiation-of-generic-methods.patch |   79 +++++++++++
 ...dllimported-shared-libs-in-the-base-direc.patch |   63 +++++++++
 mono.spec                                          |  139 ++++++++++++-------
 6 files changed, 410 insertions(+), 51 deletions(-)
---
diff --git a/0001-Check-generic-instantions-for-constraint-violations.patch b/0001-Check-generic-instantions-for-constraint-violations.patch
new file mode 100644
index 0000000..5a7c23d
--- /dev/null
+++ b/0001-Check-generic-instantions-for-constraint-violations.patch
@@ -0,0 +1,112 @@
+From bde0d1f7aa16004144b21927d2ff8bfec5b1b33a Mon Sep 17 00:00:00 2001
+From: Rodrigo Kumpera <kumpera at gmail.com>
+Date: Thu, 25 Nov 2010 14:37:23 -0200
+Subject: [PATCH] Check generic instantions for constraint violations.
+
+	* class.c (mono_class_init): Check instantiations of generic
+	instances.
+
+	* icall.c (ves_icall_Type_MakeGenericType): Ditto.
+
+	* verify.c: Add mono_verifier_class_is_valid_generic_instantiation
+	to the internal API so generic instances can be checked.
+
+	Fixes #654136
+---
+ mono/metadata/class.c            |    3 +++
+ mono/metadata/icall.c            |    6 ++++++
+ mono/metadata/verify-internals.h |    1 +
+ mono/metadata/verify.c           |   15 +++++++++++++++
+ 4 files changed, 25 insertions(+), 0 deletions(-)
+
+diff --git a/mono/metadata/class.c b/mono/metadata/class.c
+index 7db29ce..62d613a 100644
+--- a/mono/metadata/class.c
++++ b/mono/metadata/class.c
+@@ -4530,6 +4530,9 @@ mono_class_init (MonoClass *class)
+ 			setup_interface_offsets (class, 0);
+ 	}
+ 
++	if (class->generic_class && !mono_verifier_class_is_valid_generic_instantiation (class))
++		mono_class_set_failure (class, MONO_EXCEPTION_TYPE_LOAD, g_strdup ("Invalid generic instantiation"));
++
+ 	goto leave;
+ 
+  leave:
+diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c
+index ec86027..8a31c8e 100644
+--- a/mono/metadata/icall.c
++++ b/mono/metadata/icall.c
+@@ -67,6 +67,7 @@
+ #include <mono/metadata/security-core-clr.h>
+ #include <mono/metadata/mono-perfcounters.h>
+ #include <mono/metadata/mono-debug.h>
++#include <mono/metadata/verify-internals.h>
+ #include <mono/io-layer/io-layer.h>
+ #include <mono/utils/strtod.h>
+ #include <mono/utils/monobitset.h>
+@@ -2432,6 +2433,7 @@ ves_icall_Type_GetGenericTypeDefinition_impl (MonoReflectionType *type)
+ static MonoReflectionType*
+ ves_icall_Type_MakeGenericType (MonoReflectionType *type, MonoArray *type_array)
+ {
++	MonoClass *class;
+ 	MonoType *geninst, **types;
+ 	int i, count;
+ 
+@@ -2450,6 +2452,10 @@ ves_icall_Type_MakeGenericType (MonoReflectionType *type, MonoArray *type_array)
+ 	if (!geninst)
+ 		return NULL;
+ 
++	class = mono_class_from_mono_type (geninst);
++	if (!mono_verifier_class_is_valid_generic_instantiation (class))
++		mono_raise_exception (mono_get_exception_argument ("method", "Invalid generic arguments"));
++
+ 	return mono_type_get_object (mono_object_domain (type), geninst);
+ }
+ 
+diff --git a/mono/metadata/verify-internals.h b/mono/metadata/verify-internals.h
+index 6019b31..f73b010 100644
+--- a/mono/metadata/verify-internals.h
++++ b/mono/metadata/verify-internals.h
+@@ -21,6 +21,7 @@ gboolean mono_verifier_is_enabled_for_class (MonoClass *klass) MONO_INTERNAL;
+ 
+ gboolean mono_verifier_is_method_full_trust (MonoMethod *method) MONO_INTERNAL;
+ gboolean mono_verifier_is_class_full_trust (MonoClass *klass) MONO_INTERNAL;
++gboolean mono_verifier_class_is_valid_generic_instantiation (MonoClass *class) MONO_INTERNAL;
+ 
+ gboolean mono_verifier_verify_class (MonoClass *klass) MONO_INTERNAL;
+ 
+diff --git a/mono/metadata/verify.c b/mono/metadata/verify.c
+index d522ac5..b678ed7 100644
+--- a/mono/metadata/verify.c
++++ b/mono/metadata/verify.c
+@@ -6526,6 +6526,13 @@ mono_verifier_verify_class (MonoClass *class)
+ 		return FALSE;
+ 	return TRUE;
+ }
++
++gboolean
++mono_verifier_class_is_valid_generic_instantiation (MonoClass *class)
++{
++	return mono_class_is_valid_generic_instantiation (NULL, class);
++}
++
+ #else
+ 
+ gboolean
+@@ -6597,4 +6604,12 @@ mono_image_verify_tables (MonoImage *image, int level)
+ 	/* The verifier was disabled at compile time */
+ 	return NULL;
+ }	
++
++gboolean
++mono_verifier_class_is_valid_generic_instantiation (MonoClass *class)
++{
++	return TRUE;
++}
++
++
+ #endif
+-- 
+1.7.3.4
+
diff --git a/0001-Disable-generic-instance-verification-is-security-is.patch b/0001-Disable-generic-instance-verification-is-security-is.patch
new file mode 100644
index 0000000..dee9daf
--- /dev/null
+++ b/0001-Disable-generic-instance-verification-is-security-is.patch
@@ -0,0 +1,38 @@
+From 556423c2cbadc1b6c912d891e54c1ab111a3f749 Mon Sep 17 00:00:00 2001
+From: Rodrigo Kumpera <kumpera at gmail.com>
+Date: Mon, 29 Nov 2010 12:39:32 -0200
+Subject: [PATCH] Disable generic instance verification is security is off.
+
+	* verify.c: If security is not enabled don't perform
+	instance verification as 2.6 SRE/mcs can't couple with it.
+
+	Fix System.dll build regression.
+---
+ mono/metadata/verify.c |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/mono/metadata/verify.c b/mono/metadata/verify.c
+index 2b393a9..50a7224 100644
+--- a/mono/metadata/verify.c
++++ b/mono/metadata/verify.c
+@@ -6530,6 +6530,8 @@ mono_verifier_verify_class (MonoClass *class)
+ gboolean
+ mono_verifier_class_is_valid_generic_instantiation (MonoClass *class)
+ {
++	if (!mono_verifier_is_enabled_for_class (class))
++		return TRUE;
+ 	return mono_class_is_valid_generic_instantiation (NULL, class);
+ }
+ 
+@@ -6538,6 +6540,8 @@ mono_verifier_is_method_valid_generic_instantiation (MonoMethod *method)
+ {
+ 	if (!method->is_inflated)
+ 		return TRUE;
++	if (!mono_verifier_is_enabled_for_method (method))
++		return TRUE;
+ 	return mono_method_is_valid_generic_instantiation (NULL, method);
+ }
+ 
+-- 
+1.7.3.4
+
diff --git a/0001-Fix-corlib-testsuite-crash.patch b/0001-Fix-corlib-testsuite-crash.patch
new file mode 100644
index 0000000..f171fe7
--- /dev/null
+++ b/0001-Fix-corlib-testsuite-crash.patch
@@ -0,0 +1,30 @@
+From 472119d9436d2707ce7239e8d6e2ca6e3da8d6f3 Mon Sep 17 00:00:00 2001
+From: Rodrigo Kumpera <kumpera at gmail.com>
+Date: Tue, 23 Nov 2010 18:51:22 -0200
+Subject: [PATCH] Fix corlib testsuite crash.
+
+	* icall.c (ves_icall_Type_MakeGenericType): We can inflate
+	into the gtd and the verifier function is not able to handle
+	it.
+---
+ mono/metadata/icall.c |    4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c
+index 8a31c8e..ec2daf5 100644
+--- a/mono/metadata/icall.c
++++ b/mono/metadata/icall.c
+@@ -2453,7 +2453,9 @@ ves_icall_Type_MakeGenericType (MonoReflectionType *type, MonoArray *type_array)
+ 		return NULL;
+ 
+ 	class = mono_class_from_mono_type (geninst);
+-	if (!mono_verifier_class_is_valid_generic_instantiation (class))
++
++	/*we might inflate to the GTD*/
++	if (class->generic_class && !mono_verifier_class_is_valid_generic_instantiation (class))
+ 		mono_raise_exception (mono_get_exception_argument ("method", "Invalid generic arguments"));
+ 
+ 	return mono_type_get_object (mono_object_domain (type), geninst);
+-- 
+1.7.3.4
+
diff --git a/0001-Handle-invalid-instantiation-of-generic-methods.patch b/0001-Handle-invalid-instantiation-of-generic-methods.patch
new file mode 100644
index 0000000..736a5b0
--- /dev/null
+++ b/0001-Handle-invalid-instantiation-of-generic-methods.patch
@@ -0,0 +1,79 @@
+From 4905ef1130feb26c3150b28b97e4a96752e0d399 Mon Sep 17 00:00:00 2001
+From: Rodrigo Kumpera <kumpera at gmail.com>
+Date: Thu, 25 Nov 2010 14:23:31 -0200
+Subject: [PATCH] Handle invalid instantiation of generic methods.
+
+	* verify.c: Add new function to internal verifier API to check
+	method instantiations.
+
+	* reflection.c (mono_reflection_bind_generic_method_parameters):
+	Check the instantiation before returning it.
+
+	Fixes #655847
+---
+ mono/metadata/reflection.c       |    3 +++
+ mono/metadata/verify-internals.h |    1 +
+ mono/metadata/verify.c           |   15 +++++++++++++++
+ 3 files changed, 19 insertions(+), 0 deletions(-)
+
+diff --git a/mono/metadata/reflection.c b/mono/metadata/reflection.c
+index 3ba44ea..f7905f6 100644
+--- a/mono/metadata/reflection.c
++++ b/mono/metadata/reflection.c
+@@ -10176,6 +10176,9 @@ mono_reflection_bind_generic_method_parameters (MonoReflectionMethod *rmethod, M
+ 		mono_g_hash_table_insert (image->generic_def_objects, imethod, rmethod);
+ 		mono_loader_unlock ();
+ 	}
++
++	if (!mono_verifier_is_method_valid_generic_instantiation (inflated))
++		mono_raise_exception (mono_get_exception_argument ("typeArguments", "Invalid generic arguments"));
+ 	
+ 	return mono_method_get_object (mono_object_domain (rmethod), inflated, NULL);
+ }
+diff --git a/mono/metadata/verify-internals.h b/mono/metadata/verify-internals.h
+index f73b010..a95cc5d 100644
+--- a/mono/metadata/verify-internals.h
++++ b/mono/metadata/verify-internals.h
+@@ -22,6 +22,7 @@ gboolean mono_verifier_is_enabled_for_class (MonoClass *klass) MONO_INTERNAL;
+ gboolean mono_verifier_is_method_full_trust (MonoMethod *method) MONO_INTERNAL;
+ gboolean mono_verifier_is_class_full_trust (MonoClass *klass) MONO_INTERNAL;
+ gboolean mono_verifier_class_is_valid_generic_instantiation (MonoClass *class) MONO_INTERNAL;
++gboolean mono_verifier_is_method_valid_generic_instantiation (MonoMethod *method) MONO_INTERNAL;
+ 
+ gboolean mono_verifier_verify_class (MonoClass *klass) MONO_INTERNAL;
+ 
+diff --git a/mono/metadata/verify.c b/mono/metadata/verify.c
+index b678ed7..2b393a9 100644
+--- a/mono/metadata/verify.c
++++ b/mono/metadata/verify.c
+@@ -6533,6 +6533,14 @@ mono_verifier_class_is_valid_generic_instantiation (MonoClass *class)
+ 	return mono_class_is_valid_generic_instantiation (NULL, class);
+ }
+ 
++gboolean
++mono_verifier_is_method_valid_generic_instantiation (MonoMethod *method)
++{
++	if (!method->is_inflated)
++		return TRUE;
++	return mono_method_is_valid_generic_instantiation (NULL, method);
++}
++
+ #else
+ 
+ gboolean
+@@ -6611,5 +6619,12 @@ mono_verifier_class_is_valid_generic_instantiation (MonoClass *class)
+ 	return TRUE;
+ }
+ 
++gboolean
++mono_verifier_is_method_valid_generic_instantiation (MonoMethod *method)
++{
++	return TRUE;
++}
++
++
+ 
+ #endif
+-- 
+1.7.3.4
+
diff --git a/0001-Search-for-dllimported-shared-libs-in-the-base-direc.patch b/0001-Search-for-dllimported-shared-libs-in-the-base-direc.patch
new file mode 100644
index 0000000..85615a3
--- /dev/null
+++ b/0001-Search-for-dllimported-shared-libs-in-the-base-direc.patch
@@ -0,0 +1,63 @@
+From 8e890a3bf80a4620e417814dc14886b1bbd17625 Mon Sep 17 00:00:00 2001
+From: Paolo Molaro <lupus at oddwiz.org>
+Date: Tue, 12 Oct 2010 15:53:25 +0200
+Subject: [PATCH] Search for dllimported shared libs in the base directory, not cwd.
+
+* loader.c: we don't search the current directory anymore for shared
+libraries referenced in DllImport attributes, as it has a slight
+security risk. We search in the same directory where the referencing
+image was loaded from, instead. Fixes bug# 641915.
+---
+ mono/metadata/loader.c |   18 ++++++++++--------
+ 1 files changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/mono/metadata/loader.c b/mono/metadata/loader.c
+index 4e9a152..db126b8 100644
+--- a/mono/metadata/loader.c
++++ b/mono/metadata/loader.c
+@@ -1340,32 +1340,34 @@ mono_lookup_pinvoke_call (MonoMethod *method, const char **exc_class, const char
+ 
+ 		if (!module) {
+ 			void *iter = NULL;
+-			while ((full_name = mono_dl_build_path (NULL, file_name, &iter))) {
++			char *mdirname = g_path_get_dirname (image->name);
++			while ((full_name = mono_dl_build_path (mdirname, file_name, &iter))) {
+ 				mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_DLLIMPORT,
+-						"DllImport loading location: '%s'.", full_name);
++					"DllImport loading library: '%s'.", full_name);
+ 				module = cached_module_load (full_name, MONO_DL_LAZY, &error_msg);
+ 				if (!module) {
+ 					mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_DLLIMPORT,
+-							"DllImport error loading library: '%s'.",
+-							error_msg);
++						"DllImport error loading library '%s'.",
++						error_msg);
+ 					g_free (error_msg);
+ 				}
+ 				g_free (full_name);
+ 				if (module)
+ 					break;
+ 			}
++			g_free (mdirname);
+ 		}
+ 
+ 		if (!module) {
+ 			void *iter = NULL;
+-			while ((full_name = mono_dl_build_path (".", file_name, &iter))) {
++			while ((full_name = mono_dl_build_path (NULL, file_name, &iter))) {
+ 				mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_DLLIMPORT,
+-					"DllImport loading library: '%s'.", full_name);
++						"DllImport loading location: '%s'.", full_name);
+ 				module = cached_module_load (full_name, MONO_DL_LAZY, &error_msg);
+ 				if (!module) {
+ 					mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_DLLIMPORT,
+-						"DllImport error loading library '%s'.",
+-						error_msg);
++							"DllImport error loading library: '%s'.",
++							error_msg);
+ 					g_free (error_msg);
+ 				}
+ 				g_free (full_name);
+-- 
+1.7.3.4
+
diff --git a/mono.spec b/mono.spec
index 4a9578f..67414dc 100644
--- a/mono.spec
+++ b/mono.spec
@@ -8,7 +8,7 @@
 
 Name:           mono
 Version:        2.6.7
-Release:        3%{?dist}
+Release:        4%{?dist}
 Summary:        A .NET runtime environment
 
 Group:          Development/Languages
@@ -56,6 +56,18 @@ Patch4: mono-2.0-monoservice.patch
 Patch5: mono-2.6-metadata-makefile.patch
 Patch6: mono-242-libgdiplusconfig.patch
 Patch7: mono-264-libdir.patch
+# CVE-2010-4159
+# https://github.com/mono/mono/commit/8e890a3bf80a4620e417814dc14886b1bbd17625
+Patch8: 0001-Search-for-dllimported-shared-libs-in-the-base-direc.patch
+# CVE-2010-4254 (and some required additional upstream commits)
+# https://github.com/mono/mono/commit/bde0d1f7aa16004144b21927d2ff8bfec5b1b33a
+Patch9: 0001-Check-generic-instantions-for-constraint-violations.patch
+# https://github.com/mono/mono/commit/4905ef1130feb26c3150b28b97e4a96752e0d399
+Patch10: 0001-Handle-invalid-instantiation-of-generic-methods.patch
+# https://github.com/mono/mono/commit/556423c2cbadc1b6c912d891e54c1ab111a3f749
+Patch11: 0001-Disable-generic-instance-verification-is-security-is.patch
+# https://github.com/mono/mono/commit/472119d9436d2707ce7239e8d6e2ca6e3da8d6f3
+Patch12: 0001-Fix-corlib-testsuite-crash.patch
 
 %if %{with_mono4}
 Obsoletes: mono-mono-4-preview < 2.6.4
@@ -284,6 +296,8 @@ Development file for monodoc
 Summary:  Provides preview code for C# 4
 Group:    Development/Languages
 Requires: mono-core = %{version}-%{release}
+# mono-4-preview is contains both runtime and devel files
+Requires: mono-devel
 
 %description -n mono-4-preview
 Preview for the new C# 4.0 code
@@ -293,6 +307,12 @@ Preview for the new C# 4.0 code
 %define gac_dll(dll)  %{monodir}/gac/%{1} \
   %{monodir}/?.0/%{1}.dll \
   %{nil}
+%define gac_dll_123_only(dll)  %{monodir}/gac/%{1}/[123]*\
+  %{monodir}/[123].0/%{1}.dll \
+  %{nil}
+%define gac_dll_4_only(dll)  %{monodir}/gac/%{1}/[4]*\
+  %{monodir}/4.0/%{1}.dll \
+  %{nil}
 %define gac_dll_2(dll) %{monodir}/gac/%{1} \
   %{monodir}/?.5/%{1}.dll \
   %{nil}
@@ -300,8 +320,8 @@ Preview for the new C# 4.0 code
   %{monodir}/2.1/%{1}.dll \
   %{nil}
 %define mono_bin(bin) %{_bindir}/%{1} \
-  %{monodir}/?.0/%{1}.exe \
-  %{monodir}/?.0/%{1}.exe.* \
+  %{monodir}/1.0/%{1}.exe \
+  %{monodir}/1.0/%{1}.exe.* \
   %{nil}
 %define mono_bin_1(bin, dll) %{_bindir}/%{1} \
   %{monodir}/1.0/%{2}.exe \
@@ -332,7 +352,11 @@ sed -i -e 's!%{_libdir}!@libdir@!' %{PATCH7}
 sed -i -e 's!$(prefix)/lib/!%{_libdir}/!' docs/Makefile.{am,in}
 sed -i -e 's!${prefix}/lib/!%{_libdir}/!' data/monodoc.pc.in
 sed -i -e 's!${prefix}/lib/!%{_libdir}/!' data/mono-cairo.pc.in
-
+%patch8 -p1 -b .CVE-2010-4159
+%patch9 -p1 -b .CVE-2010-4254-1
+%patch10 -p1 -b .CVE-2010-4254-2
+%patch11 -p1 -b .CVE-2010-4254-3
+%patch12 -p1 -b .CVE-2010-4254-4
 autoreconf -f -i -s
 
 # Add undeclared Arg
@@ -378,9 +402,7 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 
 # This was removed upstream:
 %{__rm} -fr %{buildroot}%{monodir}/gac/Mono.Security.Win32/[124]*
-%{__rm} -rf %{buildroot}%{monodir}/1.0/Mono.Security.Win32.dll
-%{__rm} -rf %{buildroot}%{monodir}/2.0/Mono.Security.Win32.dll
-%{__rm} -rf %{buildroot}%{monodir}/4.0/Mono.Security.Win32
+%{__rm} -rf %{buildroot}%{monodir}/[124].0/Mono.Security.Win32.dll
 %{__rm} %{buildroot}%{_datadir}/libgc-mono/README*
 %{__rm} %{buildroot}%{_datadir}/libgc-mono/barrett_diagram
 %{__rm} %{buildroot}%{_datadir}/libgc-mono/*.html
@@ -414,24 +436,22 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 %{_bindir}/monodir
 %{_bindir}/mono-test-install
 %{_bindir}/mono-gdb.py
-%mono_bin lc
+%mono_bin_2 lc lc
 %mono_bin certmgr
 %mono_bin chktrust
-%mono_bin csharp
+%mono_bin_2 csharp csharp
 %mono_bin gacutil
+%mono_bin_2 gacutil2 gacutil
 %{_bindir}/gacutil1
-%{_bindir}/gacutil2
-%mono_bin gmcs
+%mono_bin_2 gmcs gmcs
 %mono_bin mcs
-%mono_bin xbuild
 %{_bindir}/mcs1
 %mono_bin mozroots
 %mono_bin setreg
 %mono_bin sn
-%mono_bin pdb2mdb
-%mono_bin sqlmetal
-%mono_bin svcutil
-%{monodir}/2.0/System.Xml.Linq.dll
+%mono_bin_2 pdb2mdb pdb2mdb
+%mono_bin_2 sqlmetal sqlmetal
+%mono_bin_2 svcutil svcutil
 %{_libdir}/libmono.so.*
 %{_libdir}/libmono-profiler-logging.so.*
 %{_mandir}/man1/certmgr.1.gz
@@ -453,6 +473,8 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 %dir %{monodir}/3.5
 %dir %{monodir}/gac
 %dir %{monodir}/compat-*
+%dir %{_libdir}/mono/gac/System.Xml.Linq
+%gac_dll_123_only System.Xml.Linq
 %gac_dll Commons.Xml.Relaxng
 %gac_dll I18N
 %gac_dll I18N.West
@@ -482,7 +504,6 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 %gac_dll System.Xml
 %gac_dll Mono.Tasklets
 %gac_dll WindowsBase
-%{monodir}/gac/System.Xml.Linq
 %{monodir}/?.0/mscorlib.dll
 %{monodir}/?.0/mscorlib.dll.mdb
 %dir %{_sysconfdir}/mono
@@ -494,56 +515,51 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 %config (noreplace) %{_sysconfdir}/mono/2.0/machine.config
 %config (noreplace) %{_sysconfdir}/mono/2.0/settings.map
 %{_libdir}/mono-source-libs/
-%{monodir}/compat-2.0/System.Web.Mvc.dll
-%if %{with_mono4}
-%{_libdir}/mono/gac/Microsoft.Build.Tasks.v4.0/4.0*
-%{_libdir}/mono/gac/Microsoft.Build.Utilities.v4.0/4.0*
-%endif
 
 %files devel
 %defattr(-,root,root,-)
 %{_sysconfdir}/pki/mono/
 %{_bindir}/mono-api-*
-%{monodir}/?.0/mono-api-info*
+%{monodir}/2.0/mono-api-info*
 %{_bindir}/monodis
 %{_bindir}/al1
-%mono_bin_1 al al
+%mono_bin al
 %mono_bin_2 al2 al
 %mono_bin caspol
 %mono_bin cert2spc
 %mono_bin cilc
 %mono_bin dtd2xsd
 %mono_bin dtd2rng
-%mono_bin_1 genxs1 genxs
-%{_bindir}/genxs
-%mono_bin sgen
-%{monodir}/?.0/installutil.*
+%mono_bin genxs
+%{_bindir}/genxs1
+%mono_bin_2 sgen sgen
+%{monodir}/1.0/installutil.*
+%{monodir}/2.0/installutil.*
 %mono_bin installvst
-%mono_bin_1 ilasm ilasm
+%mono_bin ilasm
 %{_bindir}/ilasm1
 %mono_bin_2 ilasm2 ilasm
 %mono_bin macpack
 %mono_bin makecert
 %mono_bin mkbundle
+%mono_bin_2 mkbundle2 mkbundle
 %{_bindir}/mkbundle1
-%{_bindir}/mkbundle2
 %mono_bin mono-cil-strip
-%mono_bin monolinker
-%mono_bin_1 monop monop
+%mono_bin_2 monolinker monolinker
+%mono_bin monop
 %{_bindir}/monop1
 %mono_bin_2 monop2 monop
-%mono_bin mono-shlib-cop
-%mono_bin mono-xmltool
+%mono_bin_2 mono-shlib-cop mono-shlib-cop
+%mono_bin_2 mono-xmltool mono-xmltool
 %{_bindir}/pedump
 %mono_bin permview
 %mono_bin prj2make
 %{_bindir}/resgen1
-%mono_bin_1 resgen resgen
+%mono_bin resgen
 %mono_bin_2 resgen2 resgen
 %{_mandir}/man1/resgen.1.gz
 %mono_bin secutil
 %mono_bin signcode
-%mono_bin xbuild
 %{monodir}/1.0/ictool.exe
 %{monodir}/1.0/ictool.exe.mdb
 %{_mandir}/man1/al.1.gz
@@ -567,9 +583,12 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 %{_mandir}/man1/sgen.1.gz
 %{_mandir}/man1/signcode.1.gz
 %{_mandir}/man1/xbuild.1.gz
-%gac_dll PEAPI
-%gac_dll Microsoft.Build.Engine
-%gac_dll Microsoft.Build.Framework
+%dir %{_libdir}/mono/gac/PEAPI
+%gac_dll_123_only PEAPI
+%dir %{_libdir}/mono/gac/Microsoft.Build.Engine
+%gac_dll_123_only Microsoft.Build.Engine
+%dir %{_libdir}/mono/gac/Microsoft.Build.Framework
+%gac_dll_123_only Microsoft.Build.Framework
 %gac_dll Microsoft.Build.Tasks
 %gac_dll Microsoft.Build.Utilities
 %gac_dll_2 Microsoft.Build.Tasks.v3.5
@@ -608,10 +627,11 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 %dir %{_datadir}/mono-1.0/mono
 %dir %{_datadir}/mono-1.0/mono/cil
 %{_libdir}/mono/1.0/culevel*
+%mono_bin_2 xbuild xbuild
 
 %files nunit
 %defattr(-,root,root,-)
-%mono_bin_1 nunit-console nunit-console
+%mono_bin nunit-console
 %mono_bin_2 nunit-console2 nunit-console
 %gac_dll nunit.core
 %gac_dll nunit.framework
@@ -641,7 +661,7 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 %files extras
 %defattr(-,root,root,-)
 %{_mandir}/man1/mono-service.1.gz
-%mono_bin_1 mono-service mono-service
+%mono_bin mono-service
 %mono_bin_2 mono-service2 mono-service
 %{monodir}/gac/mono-service
 %gac_dll System.Configuration.Install
@@ -680,14 +700,15 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 %gac_dll System.Web.Mvc
 %gac_dll System.Web.Routing
 %gac_dll System.Web.Services
+%{monodir}/compat-2.0/System.Web.Mvc.dll
 %mono_bin disco
-%mono_bin mconfig
+%mono_bin_2 mconfig mconfig
 %mono_bin soapsuds
-%mono_bin_1 wsdl wsdl
+%mono_bin wsdl
 %{_bindir}/wsdl1
 %mono_bin_2 wsdl2 wsdl
 %mono_bin_2 xsd2 xsd
-%mono_bin_1 xsd xsd
+%mono_bin xsd
 %{_mandir}/man1/disco.1.gz
 %{_mandir}/man1/mconfig.1.gz
 %{_mandir}/man1/soapsuds.1.gz
@@ -699,7 +720,7 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 %config (noreplace) %{_sysconfdir}/mono/2.0/DefaultWsdlHelpGenerator.aspx
 %config (noreplace) %{_sysconfdir}/mono/mconfig/config.xml
 %config (noreplace) %{_sysconfdir}/mono/2.0/web.config
-%mono_bin httpcfg
+%mono_bin_2 httpcfg httpcfg
 %{_mandir}/man1/httpcfg.1.gz
 
 %files web-devel
@@ -721,7 +742,7 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 
 %files data
 %defattr(-,root,root,-)
-%mono_bin sqlsharp
+%mono_bin_2 sqlsharp sqlsharp
 %{_mandir}/man1/sqlsharp.1.gz
 %gac_dll System.Data
 %gac_dll System.Data.DataSetExtensions
@@ -769,7 +790,7 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 %{_libdir}/mono/gac/monodoc
 %{_libdir}/monodoc/*
 %{_libdir}/mono/monodoc/monodoc.dll
-%mono_bin mdoc
+%mono_bin_2 mdoc mdoc
 %{_bindir}/mdoc-*
 %{_bindir}/mdass*
 %{_bindir}/mdval*
@@ -793,17 +814,33 @@ install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pki/mono/
 %{_bindir}/dmcs
 %{monodir}/4.0/*.exe
 %{monodir}/4.0/*.exe.*
-%{monodir}/4.0/Mono.Security.Win32.dll
-%{monodir}/4.0/System.Xml.Linq.dll
+%gac_dll_4_only System.Xml.Linq
 %{monodir}/4.0/MSBuild/Microsoft*
-%{monodir}/4.0/Microsoft*
+%{monodir}/4.0/Microsoft.Build.Tasks.*.dll
+%{monodir}/4.0/Microsoft.Build.xsd
+%{monodir}/4.0/Microsoft.Build.Utilities.*.dll
+%{monodir}/4.0/Microsoft.CSharp.targets
+%{monodir}/4.0/Microsoft.Common.*
+%{monodir}/4.0/Microsoft.VisualBasic.targets
 %gac_dll Microsoft.CSharp
+%{monodir}/4.0/xbuild.rsp
 %{_libdir}/mono/gac/System.Data.Services/4.0*
 %gac_dll System.Dynamic 
-%{monodir}/4.0/xbuild*
+%{_libdir}/mono/gac/Microsoft.Build.Tasks.v4.0/4.0*
+%{_libdir}/mono/gac/Microsoft.Build.Utilities.v4.0/4.0*
+%gac_dll_4_only PEAPI
+%gac_dll_4_only Microsoft.Build.Engine
+%gac_dll_4_only Microsoft.Build.Framework
 %endif
 
 %changelog
+* Tue Mar 15 2011 Christian Krause <chkr at fedoraproject.org> - 2.6.7-4
+- Move xbuild.exe and dependencies into -devel sub-package (BZ 671917)
+- Ensure that the symbolic links and the actual libraries in the GAC are
+  always in the same sub-package
+- CVE-2010-4159 (BZ 654405)
+- CVE-2010-4254 (BZ 659911)
+
 * Wed Jul 21 2010 Paul F. Johnson <paul at all-the-johnsons.co.uk> 2.6.7-3
 - Bump to full release
 - Remove patch 8 (preview-4 patch)


More information about the scm-commits mailing list