nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 104 lines 2.2 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 fetchpatch, 6 wxGTK32, 7 gtk3, 8 zlib, 9 libjpeg, 10 libvncserver, 11 cmake, 12 pkg-config, 13 libsysprof-capture, 14 pcre2, 15 util-linux, 16 libselinux, 17 libsepol, 18 libthai, 19 libdatrie, 20 xorg, 21 lerc, 22 libxkbcommon, 23 libepoxy, 24 wrapGAppsHook3, 25}: 26 27let 28 # libvncserver does not support multicast. since multivnc is mostly about multicast, it requires a special branch of libvncserver. 29 libvncserver-patched = libvncserver.overrideAttrs { 30 src = fetchFromGitHub { 31 owner = "LibVNC"; 32 repo = "libvncserver"; 33 rev = "ef3b57438564f2877148a23055f3f0ffce66df11"; 34 hash = "sha256-Cg96tsi6h1DX4VSsq1B8DTn0GxnBfoZK2nuxeT/+ca0="; 35 }; 36 patches = [ ]; 37 }; 38 39in 40stdenv.mkDerivation { 41 pname = "MultiVNC"; 42 version = "2.8.1"; 43 44 src = fetchFromGitHub { 45 owner = "bk138"; 46 repo = "multivnc"; 47 rev = "89225243412f43ba2903ffeda98af7fe1f8f4975"; 48 hash = "sha256-qdF6nUSGaTphoe6T3gTAJTSQwvu+v/g8xfYobFBmGsI="; 49 fetchSubmodules = true; 50 }; 51 52 patches = [ 53 # remove part of vendored libraries that can be provided by Nixpkgs 54 ./nixpkgs.patch 55 56 # silences a compiler warning 57 (fetchpatch { 58 url = "https://github.com/bk138/multivnc/commit/002ba7f6b5b88dac3da5c08f99be1f237dcde904.patch"; 59 hash = "sha256-Qnk7RrUaw9jsaNTbzYqsH0LU8ivT9xX2jfxrES82ArE="; 60 }) 61 ]; 62 63 # remove submodules we don't need 64 # some submodules can be provided by nixpkgs 65 postPatch = '' 66 rm -rfv libvncserver libsshtunnel libjpeg-turbo libressl libssh2 67 ''; 68 69 buildInputs = [ 70 gtk3 71 wxGTK32 72 zlib 73 libjpeg 74 libvncserver-patched 75 76 # transitive dependencies 77 libsysprof-capture 78 pcre2 79 util-linux # mount 80 libselinux 81 libsepol 82 libthai 83 libdatrie 84 lerc 85 libxkbcommon 86 libepoxy 87 xorg.libXdmcp 88 xorg.libXtst 89 ]; 90 91 nativeBuildInputs = [ 92 cmake 93 pkg-config 94 wrapGAppsHook3 95 ]; 96 97 meta = { 98 mainProgram = "multivnc"; 99 description = "Cross-platform Multicast-enabled VNC viewer based on LibVNCClient"; 100 homepage = "https://github.com/bk138/multivnc"; 101 maintainers = with lib.maintainers; [ rhelmot ]; 102 license = lib.licenses.gpl3Plus; 103 }; 104}