From 3330034e6ec267820f88e7c70b984960220975d1 Mon Sep 17 00:00:00 2001 From: Atsushi Eno Date: Tue, 11 Dec 2012 15:34:19 +0900 Subject: [PATCH] Add Reactive Extensions as installed libs, take 2 (with fixed rpmspec this time). --- data/Makefile.am | 8 +-- data/reactive.pc.in | 12 ++++ mcs/class/Makefile | 10 +-- mcs/class/Mono.Reactive.Testing/Makefile | 4 +- mcs/class/System.Reactive.Core/Makefile | 6 +- mcs/class/System.Reactive.Debugger/Makefile | 6 +- .../System.Reactive.Experimental/Makefile | 6 +- mcs/class/System.Reactive.Interfaces/Makefile | 6 +- mcs/class/System.Reactive.Linq/Makefile | 6 +- .../System.Reactive.PlatformServices/Makefile | 6 +- mcs/class/System.Reactive.Providers/Makefile | 6 +- .../System.Reactive.Runtime.Remoting/Makefile | 6 +- .../System.Reactive.Windows.Forms/Makefile | 6 +- .../Makefile | 6 +- mcs/class/build-rx-dll-sources.sh | 15 +++++ mono-core.spec.in | 62 +++++++++++++++++++ 16 files changed, 150 insertions(+), 21 deletions(-) create mode 100644 data/reactive.pc.in diff --git a/data/Makefile.am b/data/Makefile.am index 3688d2692d7..601b4dab269 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -12,7 +12,7 @@ EXTRA_DIST = \ mono.pc.in mono-2.pc.in monosgen-2.pc.in mint.pc.in dotnet.pc.in dotnet35.pc.in wcf.pc.in monodoc.pc.in \ mono-nunit.pc.in mono-cairo.pc.in mono-options.pc.in cecil.pc.in \ mono-lineeditor.pc.in system.web.extensions_1.0.pc.in system.web.extensions.design_1.0.pc.in\ - dtrace-prelink.sh mono.web.pc.in system.web.mvc.pc.in system.web.mvc2.pc.in system.web.mvc3.pc.in aspnetwebstack.pc.in \ + dtrace-prelink.sh mono.web.pc.in system.web.mvc.pc.in system.web.mvc2.pc.in system.web.mvc3.pc.in aspnetwebstack.pc.in reactive.pc.in \ net_1_1/machine.config \ gdb/mono-gdb.py \ gdb/gdb-python.diff @@ -28,17 +28,17 @@ endif if JIT_SUPPORTED if INTERP_SUPPORTED pkgconfig_DATA= mono.pc mono-2.pc mint.pc dotnet.pc dotnet35.pc wcf.pc mono-nunit.pc mono-cairo.pc mono-options.pc cecil.pc monodoc.pc mono-lineeditor.pc system.web.extensions_1.0.pc \ - system.web.extensions.design_1.0.pc mono.web.pc system.web.mvc.pc system.web.mvc2.pc system.web.mvc3.pc aspnetwebstack.pc $(SGENPCFILE) + system.web.extensions.design_1.0.pc mono.web.pc system.web.mvc.pc system.web.mvc2.pc system.web.mvc3.pc aspnetwebstack.pc reactive.pc $(SGENPCFILE) else pkgconfig_DATA= mono.pc mono-2.pc dotnet.pc dotnet35.pc wcf.pc mono-nunit.pc mono-cairo.pc mono-options.pc cecil.pc monodoc.pc mono-lineeditor.pc system.web.extensions_1.0.pc \ - system.web.extensions.design_1.0.pc mono.web.pc system.web.mvc.pc system.web.mvc2.pc system.web.mvc3.pc aspnetwebstack.pc $(SGENPCFILE) + system.web.extensions.design_1.0.pc mono.web.pc system.web.mvc.pc system.web.mvc2.pc system.web.mvc3.pc aspnetwebstack.pc reactive.pc $(SGENPCFILE) endif else pkgconfig_DATA= mint.pc mono-nunit.pc mono-cairo.pc mono-options.pc cecil.pc monodoc.pc mono-lineeditor.pc endif DISTCLEANFILES= mono-2.pc mono.pc mint.pc dotnet.pc dotnet35.pc wcf.pc mono-nunit.pc mono-cairo.pc mono-options.pc cecil.pc monodoc.pc mono-lineeditor.pc system.web.extensions_1.0.pc \ - system.web.extensions.design_1.0.pc mono.web.pc system.web.mvc.pc system.web.mvc2.pc system.web.mvc3.pc aspnetwebstack.pc $(SGENPCFILE) mono-sgen-gdb.py + system.web.extensions.design_1.0.pc mono.web.pc system.web.mvc.pc system.web.mvc2.pc system.web.mvc3.pc aspnetwebstack.pc reactive.pc $(SGENPCFILE) mono-sgen-gdb.py mono_DATA = config \ browscap.ini diff --git a/data/reactive.pc.in b/data/reactive.pc.in new file mode 100644 index 00000000000..26401516569 --- /dev/null +++ b/data/reactive.pc.in @@ -0,0 +1,12 @@ +Name: Reactive Extensions +Description: Reactive Extensions +Version: @VERSION@ +Libs: +-r:@prefix@/lib/mono/4.5/System.Reactive.Interfaces.dll +-r:@prefix@/lib/mono/4.5/System.Reactive.Core.dll +-r:@prefix@/lib/mono/4.5/System.Reactive.Linq.dll +-r:@prefix@/lib/mono/4.5/System.Reactive.PlatformServices.dll +-r:@prefix@/lib/mono/4.5/System.Reactive.Providers.dll +-r:@prefix@/lib/mono/4.5/System.Reactive.Debugger.dll +-r:@prefix@/lib/mono/4.5/System.Reactive.Experimental.dll +-r:@prefix@/lib/mono/4.5/System.Reactive.Runtime.Remoting.dll diff --git a/mcs/class/Makefile b/mcs/class/Makefile index a7af39076b0..59e8d219c28 100644 --- a/mcs/class/Makefile +++ b/mcs/class/Makefile @@ -216,6 +216,11 @@ net_4_0_dirs := \ System.Windows.Forms.DataVisualization \ System.Xaml \ WindowsBase \ + System.ServiceModel.Routing \ + System.ServiceModel.Discovery \ + System.Runtime.Caching \ + System.Runtime.DurableInstancing \ + Mono.Parallel \ System.Reactive.Interfaces \ System.Reactive.Core \ System.Reactive.Linq \ @@ -226,11 +231,6 @@ net_4_0_dirs := \ System.Reactive.Windows.Threading \ System.Reactive.Experimental \ System.Reactive.Debugger \ - System.ServiceModel.Routing \ - System.ServiceModel.Discovery \ - System.Runtime.Caching \ - System.Runtime.DurableInstancing \ - Mono.Parallel \ Microsoft.Web.Infrastructure \ WebMatrix.Data \ System.Data.Services.Client \ diff --git a/mcs/class/Mono.Reactive.Testing/Makefile b/mcs/class/Mono.Reactive.Testing/Makefile index c02117a6ddf..5f1854131d1 100644 --- a/mcs/class/Mono.Reactive.Testing/Makefile +++ b/mcs/class/Mono.Reactive.Testing/Makefile @@ -36,13 +36,13 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 EXTRA_DISTFILES = more_build_args -VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR)) +VALID_PROFILE := $(filter net_4_0 net_4_5, $(PROFILE)) ifndef VALID_PROFILE LIBRARY_NAME = dummy-System.Mono.Reactive.Testing.dll -NO_INSTALL = yes NO_TEST = yes endif +NO_INSTALL = yes NO_SIGN_ASSEMBLY = yes include ../../build/library.make diff --git a/mcs/class/System.Reactive.Core/Makefile b/mcs/class/System.Reactive.Core/Makefile index 1a09fb54bc4..e6395385c1b 100644 --- a/mcs/class/System.Reactive.Core/Makefile +++ b/mcs/class/System.Reactive.Core/Makefile @@ -35,13 +35,17 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT) -VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR)) +VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE)) ifndef VALID_PROFILE LIBRARY_NAME = dummy-System.System.Reactive.Core.dll NO_SIGN_ASSEMBLY = yes endif +INSTALL_PROFILE := $(filter net_4_5, $(PROFILE)) +ifndef INSTALL_PROFILE NO_INSTALL = yes +endif + NO_TEST = yes include ../../build/library.make diff --git a/mcs/class/System.Reactive.Debugger/Makefile b/mcs/class/System.Reactive.Debugger/Makefile index 24d6fa753aa..65d30c049ba 100644 --- a/mcs/class/System.Reactive.Debugger/Makefile +++ b/mcs/class/System.Reactive.Debugger/Makefile @@ -24,13 +24,17 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) EXTRA_DISTFILES = more_build_args -VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR)) +VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE)) ifndef VALID_PROFILE LIBRARY_NAME = dummy-System.System.Reactive.Debugger.dll NO_SIGN_ASSEMBLY = yes endif +INSTALL_PROFILE := $(filter net_4_5, $(PROFILE)) +ifndef INSTALL_PROFILE NO_INSTALL = yes +endif + NO_TEST = yes include ../../build/library.make diff --git a/mcs/class/System.Reactive.Experimental/Makefile b/mcs/class/System.Reactive.Experimental/Makefile index effbc887c81..966b95daff9 100644 --- a/mcs/class/System.Reactive.Experimental/Makefile +++ b/mcs/class/System.Reactive.Experimental/Makefile @@ -24,13 +24,17 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) EXTRA_DISTFILES = more_build_args -VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR)) +VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE)) ifndef VALID_PROFILE LIBRARY_NAME = dummy-System.System.Reactive.Experimental.dll NO_SIGN_ASSEMBLY = yes endif +INSTALL_PROFILE := $(filter net_4_5, $(PROFILE)) +ifndef INSTALL_PROFILE NO_INSTALL = yes +endif + NO_TEST = yes include ../../build/library.make diff --git a/mcs/class/System.Reactive.Interfaces/Makefile b/mcs/class/System.Reactive.Interfaces/Makefile index 79ccee23fd4..b001529523d 100644 --- a/mcs/class/System.Reactive.Interfaces/Makefile +++ b/mcs/class/System.Reactive.Interfaces/Makefile @@ -21,13 +21,17 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) EXTRA_DISTFILES = more_build_args -VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR)) +VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE)) ifndef VALID_PROFILE LIBRARY_NAME = dummy-System.System.Reactive.Interfaces.dll NO_SIGN_ASSEMBLY = yes endif +INSTALL_PROFILE := $(filter net_4_5, $(PROFILE)) +ifndef INSTALL_PROFILE NO_INSTALL = yes +endif + NO_TEST = yes include ../../build/library.make diff --git a/mcs/class/System.Reactive.Linq/Makefile b/mcs/class/System.Reactive.Linq/Makefile index 853d222a4fb..690aa82dbc5 100644 --- a/mcs/class/System.Reactive.Linq/Makefile +++ b/mcs/class/System.Reactive.Linq/Makefile @@ -36,13 +36,17 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT) -VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR)) +VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE)) ifndef VALID_PROFILE LIBRARY_NAME = dummy-System.System.Reactive.Linq.dll NO_SIGN_ASSEMBLY = yes endif +INSTALL_PROFILE := $(filter net_4_5, $(PROFILE)) +ifndef INSTALL_PROFILE NO_INSTALL = yes +endif + NO_TEST = yes include ../../build/library.make diff --git a/mcs/class/System.Reactive.PlatformServices/Makefile b/mcs/class/System.Reactive.PlatformServices/Makefile index 05f493f33c7..e8b78f2d3bb 100644 --- a/mcs/class/System.Reactive.PlatformServices/Makefile +++ b/mcs/class/System.Reactive.PlatformServices/Makefile @@ -42,13 +42,17 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -r:Mono.Reactive.Tests.dll EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT) -VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR)) +VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE)) ifndef VALID_PROFILE LIBRARY_NAME = dummy-System.System.Reactive.PlatformServices.dll NO_SIGN_ASSEMBLY = yes endif +INSTALL_PROFILE := $(filter net_4_5, $(PROFILE)) +ifndef INSTALL_PROFILE NO_INSTALL = yes +endif + NO_TEST = yes include ../../build/library.make diff --git a/mcs/class/System.Reactive.Providers/Makefile b/mcs/class/System.Reactive.Providers/Makefile index 7ce54a26b51..44088a17101 100644 --- a/mcs/class/System.Reactive.Providers/Makefile +++ b/mcs/class/System.Reactive.Providers/Makefile @@ -37,13 +37,17 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT) -VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR)) +VALID_PROFILE := $(filter monodroid net_4_0 net_4_5, $(PROFILE)) ifndef VALID_PROFILE LIBRARY_NAME = dummy-System.System.Reactive.Providers.dll NO_SIGN_ASSEMBLY = yes endif +INSTALL_PROFILE := $(filter net_4_5, $(PROFILE)) +ifndef INSTALL_PROFILE NO_INSTALL = yes +endif + NO_TEST = yes include ../../build/library.make diff --git a/mcs/class/System.Reactive.Runtime.Remoting/Makefile b/mcs/class/System.Reactive.Runtime.Remoting/Makefile index 948dcef4f1b..deaf483c327 100644 --- a/mcs/class/System.Reactive.Runtime.Remoting/Makefile +++ b/mcs/class/System.Reactive.Runtime.Remoting/Makefile @@ -24,13 +24,17 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) EXTRA_DISTFILES = more_build_args -VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR)) +VALID_PROFILE := $(filter net_4_0 net_4_5, $(PROFILE)) ifndef VALID_PROFILE LIBRARY_NAME = dummy-System.System.Reactive.Runtime.Remoting.dll NO_SIGN_ASSEMBLY = yes endif +INSTALL_PROFILE := $(filter net_4_5, $(PROFILE)) +ifndef INSTALL_PROFILE NO_INSTALL = yes +endif + NO_TEST = yes include ../../build/library.make diff --git a/mcs/class/System.Reactive.Windows.Forms/Makefile b/mcs/class/System.Reactive.Windows.Forms/Makefile index 7fb7d8fbf04..63b3fe0f4a5 100644 --- a/mcs/class/System.Reactive.Windows.Forms/Makefile +++ b/mcs/class/System.Reactive.Windows.Forms/Makefile @@ -25,13 +25,17 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) EXTRA_DISTFILES = more_build_args -VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR)) +VALID_PROFILE := $(filter net_4_0 net_4_5, $(PROFILE)) ifndef VALID_PROFILE LIBRARY_NAME = dummy-System.System.Reactive.Windows.Forms.dll NO_SIGN_ASSEMBLY = yes endif +INSTALL_PROFILE := $(filter net_4_5, $(PROFILE)) +ifndef INSTALL_PROFILE NO_INSTALL = yes +endif + NO_TEST = yes include ../../build/library.make diff --git a/mcs/class/System.Reactive.Windows.Threading/Makefile b/mcs/class/System.Reactive.Windows.Threading/Makefile index ba111236f86..8e1641a8cb5 100644 --- a/mcs/class/System.Reactive.Windows.Threading/Makefile +++ b/mcs/class/System.Reactive.Windows.Threading/Makefile @@ -38,13 +38,17 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT) -VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR)) +VALID_PROFILE := $(filter net_4_0 net_4_5, $(PROFILE)) ifndef VALID_PROFILE LIBRARY_NAME = dummy-System.System.Reactive.Windows.Threading.dll NO_SIGN_ASSEMBLY = yes endif +INSTALL_PROFILE := $(filter net_4_5, $(PROFILE)) +ifndef INSTALL_PROFILE NO_INSTALL = yes +endif + NO_TEST = yes include ../../build/library.make diff --git a/mcs/class/build-rx-dll-sources.sh b/mcs/class/build-rx-dll-sources.sh index e12f2be893e..2ebd3f5817d 100644 --- a/mcs/class/build-rx-dll-sources.sh +++ b/mcs/class/build-rx-dll-sources.sh @@ -42,14 +42,29 @@ foreach (var ass in asses) { var pathPrefix = ass == "Tests.System.Reactive" ? "../../" : "../"; // tests are built under Mono.Reactive.Testing directory. + var sources = monoass == "Tests.System.Reactive" ? Path.Combine ("Mono.Reactive.Testing", "Mono.Reactive.Testing_test.dll.sources") : Path.Combine (monoass, monoass + ".dll.sources"); + var assdir = Path.Combine (monoass, "Assembly"); + var assinfo = Path.Combine (monoass, "Assembly", "AssemblyInfo.cs"); + + if (monoass != "Tests.System.Reactive") { + if (!Directory.Exists (assdir)) + Directory.CreateDirectory (assdir); + using (var tw = File.CreateText (assinfo)) { + tw.WriteLine ("// Due to InternalsVisibleTo issue we don't add versions so far..."); + tw.WriteLine ("// [assembly:System.Reflection.AssemblyVersion (\"0.0.0.0\")]"); + } + } + var doc = XDocument.Load (csproj); var rootNS = doc.XPathSelectElement ("//*[local-name()='RootNamespace']").Value; using (var tw = File.CreateText (sources)) { + //if (monoass != "Tests.System.Reactive") + // tw.WriteLine ("Assembly/AssemblyInfo.cs"); foreach (var path in doc.XPathSelectElements ("//*[local-name()='Compile']") .Select (el => el.Attribute ("Include").Value) .Select (s => s.Replace ("\\", "/"))) diff --git a/mono-core.spec.in b/mono-core.spec.in index 751e6efc371..47a713fb26e 100644 --- a/mono-core.spec.in +++ b/mono-core.spec.in @@ -1021,6 +1021,68 @@ Database connectivity for Mono. %_prefix/lib/mono/4.5/Npgsql.dll %_prefix/lib/mono/gac/Npgsql +%package -n mono-rx-core +License: MIT License (or similar) ; Apache License 2.0 +Summary: Reactive Extensions for Mono core libraries +Group: Development/Languages/Mono +Requires: mono-core == %version-%release +Provides: mono(System.Reactive.Interfaces) = 1.0.5000.0 + +%description -n mono-rx-core +The Mono Project is an open development initiative that is working to +develop an open source, Unix version of the .NET development platform. +Its objective is to enable Unix developers to build and deploy +cross-platform .NET applications. The project will implement various +technologies that have been submitted to the ECMA for standardization. + +Reactive Extensions for Mono, core packages, which don't depend on +desktop-specific features. + +%files -n mono-rx-core +%defattr(-, root, root) +%_libdir/pkgconfig/reactive.core.pc +%_prefix/lib/mono/4.5/System.Reactive.Core.dll +%_prefix/lib/mono/4.5/System.Reactive.Debugger.dll +%_prefix/lib/mono/4.5/System.Reactive.Experimental.dll +%_prefix/lib/mono/4.5/System.Reactive.Interfaces.dll +%_prefix/lib/mono/4.5/System.Reactive.Linq.dll +%_prefix/lib/mono/4.5/System.Reactive.PlatformServices.dll +%_prefix/lib/mono/4.5/System.Reactive.Providers.dll +%_prefix/lib/mono/4.5/System.Reactive.Runtime.Remoting.dll +%_prefix/lib/mono/gac/System.Reactive.Core +%_prefix/lib/mono/gac/System.Reactive.Debugger +%_prefix/lib/mono/gac/System.Reactive.Experimental +%_prefix/lib/mono/gac/System.Reactive.Interfaces +%_prefix/lib/mono/gac/System.Reactive.Linq +%_prefix/lib/mono/gac/System.Reactive.PlatformServices +%_prefix/lib/mono/gac/System.Reactive.Providers +%_prefix/lib/mono/gac/System.Reactive.Runtime.Remoting + +%package -n mono-rx-desktop +License: MIT License (or similar) ; Apache License 2.0 +Summary: Reactive Extensions for Mono desktop-specific libraries +Group: Development/Languages/Mono +Requires: mono-core == %version-%release +Requires: mono-rx-core == %version-%release +Provides: mono(System.Reactive.Interfaces) = 1.0.5000.0 + +%description -n mono-rx-desktop +The Mono Project is an open development initiative that is working to +develop an open source, Unix version of the .NET development platform. +Its objective is to enable Unix developers to build and deploy +cross-platform .NET applications. The project will implement various +technologies that have been submitted to the ECMA for standardization. + +Reactive Extensions for Mono, desktop-specific packages (winforms, +windows threading). + +%files -n mono-rx-desktop +%defattr(-, root, root) +%_prefix/lib/mono/4.5/System.Reactive.Windows.Forms.dll +%_prefix/lib/mono/4.5/System.Reactive.Windows.Threading.dll +%_prefix/lib/mono/gac/System.Reactive.Windows.Forms +%_prefix/lib/mono/gac/System.Reactive.Windows.Threading + %package -n mono-nunit License: LGPL v2.1 only Summary: NUnit Testing Framework -- 2.25.1