Added keepass password manager. Updated mono DLLMap to allow mono to run WinForms applications (keepass).

This commit is contained in:
Andrew Morsillo 2013-06-09 23:17:09 +02:00
parent c96c105c5c
commit e1bd332758
4 changed files with 65 additions and 4 deletions

View File

@ -0,0 +1,45 @@
{ stdenv, fetchurl, unzip, makeDesktopItem, mono }:
stdenv.mkDerivation rec {
name = "keepass-${version}";
version = "2.22";
src = fetchurl {
url = "mirror://sourceforge/keepass/KeePass-${version}.zip";
sha256 = "0mman7r1jmirfwzix5qww0yn4rrgzcg7546basxjvvfc8flp43j0";
};
sourceRoot = ".";
phases = [ "unpackPhase" "installPhase" ];
desktopItem = makeDesktopItem {
name = "keepass";
exec = "keepass";
comment = "Password manager";
desktopName = "Keepass";
genericName = "Password manager";
categories = "Application;Other;";
};
installPhase = ''
ensureDir "$out/bin"
echo "${mono}/bin/mono $out/KeePass.exe" > $out/bin/keepass
chmod +x $out/bin/keepass
echo $out
cp -r ./* $out/
ensureDir "$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];
platforms = with stdenv.lib.platforms; all;
license = stdenv.lib.licenses.gpl2;
};
}

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus}:
{stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11}:
stdenv.mkDerivation rec {
name = "mono-2.11.4";
@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
sha256 = "0wv8pnj02mq012sihx2scx0avyw51b5wb976wn7x86zda0vfcsnr";
};
buildInputs = [bison pkgconfig glib gettext perl libgdiplus];
buildInputs = [bison pkgconfig glib gettext perl libgdiplus libX11];
propagatedBuildInputs = [glib];
NIX_LDFLAGS = "-lgcc_s" ;
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
# In fact I think this line does not help at all to what I
# wanted to achieve: have mono to find libgdiplus automatically
configureFlags = "--with-libgdiplus=${libgdiplus}/lib/libgdiplus.so";
configureFlags = "--x-includes=${libX11}/include --x-libraries=${libX11}/lib --with-libgdiplus=${libgdiplus}/lib/libgdiplus.so";
# Attempt to fix this error when running "mcs --version":
# The file /nix/store/xxx-mono-2.4.2.1/lib/mscorlib.dll is an invalid CIL image
@ -31,6 +31,17 @@ stdenv.mkDerivation rec {
patchShebangs ./
";
#Fix mono DLLMap so it can find libX11 and gdiplus to run winforms apps
#Other items in the DLLMap may need to be pointed to their store locations, I don't think this is exhaustive
#http://www.mono-project.com/Config_DllMap
postBuild = ''
find . -name 'config' -type f | while read i; do
sed -i "s@libMonoPosixHelper.so@$out/lib/libMonoPosixHelper.so@g" $i
sed -i "s@libX11.so.6@${libX11}/lib/libX11.so.6@g" $i
sed -i '2 i\<dllmap dll="gdiplus.dll" target="${libgdiplus}/lib/libgdiplus.so" os="!windows"/>' $i
done
'';
meta = {
homepage = http://mono-project.com/;
description = "Cross platform, open source .NET development framework";

View File

@ -8,6 +8,7 @@
all = "Nix Committers <nix-commits@lists.science.uu.nl>";
amiddelk = "Arie Middelkoop <amiddelk@gmail.com>";
andres = "Andres Loeh <ksnixos@andres-loeh.de>";
amorsillo = "Andrew Morsillo <andrew.morsillo@gmail.com>";
antono = "Antono Vasiljev <self@antono.info>";
astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
aszlig = "aszlig <aszlig@redmoonstudios.org>";

View File

@ -2645,7 +2645,9 @@ let
mlton = callPackage ../development/compilers/mlton { };
mono = callPackage ../development/compilers/mono { };
mono = callPackage ../development/compilers/mono {
inherit (xlibs) libX11;
};
monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
@ -7161,6 +7163,8 @@ let
keepassx = callPackage ../applications/misc/keepassx { };
keepass = callPackage ../applications/misc/keepass { };
# FIXME: Evince and other GNOME/GTK+ apps (e.g., Viking) provide
# `share/icons/hicolor/icon-theme.cache'. Arbitrarily give this one a
# higher priority.