diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix index 8f14a9bd9cc..40e7da709c7 100644 --- a/pkgs/tools/admin/tigervnc/default.nix +++ b/pkgs/tools/admin/tigervnc/default.nix @@ -1,17 +1,68 @@ -{stdenv, fetchurl, libX11, libXext, gettext, libICE, libXtst, libXi, libSM}: +{stdenv, fetchsvn, libX11, libXext, gettext, libICE, libXtst, libXi, libSM, xorgserver, +autoconf, automake, cvs, libtool, nasm, utilmacros, pixman }: + +with stdenv.lib; stdenv.mkDerivation { - name = "tigervnc-1.0.1"; - src = fetchurl { - url = mirror://sourceforge/tigervnc/tigervnc-1.0.1.tar.gz; - sha256 = "06qxavpq6d71ca224yxvr9h5ynydqhaz2nf06ajin5kjjdliphsr"; + name = "tigervnc-svn-4086"; + src = fetchsvn { + url = https://tigervnc.svn.sourceforge.net/svnroot/tigervnc/trunk; + rev = 4086; + sha256 = "0aqn9d5yz21k5l4mwh5f73il77w2rbvsrz91z3lz4bizivvkwszc"; }; preConfigure = '' - cd unix + autoreconf -vfi ''; configureFlags = "--enable-nls"; - buildInputs = [ libX11 libXext gettext libICE libXtst libXi libSM ]; + patchPhase = '' + sed -i -e 's,$(includedir)/pixman-1,${pixman}/include/pixman-1,' unix/xserver/hw/vnc/Makefile.am + ''; + + xorgPatches = xorgserver.patches; + + postBuild = '' + # Build Xvnc + tar xf ${xorgserver.src} + cp -R xorg*/* unix/xserver + pushd unix/xserver + # This below does not work and I don't know why: + #for a in ${concatStringsSep " " (map (f: "${f}") xorgserver.patches)} + for a in $xorgPatches + do + patch -p1 < $a + done + patch -p1 < ../xserver17.patch + autoreconf -vfi + ./configure --prefix=$out --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg --disable-dmx + make TIGERVNC_SRCDIR=`pwd`/../.. + popd + ''; + + # I don't know why I need this; it may have to do with this problem: + # http://bugs.gentoo.org/show_bug.cgi?id=142852 + preInstall = '' + sed -i -e s,@MKINSTALLDIRS@,`pwd`/mkinstalldirs, po/Makefile + ''; + + postInstall = '' + pushd unix/xserver + make TIGERVNC_SRCDIR=`pwd`/../.. install + ''; + + buildInputs = [ libX11 libXext gettext libICE libXtst libXi libSM autoconf automake cvs + libtool nasm utilmacros ] ++ xorgserver.buildNativeInputs; + + propagatedBuildInputs = xorgserver.propagatedBuildNativeInputs; + + meta = { + homepage = http://www.tigervnc.org/; + license = "GPLv2+"; + description = "Fork of tightVNC, made in cooperation with VirtualGL"; + maintainers = with stdenv.lib.maintainers; [viric]; + platforms = with stdenv.lib.platforms; linux; + }; + } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index af1b796c39f..5db795377dc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1817,8 +1817,8 @@ let }; tigervnc = import ../tools/admin/tigervnc { - inherit fetchurl stdenv gettext; - inherit (xlibs) libX11 libXext libICE libXtst libXi libSM; + inherit fetchsvn stdenv gettext autoconf automake cvs libtool nasm; + inherit (xorg) libX11 libXext libICE libXtst libXi libSM xorgserver utilmacros pixman; }; tightvnc = import ../tools/admin/tightvnc {