nixpkgs/pkgs/tools/admin/tigervnc/default.nix
Alexander Ried e7ded267bd xserver: replace XKB_BINDIR with compile time option
---

Using the configure option relieves us of the patch and passing the path
via the env var in many places. Also the env var may not be inherited
when components like gdm spawn new sessions.
2016-10-03 15:03:02 +02:00

93 lines
3.2 KiB
Nix

{ stdenv, fetchgit, xorg
, autoconf, automake, cvs, libtool, nasm, pixman, xkeyboard_config
, fontDirectories, libgcrypt, gnutls, pam, flex, bison, gettext
, cmake, libjpeg_turbo, fltk, nettle, libiconv, libtasn1
}:
with stdenv.lib;
stdenv.mkDerivation rec {
version = "1.6.0";
name = "tigervnc-${version}";
src = fetchgit {
url = "https://github.com/TigerVNC/tigervnc/";
sha256 = "1plljv1cxsax88kv52g02n8c1hzwgp6j1p8z1aqhskw36shg4pij";
rev = "5a727f25990d05c9a1f85457b45d6aed66409cb3";
};
inherit fontDirectories;
patchPhase = ''
sed -i -e 's,$(includedir)/pixman-1,${if stdenv ? cross then pixman.crossDrv else pixman}/include/pixman-1,' unix/xserver/hw/vnc/Makefile.am
sed -i -e '/^\$cmd \.= " -pn";/a$cmd .= " -xkbdir ${if stdenv ? cross then xkeyboard_config.crossDrv else xkeyboard_config}/etc/X11/xkb";' unix/vncserver
fontPath=
for i in $fontDirectories; do
for j in $(find $i -name fonts.dir); do
addToSearchPathWithCustomDelimiter "," fontPath $(dirname $j)
done
done
sed -i -e '/^\$cmd \.= " -pn";/a$cmd .= " -fp '"$fontPath"'";' unix/vncserver
'';
dontUseCmakeBuildDir = true;
postBuild = ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error=int-to-pointer-cast"
export CXXFLAGS="$CXXFLAGS -fpermissive"
# Build Xvnc
tar xf ${xorg.xorgserver.src}
cp -R xorg*/* unix/xserver
pushd unix/xserver
autoreconf -vfi
./configure $configureFlags --disable-devel-docs --disable-docs --disable-xinerama --disable-xvfb --disable-xnest \
--disable-xorg --disable-dmx --disable-dri --disable-dri2 --disable-glx \
--prefix="$out" --disable-unit-tests \
--with-xkb-path=${xkeyboard_config}/share/X11/xkb \
--with-xkb-bin-directory=${xorg.xkbcomp}/bin \
--with-xkb-output=$out/share/X11/xkb/compiled
make TIGERVNC_SRCDIR=`pwd`/../..
popd
'';
postInstall = ''
pushd unix/xserver
make TIGERVNC_SRCDIR=`pwd`/../.. install
popd
rm -f $out/lib/xorg/protocol.txt
'';
crossAttrs = {
buildInputs = (map (x : x.crossDrv) (buildInputs ++ [
xorg.fixesproto xorg.damageproto xorg.xcmiscproto xorg.bigreqsproto xorg.randrproto xorg.renderproto
xorg.fontsproto xorg.videoproto xorg.compositeproto xorg.scrnsaverproto xorg.resourceproto
xorg.libxkbfile xorg.libXfont xorg.libpciaccess xorg.xineramaproto
]));
};
buildInputs =
[ xorg.libX11 xorg.libXext gettext xorg.libICE xorg.libXtst xorg.libXi xorg.libSM xorg.libXft
nasm libgcrypt gnutls pam pixman libjpeg_turbo fltk xorg.xineramaproto
xorg.libXinerama xorg.libXcursor nettle libiconv libtasn1
];
nativeBuildInputs =
[ autoconf automake cvs xorg.utilmacros xorg.fontutil libtool flex bison
cmake gettext
]
++ xorg.xorgserver.nativeBuildInputs;
propagatedNativeBuildInputs = xorg.xorgserver.propagatedNativeBuildInputs;
enableParallelBuilding = true;
meta = {
homepage = http://www.tigervnc.org/;
license = stdenv.lib.licenses.gpl2Plus;
description = "Fork of tightVNC, made in cooperation with VirtualGL";
maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; linux;
# Prevent a store collision.
priority = 4;
};
}