|
root / base / libvncserver
libvncserver Plain Text 89 lines 3.2 KB
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/bin/sh
# Build script for libvncserver (CMake + Ninja) - undocumented dependency
# of x11vnc, see package.toml header for why this port exists.
#
# Deliberately keep the feature surface minimal / no-GTK (project toolkit
# rule): no SDL/GTK/Qt example clients, no systemd, no GnuTLS/gcrypt/SASL/
# FFmpeg/websockets/libsshtunnel. zlib comes from base (/usr/lib); jpeg +
# png come from the Task-5 (M3a) ports already installed at $PREFIX.
#
# illumos socket gotcha (per Task-7a brief + gotcha checklist): sockets.c
# calls socket()/bind()/listen()/accept()/gethostbyname() unconditionally.
# CMake's check_function_exists(socket ...) probe does NOT itself add
# -lsocket/-lnsl to the link line the way autoconf's AC_CHECK_LIB does, so
# without forcing them into the linker flags the final `ninja` link step
# fails with undefined references to socket()/gethostbyname(). Force via
# CMAKE_EXE_LINKER_FLAGS/CMAKE_SHARED_LINKER_FLAGS cache vars.
set -e
cd "$SRCDIR"

export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig:$PKG_CONFIG_PATH"

mkdir -p build && cd build
cmake -G Ninja \
    -DCMAKE_INSTALL_PREFIX="$PREFIX" \
    -DCMAKE_INSTALL_LIBDIR=lib \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_C_FLAGS="-D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS -I$PREFIX/include" \
    -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
    -DCMAKE_EXE_LINKER_FLAGS="-L$PREFIX/lib -R$PREFIX/lib -lsocket -lnsl" \
    -DCMAKE_SHARED_LINKER_FLAGS="-L$PREFIX/lib -R$PREFIX/lib -lsocket -lnsl" \
    -DBUILD_SHARED_LIBS=ON \
    -DWITH_ZLIB=ON \
    -DWITH_LZO=OFF \
    -DWITH_JPEG=ON \
    -DWITH_PNG=ON \
    -DWITH_SDL=OFF \
    -DWITH_GTK=OFF \
    -DWITH_QT=OFF \
    -DWITH_LIBSSHTUNNEL=OFF \
    -DWITH_THREADS=ON \
    -DWITH_GNUTLS=OFF \
    -DWITH_OPENSSL=ON \
    -DWITH_SYSTEMD=OFF \
    -DWITH_GCRYPT=OFF \
    -DWITH_FFMPEG=OFF \
    -DWITH_TIGHTVNC_FILETRANSFER=ON \
    -DWITH_24BPP=ON \
    -DWITH_IPv6=ON \
    -DWITH_WEBSOCKETS=OFF \
    -DWITH_SASL=OFF \
    -DWITH_XCB=ON \
    -DWITH_EXAMPLES=OFF \
    -DWITH_TESTS=OFF \
    ..
ninja -j${JOBS:-1}
DESTDIR="$PKGDIR" ninja install
# libvncserver - VNC server/client protocol library (VNC/RFB implementation)
#
# NOT in the Task-0/xlibre-phase1a-manifest.md port table. Discovered as a
# hard build dependency of x11vnc during Task 7a (2026-07-22): x11vnc split
# off from the LibVNCServer project in 2016 and its configure.ac now does
# PKG_CHECK_MODULES(LIBVNCSERVER, libvncserver >= 0.9.8) +
# PKG_CHECK_MODULES(LIBVNCCLIENT, libvncclient >= 0.9.8) unconditionally -
# it is no longer a standalone/bundled-source VNC implementation. Added
# here as a manifest gap fix so x11vnc can build at all.
# https://github.com/LibVNC/libvncserver

[package]
name = "libvncserver"
version = "0.9.15"
release = 1
description = "VNC server/client protocol library (used by x11vnc)"
url = "https://github.com/LibVNC/libvncserver"
license = "MIT"
maintainer = "Chris Tusa <chris.tusa@leafscale.com>"
arch = "x86_64"

[dependencies]
runtime = ["libjpeg-turbo", "libpng"]
build = ["libjpeg-turbo", "libpng"]

[[source]]
file = "libvncserver-0.9.15.tar.gz"
urls = ["https://github.com/LibVNC/libvncserver/archive/refs/tags/LibVNCServer-0.9.15.tar.gz"]
checksum = "62352c7795e231dfce044beb96156065a05a05c974e5de9e023d688d8ff675d7"

[build]
parallel = true