diff options
author | obadz <dav-github@odav.org> | 2015-05-22 14:25:02 +0100 |
---|---|---|
committer | obadz <dav-github@odav.org> | 2015-06-06 09:06:22 -0400 |
commit | d4681bf62672083f92545e02e00b8cf040247e8d (patch) | |
tree | 24f50b3dfad442cf340db277740ec2e7fe0b7239 /pkgs/applications | |
parent | 4cf3596fdae5982b5c549c52977662ace7bff26a (diff) | |
download | nixlib-d4681bf62672083f92545e02e00b8cf040247e8d.tar nixlib-d4681bf62672083f92545e02e00b8cf040247e8d.tar.gz nixlib-d4681bf62672083f92545e02e00b8cf040247e8d.tar.bz2 nixlib-d4681bf62672083f92545e02e00b8cf040247e8d.tar.lz nixlib-d4681bf62672083f92545e02e00b8cf040247e8d.tar.xz nixlib-d4681bf62672083f92545e02e00b8cf040247e8d.tar.zst nixlib-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/applications')
4 files changed, 180 insertions, 73 deletions
diff --git a/pkgs/applications/editors/monodevelop/default.nix b/pkgs/applications/editors/monodevelop/default.nix index b04e37746e05..b27bc75ed59e 100644 --- a/pkgs/applications/editors/monodevelop/default.nix +++ b/pkgs/applications/editors/monodevelop/default.nix @@ -1,6 +1,7 @@ -{ stdenv, fetchurl, fetchgit +{ stdenv, fetchurl, fetchgit, fetchNuGet , autoconf, automake, pkgconfig, shared_mime_info, intltool , glib, mono, gtk-sharp, gnome, gnome-sharp, unzip +, dotnetPackages }: stdenv.mkDerivation rec { @@ -13,79 +14,33 @@ stdenv.mkDerivation rec { sha256 = "1bgqvlfi6pilj2zxsviqilh63qq98wsijqdiqwpkqchcw741zlyn"; }; - srcNugetBinary = fetchgit { - url = "https://github.com/mono/nuget-binary.git"; - rev = "da1f2102f8172df6f7a1370a4998e3f88b91c047"; - sha256 = "1hbnckc4gvqkknf8gh1k7iwqb4vdzifdjd19i60fnczly5v8m1c3"; - }; - - srcNUnit = fetchurl { - url = "https://www.nuget.org/api/v2/package/NUnit/2.6.3"; - sha256 = "0bb16i4ggwz32wkxsh485wf014cqqzhbyx0b3wbpmqjw7p4canph"; - }; - - srcNUnitRunners = fetchurl { - url = "https://www.nuget.org/api/v2/package/NUnit.Runners/2.6.3"; - sha256 = "0qwx1i9lxkp9pijj2bsczzgsamz651hngkxraqjap1v4m7d09a3b"; - }; - - srcNUnit2510 = fetchurl { + nunit2510 = fetchurl { url = "http://launchpad.net/nunitv2/2.5/2.5.10/+download/NUnit-2.5.10.11092.zip"; sha256 = "0k5h5bz1p2v3d0w0hpkpbpvdkcszgp8sr9ik498r1bs72w5qlwnc"; }; - srcNugetSystemWebMvcExtensions = fetchurl { - url = https://www.nuget.org/api/v2/package/System.Web.Mvc.Extensions.Mvc.4/1.0.9; - sha256 = "19wi662m8primpimzifv8k560m6ymm73z0mf1r8ixl0xqag1hx6j"; - }; - - srcNugetMicrosoftAspNetMvc = fetchurl { - url = https://www.nuget.org/api/v2/package/Microsoft.AspNet.Mvc/5.2.2; - sha256 = "1jwfmz42kw2yb1g2hgp2h34fc4wx6s8z71da3mw5i4ivs25w9n2b"; - }; - - srcNugetMicrosoftAspNetRazor = fetchurl { - url = https://www.nuget.org/api/v2/package/Microsoft.AspNet.Razor/3.2.2; - sha256 = "1db3apn4vzz1bx6q5fyv6nyx0drz095xgazqbw60qnhfs7z45axd"; - }; - - srcNugetMicrosoftAspNetWebPages = fetchurl { - url = https://www.nuget.org/api/v2/package/Microsoft.AspNet.WebPages/3.2.2; - sha256 = "17fwb5yj165sql80i47zirjnm0gr4n8ypz408mz7p8a1n40r4i5l"; - }; - - srcNugetMicrosoftWebInfrastructure = fetchurl { - url = https://www.nuget.org/api/v2/package/Microsoft.Web.Infrastructure/1.0.0.0; - sha256 = "1mxl9dri5729d0jl84gkpqifqf4xzb6aw1rzcfh6l0r24bix9afn"; - }; - postPatch = '' # From https://bugzilla.xamarin.com/show_bug.cgi?id=23696#c19 - # it seems parts of MonoDevelop 5.2+ need NUnit 2.6.4, which isn't included - # (?), so download it and put it in the right place in the tree - mkdir packages - unzip ${srcNUnit} -d packages/NUnit.2.6.3 - unzip ${srcNUnitRunners} -d packages/NUnit.Runners.2.6.3 - # cecil needs NUnit 2.5.10 - this is also missing from the tar - unzip -j ${srcNUnit2510} -d external/cecil/Test/libs/nunit-2.5.10 NUnit-2.5.10.11092/bin/net-2.0/framework/\* + unzip -j ${nunit2510} -d external/cecil/Test/libs/nunit-2.5.10 NUnit-2.5.10.11092/bin/net-2.0/framework/\* # the tar doesn't include the nuget binary, so grab it from github and copy it # into the right place - cp -vfR ${srcNugetBinary}/* external/nuget-binary/ - - # AspNet plugin requires these packages - unzip ${srcNugetSystemWebMvcExtensions} -d packages/System.Web.Mvc.Extensions.Mvc.4.1.0.9 - unzip ${srcNugetMicrosoftAspNetMvc} -d packages/Microsoft.AspNet.Mvc.5.2.2 - unzip ${srcNugetMicrosoftAspNetRazor} -d packages/Microsoft.AspNet.Razor.3.2.2 - unzip ${srcNugetMicrosoftAspNetWebPages} -d packages/Microsoft.AspNet.WebPages.3.2.2 - unzip ${srcNugetMicrosoftWebInfrastructure} -d packages/Microsoft.Web.Infrastructure.1.0.0.0 + cp -vfR "$(dirname $(pkg-config NuGet.Core --variable=Libraries))"/* external/nuget-binary/ ''; + # Revert this commit which broke the ability to use pkg-config to locate dlls + patchFlags = [ "-p2" ]; + patches = [ ./git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch ]; + buildInputs = [ autoconf automake pkgconfig shared_mime_info intltool mono gtk-sharp gnome-sharp unzip + pkgconfig + dotnetPackages.NUnit + dotnetPackages.NUnitRunners + dotnetPackages.Nuget ]; preConfigure = "patchShebangs ./configure"; @@ -108,6 +63,12 @@ stdenv.mkDerivation rec { > EOF done + + # Without this, you get a missing DLL error any time you install an addin.. + ln -sv `pkg-config nunit.core --variable=Libraries` $out/lib/monodevelop/AddIns/NUnit + ln -sv `pkg-config nunit.core.interfaces --variable=Libraries` $out/lib/monodevelop/AddIns/NUnit + ln -sv `pkg-config nunit.framework --variable=Libraries` $out/lib/monodevelop/AddIns/NUnit + ln -sv `pkg-config nunit.util --variable=Libraries` $out/lib/monodevelop/AddIns/NUnit ''; dontStrip = true; diff --git a/pkgs/applications/editors/monodevelop/git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch b/pkgs/applications/editors/monodevelop/git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch new file mode 100644 index 000000000000..969aad33ec0b --- /dev/null +++ b/pkgs/applications/editors/monodevelop/git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch @@ -0,0 +1,57 @@ +diff --git a/main/src/addins/AspNet/MonoDevelop.AspNet.csproj b/main/src/addins/AspNet/MonoDevelop.AspNet.csproj +index 02d3a01..c6daaad 100644 +--- a/main/src/addins/AspNet/MonoDevelop.AspNet.csproj ++++ b/main/src/addins/AspNet/MonoDevelop.AspNet.csproj +@@ -452,34 +452,6 @@ + <None Include="Templates\Projects\WebApplication.xpt.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> +- <None Include="..\..\..\packages\Microsoft.AspNet.Mvc.5.2.2\lib\net45\System.Web.Mvc.dll"> +- <Link>System.Web.Mvc.dll</Link> +- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> +- </None> +- <None Include="..\..\..\packages\Microsoft.AspNet.Razor.3.2.2\lib\net45\System.Web.Razor.dll"> +- <Link>System.Web.Razor.dll</Link> +- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> +- </None> +- <None Include="..\..\..\packages\Microsoft.AspNet.WebPages.3.2.2\lib\net45\System.Web.Helpers.dll"> +- <Link>System.Web.Helpers.dll</Link> +- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> +- </None> +- <None Include="..\..\..\packages\Microsoft.AspNet.WebPages.3.2.2\lib\net45\System.Web.WebPages.Deployment.dll"> +- <Link>System.Web.WebPages.Deployment.dll</Link> +- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> +- </None> +- <None Include="..\..\..\packages\Microsoft.AspNet.WebPages.3.2.2\lib\net45\System.Web.WebPages.dll"> +- <Link>System.Web.WebPages.dll</Link> +- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> +- </None> +- <None Include="..\..\..\packages\Microsoft.AspNet.WebPages.3.2.2\lib\net45\System.Web.WebPages.Razor.dll"> +- <Link>System.Web.WebPages.Razor.dll</Link> +- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> +- </None> +- <None Include="..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll"> +- <Link>Microsoft.Web.Infrastructure.dll</Link> +- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> +- </None> + <None Include="packages.config" /> + </ItemGroup> + <ItemGroup> +diff --git a/main/src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml b/main/src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml +index eab7c32..4a75311 100644 +--- a/main/src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml ++++ b/main/src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml +@@ -1,13 +1,6 @@ + <ExtensionModel> + + <Runtime> +- <Import assembly = "System.Web.Helpers.dll" /> +- <Import assembly = "System.Web.Mvc.dll" /> +- <Import assembly = "System.Web.Razor.dll" /> +- <Import assembly = "System.Web.WebPages.Deployment.dll" /> +- <Import assembly = "System.Web.WebPages.dll" /> +- <Import assembly = "System.Web.WebPages.Razor.dll" /> +- + <Import file = "Html/Schemas/xhtml1-strict.xsd" /> + <Import file = "Html/Schemas/xhtml1-transitional.xsd" /> + <Import file = "Html/Schemas/xhtml1-frameset.xsd" /> diff --git a/pkgs/applications/misc/keepass/default.nix b/pkgs/applications/misc/keepass/default.nix index d46efc4e5e89..f659e4f6c2dd 100644 --- a/pkgs/applications/misc/keepass/default.nix +++ b/pkgs/applications/misc/keepass/default.nix @@ -1,17 +1,21 @@ -{ stdenv, fetchurl, unzip, makeDesktopItem, mono }: +{ stdenv, fetchurl, buildDotnetPackage, makeWrapper, unzip, makeDesktopItem }: -stdenv.mkDerivation rec { - name = "keepass-${version}"; +buildDotnetPackage rec { + baseName = "keepass"; version = "2.29"; src = fetchurl { - url = "mirror://sourceforge/keepass/KeePass-${version}.zip"; - sha256 = "16x7m899akpi036c0wlr41w7fz9q0b69yac9q97rqkixb03l4g9d"; + url = "mirror://sourceforge/keepass/KeePass-${version}-Source.zip"; + sha256 = "051s0aznyyhbpdbly6h5rs0ax0zvkp45dh93nmq6lwhicswjwn5m"; }; sourceRoot = "."; - phases = [ "unpackPhase" "installPhase" ]; + buildInputs = [ unzip ]; + + patches = [ ./keepass.patch ]; + + preConfigure = "rm -rvf Build/*"; desktopItem = makeDesktopItem { name = "keepass"; @@ -22,23 +26,19 @@ stdenv.mkDerivation rec { categories = "Application;Other;"; }; + outputFiles = [ "Build/KeePass/Release/*" "Build/KeePassLib/Release/*" ]; + dllFiles = [ "KeePassLib.dll" ]; + exeFiles = [ "KeePass.exe" ]; - installPhase = '' - mkdir -p "$out/bin" - echo "${mono}/bin/mono $out/KeePass.exe" > $out/bin/keepass - chmod +x $out/bin/keepass - echo $out - cp -r ./* $out/ + postInstall = '' mkdir -p "$out/share/applications" cp ${desktopItem}/share/applications/* $out/share/applications ''; - buildInputs = [ unzip ]; - meta = { description = "GUI password manager with strong cryptography"; homepage = http://www.keepass.info/; - maintainers = with stdenv.lib.maintainers; [amorsillo]; + maintainers = with stdenv.lib.maintainers; [ amorsillo obadz ]; platforms = with stdenv.lib.platforms; all; license = stdenv.lib.licenses.gpl2; }; diff --git a/pkgs/applications/misc/keepass/keepass.patch b/pkgs/applications/misc/keepass/keepass.patch new file mode 100644 index 000000000000..6ecf0bb074de --- /dev/null +++ b/pkgs/applications/misc/keepass/keepass.patch @@ -0,0 +1,89 @@ +diff -Naur old/KeePass/KeePass.csproj new/KeePass/KeePass.csproj +--- old/KeePass/KeePass.csproj 2015-04-10 11:00:46.000000000 +0100 ++++ new/KeePass/KeePass.csproj 2015-05-27 16:35:52.196177593 +0100 +@@ -1,4 +1,4 @@ +-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> ++<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> +@@ -10,7 +10,7 @@ + <RootNamespace>KeePass</RootNamespace> + <AssemblyName>KeePass</AssemblyName> + <ApplicationIcon>KeePass.ico</ApplicationIcon> +- <SignAssembly>true</SignAssembly> ++ <SignAssembly>false</SignAssembly> + <AssemblyOriginatorKeyFile>KeePass.pfx</AssemblyOriginatorKeyFile> + <FileUpgradeFlags> + </FileUpgradeFlags> +@@ -1316,6 +1316,5 @@ + </Target> + --> + <PropertyGroup> +- <PostBuildEvent>"$(FrameworkSDKDir)bin\sgen.exe" /assembly:"$(TargetPath)" /force /nologo /compiler:/keycontainer:VS_KEY_33430356D8D7D1B8 /compiler:/delaysign-</PostBuildEvent> + </PropertyGroup> +-</Project> +\ No newline at end of file ++</Project> +diff -Naur old/KeePassLib/KeePassLib.csproj new/KeePassLib/KeePassLib.csproj +--- old/KeePassLib/KeePassLib.csproj 2014-05-08 15:00:24.000000000 +0100 ++++ new/KeePassLib/KeePassLib.csproj 2015-05-27 16:35:52.197177562 +0100 +@@ -1,4 +1,4 @@ +-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> ++<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> +@@ -9,7 +9,7 @@ + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>KeePassLib</RootNamespace> + <AssemblyName>KeePassLib</AssemblyName> +- <SignAssembly>true</SignAssembly> ++ <SignAssembly>false</SignAssembly> + <AssemblyOriginatorKeyFile>KeePassLib.pfx</AssemblyOriginatorKeyFile> + <FileUpgradeFlags> + </FileUpgradeFlags> +diff -Naur old/KeePass.sln new/KeePass.sln +--- old/KeePass.sln 2009-08-31 19:47:28.000000000 +0100 ++++ new/KeePass.sln 2015-05-27 16:35:59.568953518 +0100 +@@ -1,11 +1,9 @@ +-Microsoft Visual Studio Solution File, Format Version 10.00 ++Microsoft Visual Studio Solution File, Format Version 12.00 + # Visual Studio 2008 + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeePassLib", "KeePassLib\KeePassLib.csproj", "{53573E4E-33CB-4FDB-8698-C95F5E40E7F3}" + EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeePass", "KeePass\KeePass.csproj", "{10938016-DEE2-4A25-9A5A-8FD3444379CA}" + EndProject +-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeePassLibSD", "KeePassLibSD\KeePassLibSD.csproj", "{DC15F71A-2117-4DEF-8C10-AA355B5E5979}" +-EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TrlUtil", "Translation\TrlUtil\TrlUtil.csproj", "{B7E890E7-BF50-4450-9A52-C105BD98651C}" + EndProject + Global +@@ -44,18 +42,6 @@ + {10938016-DEE2-4A25-9A5A-8FD3444379CA}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {10938016-DEE2-4A25-9A5A-8FD3444379CA}.Release|Win32.ActiveCfg = Release|Any CPU + {10938016-DEE2-4A25-9A5A-8FD3444379CA}.Release|x64.ActiveCfg = Release|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Debug|Win32.ActiveCfg = Debug|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Debug|x64.ActiveCfg = Debug|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Release|Any CPU.Build.0 = Release|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Release|Mixed Platforms.Build.0 = Release|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Release|Win32.ActiveCfg = Release|Any CPU +- {DC15F71A-2117-4DEF-8C10-AA355B5E5979}.Release|x64.ActiveCfg = Release|Any CPU + {B7E890E7-BF50-4450-9A52-C105BD98651C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7E890E7-BF50-4450-9A52-C105BD98651C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7E890E7-BF50-4450-9A52-C105BD98651C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU +diff -Naur old/Translation/TrlUtil/TrlUtil.csproj new/Translation/TrlUtil/TrlUtil.csproj +--- old/Translation/TrlUtil/TrlUtil.csproj 2013-07-21 10:06:38.000000000 +0100 ++++ new/Translation/TrlUtil/TrlUtil.csproj 2015-05-27 16:35:52.197177562 +0100 +@@ -1,4 +1,4 @@ +-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> ++<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |