2022-04-23 09:31:09 +01:00
|
|
|
{ lib, stdenv, fetchFromGitHub, fetchpatch
|
2017-05-07 09:37:42 +01:00
|
|
|
, xorg, xkeyboard_config, zlib
|
|
|
|
, libjpeg_turbo, pixman, fltk
|
|
|
|
, cmake, gettext, libtool
|
2018-12-31 03:40:47 +00:00
|
|
|
, libGLU
|
2017-05-07 09:37:42 +01:00
|
|
|
, gnutls, pam, nettle
|
2019-12-14 17:06:01 +00:00
|
|
|
, xterm, openssh, perl
|
2021-01-08 15:48:52 +00:00
|
|
|
, makeWrapper
|
2020-04-13 04:56:20 +01:00
|
|
|
, nixosTests
|
2021-01-08 15:48:52 +00:00
|
|
|
}:
|
2011-12-03 09:29:38 +00:00
|
|
|
|
2021-01-15 09:19:50 +00:00
|
|
|
with lib;
|
2010-07-12 23:15:36 +01:00
|
|
|
|
2011-11-10 19:05:43 +00:00
|
|
|
stdenv.mkDerivation rec {
|
2021-12-06 08:47:06 +00:00
|
|
|
version = "1.12.0";
|
2019-08-15 13:41:18 +01:00
|
|
|
pname = "tigervnc";
|
2013-01-28 14:53:51 +00:00
|
|
|
|
2017-02-03 12:34:25 +00:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "TigerVNC";
|
|
|
|
repo = "tigervnc";
|
2021-01-08 15:48:52 +00:00
|
|
|
rev = "v${version}";
|
2021-12-06 08:47:06 +00:00
|
|
|
sha256 = "sha256-77X+AvHFWfYYIio3c+EYf11jg/1IbYhNUweRIDHMOZw=";
|
2010-07-12 23:15:36 +01:00
|
|
|
};
|
|
|
|
|
2010-07-13 18:57:13 +01:00
|
|
|
|
2022-04-23 09:31:09 +01:00
|
|
|
patches = [
|
|
|
|
(fetchpatch {
|
|
|
|
url = "https://patch-diff.githubusercontent.com/raw/TigerVNC/tigervnc/pull/1383.patch";
|
|
|
|
sha256 = "sha256-r3QLtxVD0wIv2NWVN9r0LVxSlLurDHgkAZfkpIjmZyU=";
|
|
|
|
name = "Xvnc-support-Xorg-1.21-PR1383.patch";
|
|
|
|
})
|
|
|
|
];
|
|
|
|
|
2017-09-08 19:45:17 +01:00
|
|
|
postPatch = ''
|
2021-01-08 15:48:52 +00:00
|
|
|
sed -i -e '/^\$cmd \.= " -pn";/a$cmd .= " -xkbdir ${xkeyboard_config}/etc/X11/xkb";' unix/vncserver/vncserver.in
|
2010-07-13 18:57:13 +01:00
|
|
|
fontPath=
|
2017-09-08 19:45:17 +01:00
|
|
|
substituteInPlace vncviewer/vncviewer.cxx \
|
|
|
|
--replace '"/usr/bin/ssh' '"${openssh}/bin/ssh'
|
2022-04-23 09:31:09 +01:00
|
|
|
|
|
|
|
cp unix/xserver21.1.1.patch unix/xserver211.patch
|
|
|
|
source_top="$(pwd)"
|
2010-07-12 23:15:50 +01:00
|
|
|
'';
|
|
|
|
|
2016-01-14 06:31:30 +00:00
|
|
|
dontUseCmakeBuildDir = true;
|
2012-10-18 17:49:22 +01:00
|
|
|
|
2021-01-08 15:48:52 +00:00
|
|
|
cmakeFlags = [
|
|
|
|
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
|
|
|
|
"-DCMAKE_INSTALL_SBINDIR=${placeholder "out"}/bin"
|
|
|
|
"-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "out"}/bin"
|
|
|
|
];
|
|
|
|
|
2010-07-12 23:15:50 +01:00
|
|
|
postBuild = ''
|
2017-02-13 14:24:29 +00:00
|
|
|
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error=int-to-pointer-cast -Wno-error=pointer-to-int-cast"
|
2016-01-14 06:31:30 +00:00
|
|
|
export CXXFLAGS="$CXXFLAGS -fpermissive"
|
2010-07-12 23:15:50 +01:00
|
|
|
# Build Xvnc
|
2016-01-14 06:31:30 +00:00
|
|
|
tar xf ${xorg.xorgserver.src}
|
2010-07-12 23:15:50 +01:00
|
|
|
cp -R xorg*/* unix/xserver
|
|
|
|
pushd unix/xserver
|
2016-12-13 16:27:23 +00:00
|
|
|
version=$(echo ${xorg.xorgserver.name} | sed 's/.*-\([0-9]\+\).\([0-9]\+\).*/\1\2/g')
|
2022-04-23 09:31:09 +01:00
|
|
|
patch -p1 < "$source_top/unix/xserver$version.patch"
|
2010-07-12 23:15:50 +01:00
|
|
|
autoreconf -vfi
|
2016-12-13 16:27:23 +00:00
|
|
|
./configure $configureFlags --disable-devel-docs --disable-docs \
|
|
|
|
--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
|
|
|
|
--disable-xwin --disable-xephyr --disable-kdrive --with-pic \
|
|
|
|
--disable-xorgcfg --disable-xprint --disable-static \
|
2018-01-05 16:34:21 +00:00
|
|
|
--enable-composite --disable-xtrap --enable-xcsecurity \
|
2016-12-13 16:27:23 +00:00
|
|
|
--disable-{a,c,m}fb \
|
|
|
|
--disable-xwayland \
|
|
|
|
--disable-config-dbus --disable-config-udev --disable-config-hal \
|
|
|
|
--disable-xevie \
|
|
|
|
--disable-dri --disable-dri2 --disable-dri3 --enable-glx \
|
|
|
|
--enable-install-libxf86config \
|
2014-08-15 15:51:50 +01:00
|
|
|
--prefix="$out" --disable-unit-tests \
|
|
|
|
--with-xkb-path=${xkeyboard_config}/share/X11/xkb \
|
2016-01-14 06:31:30 +00:00
|
|
|
--with-xkb-bin-directory=${xorg.xkbcomp}/bin \
|
2014-08-15 15:51:50 +01:00
|
|
|
--with-xkb-output=$out/share/X11/xkb/compiled
|
2018-12-05 21:00:40 +00:00
|
|
|
make TIGERVNC_SRC=$src TIGERVNC_BUILDDIR=`pwd`/../.. -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES
|
2010-07-12 23:15:50 +01:00
|
|
|
popd
|
|
|
|
'';
|
2016-12-13 16:27:23 +00:00
|
|
|
|
2010-07-12 23:15:50 +01:00
|
|
|
postInstall = ''
|
2016-12-13 16:27:23 +00:00
|
|
|
pushd unix/xserver/hw/vnc
|
2018-12-05 21:00:40 +00:00
|
|
|
make TIGERVNC_SRC=$src TIGERVNC_BUILDDIR=`pwd`/../../../.. install
|
2016-01-14 06:31:30 +00:00
|
|
|
popd
|
|
|
|
rm -f $out/lib/xorg/protocol.txt
|
2010-07-12 23:15:50 +01:00
|
|
|
|
2017-05-07 09:37:42 +01:00
|
|
|
wrapProgram $out/bin/vncserver \
|
2021-01-15 09:19:50 +00:00
|
|
|
--prefix PATH : ${lib.makeBinPath (with xorg; [ xterm twm xsetroot xauth ]) }
|
2017-05-07 09:37:42 +01:00
|
|
|
'';
|
2011-12-03 09:29:38 +00:00
|
|
|
|
2017-05-07 09:37:42 +01:00
|
|
|
buildInputs = with xorg; [
|
|
|
|
libjpeg_turbo fltk pixman
|
2019-12-14 17:06:01 +00:00
|
|
|
gnutls pam nettle perl
|
2018-12-31 03:40:47 +00:00
|
|
|
xorgproto
|
2017-05-07 09:37:42 +01:00
|
|
|
utilmacros libXtst libXext libX11 libXext libICE libXi libSM libXft
|
2018-12-31 03:40:47 +00:00
|
|
|
libxkbfile libXfont2 libpciaccess
|
|
|
|
libGLU
|
|
|
|
] ++ xorg.xorgserver.buildInputs;
|
2013-01-28 14:53:51 +00:00
|
|
|
|
2018-05-17 16:27:08 +01:00
|
|
|
nativeBuildInputs = with xorg; [ cmake zlib gettext libtool utilmacros fontutil makeWrapper ]
|
2017-10-08 16:54:49 +01:00
|
|
|
++ xorg.xorgserver.nativeBuildInputs;
|
2016-01-14 06:31:30 +00:00
|
|
|
|
2017-08-14 21:39:03 +01:00
|
|
|
propagatedBuildInputs = xorg.xorgserver.propagatedBuildInputs;
|
2010-07-12 23:15:50 +01:00
|
|
|
|
2020-04-13 04:56:20 +01:00
|
|
|
passthru.tests.tigervnc = nixosTests.vnc.testTigerVNC;
|
|
|
|
|
2010-07-12 23:15:50 +01:00
|
|
|
meta = {
|
2019-11-30 14:42:50 +00:00
|
|
|
homepage = "https://tigervnc.org/";
|
2021-01-15 09:19:50 +00:00
|
|
|
license = lib.licenses.gpl2Plus;
|
2010-07-12 23:15:50 +01:00
|
|
|
description = "Fork of tightVNC, made in cooperation with VirtualGL";
|
2021-01-15 09:19:50 +00:00
|
|
|
maintainers = with lib.maintainers; [viric];
|
|
|
|
platforms = with lib.platforms; linux;
|
2016-01-14 06:31:30 +00:00
|
|
|
# Prevent a store collision.
|
|
|
|
priority = 4;
|
2010-07-12 23:15:50 +01:00
|
|
|
};
|
2016-04-13 14:21:04 +01:00
|
|
|
}
|