summary refs log tree commit diff
path: root/pkgs/development/dotnet-modules
diff options
context:
space:
mode:
authorobadz <dav-github@odav.org>2015-05-22 14:25:02 +0100
committerobadz <dav-github@odav.org>2015-06-06 09:06:22 -0400
commitd4681bf62672083f92545e02e00b8cf040247e8d (patch)
tree24f50b3dfad442cf340db277740ec2e7fe0b7239 /pkgs/development/dotnet-modules
parent4cf3596fdae5982b5c549c52977662ace7bff26a (diff)
downloadnixpkgs-d4681bf62672083f92545e02e00b8cf040247e8d.tar
nixpkgs-d4681bf62672083f92545e02e00b8cf040247e8d.tar.gz
nixpkgs-d4681bf62672083f92545e02e00b8cf040247e8d.tar.bz2
nixpkgs-d4681bf62672083f92545e02e00b8cf040247e8d.tar.lz
nixpkgs-d4681bf62672083f92545e02e00b8cf040247e8d.tar.xz
nixpkgs-d4681bf62672083f92545e02e00b8cf040247e8d.tar.zst
nixpkgs-d4681bf62672083f92545e02e00b8cf040247e8d.zip
Lay down the foundation for packaging the .NET echosystem
- fetchNuGet can fetch binaries from nuget servers
- buildDotnetPackage can build .NET packages using mono/xbuild
  - Places nuget & paket as they would clash with nix
  - Patch project files because F# targets are expected to be found in
    the mono directory (and we know that's not going to happen on nix)
  - Find DLLs that were copied from buildInputs and replace by symlink
    for sharing
  - Export produced DLL via the pkg-config mechanism
  - Create wrappers for produced EXEs
- Repackaged this new infrastructure: keepass, monodevelop
- Newly packaged: ExtCore, UnionArgParser, FSharp.Data, Paket, and a
  bunch more..

This is a combination of 73 commits.
Diffstat (limited to 'pkgs/development/dotnet-modules')
-rw-r--r--pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.addin-xml.patch88
-rw-r--r--pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.references.patch43
-rw-r--r--pkgs/development/dotnet-modules/patches/newtonsoft-json.references.patch11
3 files changed, 142 insertions, 0 deletions
diff --git a/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.addin-xml.patch b/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.addin-xml.patch
new file mode 100644
index 00000000000..a3b2f87f378
--- /dev/null
+++ b/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.addin-xml.patch
@@ -0,0 +1,88 @@
+--- fsharpbinding-a09c818/monodevelop/MonoDevelop.FSharpBinding/FSharpBinding.addin.xml.orig.old	2015-06-03 19:53:00.116849746 +0100
++++ fsharpbinding-a09c818/monodevelop/MonoDevelop.FSharpBinding/FSharpBinding.addin.xml.orig	2015-06-03 19:56:30.112579384 +0100
+@@ -130,6 +130,11 @@
+   <!-- New projects will be created with this targets file. -->
+   <Extension path="/MonoDevelop/ProjectModel/MSBuildItemTypes">
+     <!--  If FSharp 3.1 is available, use it. Note XS looks for the first DotNetProject node under 'Extension' -->
++	<Condition id="MSBuildTargetIsAvailable" target="$(FSharpTargetsPath)" >
++        <DotNetProject language="F#" extension="fsproj" guid="{f2a71f9b-5d33-465a-a702-920d77279786}" import="$(FSharpTargetsPath)"  resourceHandler="MonoDevelop.FSharp.FSharpResourceIdBuilder"/>
++	</Condition>
++
++    <!--  If FSharp 3.1 is available, use it. Note XS looks for the first DotNetProject node under 'Extension' -->
+ 	<Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" >
+       <DotNetProject language="F#" extension="fsproj" guid="{f2a71f9b-5d33-465a-a702-920d77279786}" import="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets"  resourceHandler="MonoDevelop.FSharp.FSharpResourceIdBuilder"/>
+ 	</Condition>
+@@ -182,14 +187,7 @@
+     <ProjectTemplate id="FSharpConsoleProject" file="Templates/FSharpConsoleProject.xpt.xml"/>
+     <ProjectTemplate id="FSharpLibraryProject" file="Templates/FSharpLibraryProject.xpt.xml"/>
+     <!-- Only include the tutorial project if an F# 3.0 or 3.1 target is available as this includes F# 3.0 specific features -->
+-	<ComplexCondition>
+-		<Or>
+-			<Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
+-			<Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" />
+-		</Or>
+ 		<ProjectTemplate id="FSharpTutorialProject" file="Templates/FSharpTutorialProject.xpt.xml"/>
+-	</ComplexCondition>
+-
+     <ProjectTemplate id="FSharpGtkProject" file="Templates/FSharpGtkProject.xpt.xml"/>
+     <ProjectTemplate id="FSharpNUnitLibraryProject" file="Templates/FSharpNUnitLibraryProject.xpt.xml"/>
+   </Extension>
+@@ -267,13 +265,7 @@
+   <!-- F# interactive -->
+ 
+   <Extension path="/MonoDevelop/Ide/Pads">
+-    <ComplexCondition>
+-      <Or>
+-        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
+-        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" />
+-      </Or>
+       <Pad id="MonoDevelop.FSharp.FSharpInteractivePad" defaultPlacement="Bottom" _label="F# Interactive" icon="md-project" class="MonoDevelop.FSharp.FSharpInteractivePad" />
+-    </ComplexCondition>
+   </Extension>
+ 
+   <Extension path = "/MonoDevelop/Ide/Pads/ProjectPad">
+@@ -281,11 +273,6 @@
+   </Extension>
+ 
+   <Extension path="/MonoDevelop/Ide/Commands">
+-    <ComplexCondition>
+-      <Or>
+-        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
+-        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" />
+-      </Or>
+       <Category _name = "F# Integration" id="F# Integration">
+         <Command id="MonoDevelop.FSharp.FSharpCommands.ShowFSharpInteractive"
+             _label = "F# Interactive"
+@@ -330,32 +317,19 @@
+             macShortcut="Meta|Control|C"
+             shortcut="Ctrl|Alt|C" />
+       </Category>
+-    </ComplexCondition>
+   </Extension>
+ 
+   <Extension path = "/MonoDevelop/SourceEditor2/ContextMenu/Editor">
+-    <ComplexCondition>
+-      <Or>
+-        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
+-        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" />
+-      </Or>
+       <SeparatorItem id = "FSharpInteractiveStart" />
+       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendSelection" />
+       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendLine" />
+       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendReferences" />
+-    </ComplexCondition>
+   </Extension>
+ 
+   <Extension path = "/MonoDevelop/Ide/MainMenu/Edit">
+-    <ComplexCondition>
+-      <Or>
+-        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
+-        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" />
+-      </Or>
+       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendSelection" />
+       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendLine" />
+       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendReferences" />
+-    </ComplexCondition>
+   </Extension>
+ 
+   <!--- F# Android -->
diff --git a/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.references.patch b/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.references.patch
new file mode 100644
index 00000000000..e53482e0c00
--- /dev/null
+++ b/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.references.patch
@@ -0,0 +1,43 @@
+--- fsharpbinding-a09c818/monodevelop/MonoDevelop.FSharpBinding/MonoDevelop.FSharp.fsproj.orig.old	2015-06-03 18:48:55.345385084 +0100
++++ fsharpbinding-a09c818/monodevelop/MonoDevelop.FSharpBinding/MonoDevelop.FSharp.fsproj.orig	2015-06-03 19:00:11.453399028 +0100
+@@ -185,19 +185,19 @@
+       <Private>False</Private>
+       <HintPath>INSERT_FSPROJ_MDROOT\AddIns\NUnit\MonoDevelop.NUnit.dll</HintPath>
+     </Reference>
+-    <ProjectReference Include="..\..\FSharp.CompilerBinding\FSharp.CompilerBinding.fsproj">
+-      <Project>{88F6940F-D300-474C-B2A7-E2ECD5B04B57}</Project>
+-      <Name>FSharp.CompilerBinding</Name>
+-    </ProjectReference>
++    <Reference Include="FSharp.CompilerBinding">
++      <Private>True</Private>
++    </Reference>
+     <ProjectReference Include="Gui\MonoDevelop.FSharp.Gui.csproj">
+       <Project>{FD0D1033-9145-48E5-8ED8-E2365252878C}</Project>
+       <Name>MonoDevelop.FSharp.Gui</Name>
+     </ProjectReference>
+-    <Reference Include="FSharp.Core, Version=$(TargetFSharpCoreVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
++    <Reference Include="FSharp.Core">
+       <Private>True</Private>
+     </Reference>
+     <Reference Include="FSharp.Compiler.Service">
+       <HintPath>packages\FSharp.Compiler.Service.0.0.85\lib\net45\FSharp.Compiler.Service.dll</HintPath>
++      <Private>True</Private>
+     </Reference>
+     <Reference Include="Mono.Cecil">
+       <HintPath>packages\Mono.Cecil.0.9.5.4\lib\net40\Mono.Cecil.dll</HintPath>
+@@ -213,12 +213,15 @@
+     </Reference>
+     <Reference Include="FantomasLib">
+       <HintPath>packages\Fantomas.1.6.0\lib\FantomasLib.dll</HintPath>
++      <Private>True</Private>
+     </Reference>
+     <Reference Include="FSharp.Compiler.CodeDom">
+       <HintPath>packages\FSharp.Compiler.CodeDom.0.9.1\lib\net40\FSharp.Compiler.CodeDom.dll</HintPath>
++      <Private>True</Private>
+     </Reference>
+     <Reference Include="ExtCore">
+       <HintPath>packages\ExtCore.0.8.45\lib\net40\ExtCore.dll</HintPath>
++      <Private>True</Private>
+     </Reference>
+   </ItemGroup>
+   <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
diff --git a/pkgs/development/dotnet-modules/patches/newtonsoft-json.references.patch b/pkgs/development/dotnet-modules/patches/newtonsoft-json.references.patch
new file mode 100644
index 00000000000..ed9b7adbef2
--- /dev/null
+++ b/pkgs/development/dotnet-modules/patches/newtonsoft-json.references.patch
@@ -0,0 +1,11 @@
+--- Newtonsoft.Json-6.0.8/Src/Newtonsoft.Json.Tests/Newtonsoft.Json.Tests.csproj.old	2015-01-11 06:46:39.000000000 +0000
++++ Newtonsoft.Json-6.0.8/Src/Newtonsoft.Json.Tests/Newtonsoft.Json.Tests.csproj	2015-05-25 21:29:40.546808622 +0100
+@@ -52,6 +52,8 @@
+     <Reference Include="System.Data.Linq" />
+     <Reference Include="System.Drawing" />
+     <Reference Include="System.Numerics" />
++    <Reference Include="System.Collections" />
++    <Reference Include="System.Runtime" />
+     <Reference Include="System.Runtime.Serialization" />
+     <Reference Include="System.Web" />
+     <Reference Include="System.Web.Extensions" />