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.
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user