From 78f5f3359ba79445fff52e25bacb38c8b9eaa780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Tue, 22 Jun 2010 21:07:09 +0000 Subject: [PATCH] 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 --- pkgs/applications/graphics/pinta/builder.sh | 20 -------- pkgs/applications/graphics/pinta/default.nix | 47 +++++++++++++------ .../libraries/gtk-sharp-2/default.nix | 12 +++-- 3 files changed, 42 insertions(+), 37 deletions(-) delete mode 100644 pkgs/applications/graphics/pinta/builder.sh diff --git a/pkgs/applications/graphics/pinta/builder.sh b/pkgs/applications/graphics/pinta/builder.sh deleted file mode 100644 index bcea7a7a89af..000000000000 --- a/pkgs/applications/graphics/pinta/builder.sh +++ /dev/null @@ -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 - - diff --git a/pkgs/applications/graphics/pinta/default.nix b/pkgs/applications/graphics/pinta/default.nix index 7dc6014ec8b5..801ed7a1b619 100644 --- a/pkgs/applications/graphics/pinta/default.nix +++ b/pkgs/applications/graphics/pinta/default.nix @@ -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; + }; } diff --git a/pkgs/development/libraries/gtk-sharp-2/default.nix b/pkgs/development/libraries/gtk-sharp-2/default.nix index 4405376493ac..7ffc918f678d 100644 --- a/pkgs/development/libraries/gtk-sharp-2/default.nix +++ b/pkgs/development/libraries/gtk-sharp-2/default.nix @@ -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; + }; }