Fixing the pinta build (finally!). All looks very ugly, I imagine that mainly because

I know almost nothing about Mono.
I invite others to improve it.

svn path=/nixpkgs/trunk/; revision=22387
This commit is contained in:
Lluís Batlle i Rossell 2010-06-22 21:07:09 +00:00
parent 5dc0d3dbcf
commit 78f5f3359b
3 changed files with 42 additions and 37 deletions

View File

@ -1,20 +0,0 @@
source $stdenv/setup
source $makeWrapper
postInstall() {
mv $out/bin $out/bin-orig
mkdir $out/bin
for i in $out/bin-orig/*; do
echo "wrapping $(basename $i)"
# !!! TODO: figure out the MONO_GAC_PREFIX automatically
makeWrapper "$i" "$out/bin/$(basename $i)" \
--suffix PATH ':' "$(dirname $(type -p mono))" \
--suffix MONO_GAC_PREFIX ':' "$gtksharp" \
--suffix MONO_GAC_PREFIX ':' "$out"
done
}
genericBuild

View File

@ -1,25 +1,44 @@
{stdenv, fetchgit, mono, gtksharp, pkgconfig}:
stdenv.mkDerivation {
name = "pinta-20100617";
builder = ./builder.sh;
name = "pinta-0.3";
src = fetchgit {
url = http://github.com/jpobst/Pinta.git;
tag = "0.3";
sha256 = "0qvpz9602igjmv8ba6vc4kg9jj3yyw0frl7wgz62hdxiizdfhm2f";
rev = "0.3";
sha256 = "17fde1187be4cfd50a9acda4ba45584e24d51ff22df5074654bed23f61faf33b";
};
makeWrapper = ../../../build-support/make-wrapper/make-wrapper.sh;
makePhase = ''
HOME=`pwd`/tmphome
mkdir -p $HOME
xbuild Pinta.Core/Pinta.Core.csproj /v:diag
'';
buildInputs = [mono gtksharp pkgconfig];
inherit gtksharp;
buildPhase = ''
# xbuild understands pkgconfig, but gtksharp does not give .pc for gdk-sharp
# So we have to go the GAC-way
export MONO_GAC_PREFIX=${gtksharp}
xbuild Pinta.sln
'';
# Very ugly - I don't know enough Mono to improve this. Isn't there any rpath in binaries?
installPhase = ''
ensureDir $out/lib/pinta $out/bin
cp bin/*.{dll,exe} $out/lib/pinta
cat > $out/bin/pinta << EOF
#!/bin/sh
export MONO_GAC_PREFIX=${gtksharp}:\$MONO_GAC_PREFIX
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${gtksharp}/lib:${gtksharp.gtk}/lib:${mono}/lib
exec ${mono}/bin/mono $out/lib/pinta/Pinta.exe
EOF
chmod +x $out/bin/pinta
'';
# Always needed on Mono, otherwise nothing runs
dontStrip = true;
meta = {
homepage = http://www.pinta-project.com/;
description = "Drawing/editing program modeled after Paint.NET";
license = "MIT";
maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; linux;
};
}

View File

@ -16,12 +16,12 @@
}:
stdenv.mkDerivation {
name = "gtk-sharp-2.12.9";
name = "gtk-sharp-2.12.10";
builder = ./builder.sh;
src = fetchurl {
url = http://ftp.gnome.org/pub/gnome/sources/gtk-sharp/2.12/gtk-sharp-2.12.9.tar.gz;
sha256 = "1wh8zh960s4gq3cs11ys6p1ssblhpj2m8nm4xwv2s3bi7wbmcclh";
url = http://ftp.gnome.org/pub/gnome/sources/gtk-sharp/2.12/gtk-sharp-2.12.10.tar.gz;
sha256 = "1y55vc2cp4lggmbil2lb28d0gn71iq6wfyja1l9mya5xll8svzwc";
};
# patches = [ ./dllmap-glue.patch ];
@ -32,5 +32,11 @@ stdenv.mkDerivation {
gnomepanel
];
dontStrip = true;
inherit monoDLLFixer;
passthru = {
inherit gtk;
};
}