1{ lib
2, stdenv
3, fetchFromGitHub
4, fetchpatch
5, cmake
6, libjpeg
7, openssl
8, zlib
9, libgcrypt
10, libpng
11, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
12, systemd
13, Carbon
14}:
15
16stdenv.mkDerivation rec {
17 pname = "libvncserver";
18 version = "0.9.14";
19
20 outputs = [ "out" "dev" ];
21
22 src = fetchFromGitHub {
23 owner = "LibVNC";
24 repo = "libvncserver";
25 rev = "LibVNCServer-${version}";
26 sha256 = "sha256-kqVZeCTp+Z6BtB6nzkwmtkJ4wtmjlSQBg05lD02cVvQ=";
27 };
28
29 nativeBuildInputs = [
30 cmake
31 ];
32
33 cmakeFlags = [
34 "-DWITH_SYSTEMD=${if withSystemd then "ON" else "OFF"}"
35 ];
36
37 buildInputs = [
38 libjpeg
39 openssl
40 libgcrypt
41 libpng
42 ] ++ lib.optionals withSystemd [
43 systemd
44 ] ++ lib.optionals stdenv.isDarwin [
45 Carbon
46 ];
47
48 propagatedBuildInputs = [
49 zlib
50 ];
51
52 meta = with lib; {
53 description = "VNC server library";
54 homepage = "https://libvnc.github.io/";
55 license = licenses.gpl2Plus;
56 maintainers = with maintainers; [ raskin ];
57 platforms = platforms.unix;
58 };
59}