xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunDESCRIPTION = "TigerVNC remote display system"
2*4882a593SmuzhiyunHOMEPAGE = "http://www.tigervnc.com/"
3*4882a593SmuzhiyunLICENSE = "GPL-2.0-or-later"
4*4882a593SmuzhiyunSECTION = "x11/utils"
5*4882a593SmuzhiyunDEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk libpam"
6*4882a593SmuzhiyunRDEPENDS:${PN} = "coreutils hicolor-icon-theme perl bash xkbcomp"
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3"
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunS = "${WORKDIR}/git"
11*4882a593Smuzhiyun
12*4882a593Smuzhiyuninherit autotools cmake features_check pkgconfig
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunREQUIRED_DISTRO_FEATURES = "x11 pam"
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunB = "${S}"
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunSRCREV = "540bfc3278e396321124d4b18a798ac2bc18b6ca"
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunSRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.11-branch;protocol=https \
21*4882a593Smuzhiyun           file://0002-do-not-build-tests-sub-directory.patch \
22*4882a593Smuzhiyun           file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \
23*4882a593Smuzhiyun           file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \
24*4882a593Smuzhiyun"
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun# Keep sync with xorg-server in oe-core
27*4882a593SmuzhiyunXORG_PN ?= "xorg-server"
28*4882a593SmuzhiyunXORG_PV ?= "1.20.6"
29*4882a593SmuzhiyunSRC_URI += "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${XORG_PV}.tar.bz2;name=xorg"
30*4882a593SmuzhiyunXORG_S = "${WORKDIR}/${XORG_PN}-${XORG_PV}"
31*4882a593SmuzhiyunSRC_URI[xorg.md5sum] = "a98170084f2c8fed480d2ff601f8a14b"
32*4882a593SmuzhiyunSRC_URI[xorg.sha256sum] = "6316146304e6e8a36d5904987ae2917b5d5b195dc9fc63d67f7aca137e5a51d1"
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun# It is the directory containing the Xorg source for the
35*4882a593Smuzhiyun# machine on which you are building TigerVNC.
36*4882a593SmuzhiyunXSERVER_SOURCE_DIR="${S}/unix/xserver"
37*4882a593Smuzhiyun
38*4882a593Smuzhiyundo_patch[postfuncs] += "do_patch_xserver"
39*4882a593Smuzhiyundo_patch_xserver () {
40*4882a593Smuzhiyun    for subdir in Xext xkb GL hw/xquartz/bundle hw/xfree86/common; do
41*4882a593Smuzhiyun        install -d ${XSERVER_SOURCE_DIR}/$subdir
42*4882a593Smuzhiyun    done
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun    for subdir in hw/dmx/doc man doc hw/dmx/doxygen; do
45*4882a593Smuzhiyun        install -d ${XSERVER_SOURCE_DIR}/$subdir
46*4882a593Smuzhiyun    done
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun    sources="hw/xquartz/bundle/cpprules.in man/Xserver.man doc/smartsched \
49*4882a593Smuzhiyun             hw/dmx/doxygen/doxygen.conf.in xserver.ent.in xkb/README.compiled \
50*4882a593Smuzhiyun             hw/xfree86/xorgconf.cpp hw/xfree86/Xorg.sh.in"
51*4882a593Smuzhiyun    for i in ${sources}; do
52*4882a593Smuzhiyun        install -m 0644 ${XORG_S}/$i ${XSERVER_SOURCE_DIR}/$i;
53*4882a593Smuzhiyun    done
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun    cd ${XORG_S}
56*4882a593Smuzhiyun    find . -type f | egrep '.*\.(c|h|am|ac|inc|m4|h.in|pc.in|man.pre|pl|txt)$' | \
57*4882a593Smuzhiyun    xargs tar cf - | (cd ${XSERVER_SOURCE_DIR} && tar xf -)
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun    cd ${XSERVER_SOURCE_DIR}
60*4882a593Smuzhiyun    xserverpatch="${S}/unix/xserver120.patch"
61*4882a593Smuzhiyun    echo "Apply $xserverpatch"
62*4882a593Smuzhiyun    patch -p1 -b --suffix .vnc < $xserverpatch
63*4882a593Smuzhiyun}
64*4882a593Smuzhiyun
65*4882a593SmuzhiyunEXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
66*4882a593Smuzhiyun        --disable-xwin --disable-xephyr --disable-kdrive --with-pic \
67*4882a593Smuzhiyun        --disable-static --disable-xinerama \
68*4882a593Smuzhiyun        --with-xkb-output=${localstatedir}/lib/xkb \
69*4882a593Smuzhiyun        --disable-glx --disable-dri --disable-dri2 \
70*4882a593Smuzhiyun        --disable-config-hal \
71*4882a593Smuzhiyun        --disable-config-udev \
72*4882a593Smuzhiyun        --without-dtrace \
73*4882a593Smuzhiyun        --disable-unit-tests \
74*4882a593Smuzhiyun        --disable-devel-docs \
75*4882a593Smuzhiyun        --disable-selective-werror \
76*4882a593Smuzhiyun        --disable-xshmfence \
77*4882a593Smuzhiyun        --disable-config-udev \
78*4882a593Smuzhiyun        --disable-dri3 \
79*4882a593Smuzhiyun        --disable-libunwind \
80*4882a593Smuzhiyun        --without-xmlto \
81*4882a593Smuzhiyun        --enable-systemd-logind=no \
82*4882a593Smuzhiyun        --disable-xinerama \
83*4882a593Smuzhiyun        --disable-xwayland \
84*4882a593Smuzhiyun"
85*4882a593Smuzhiyun
86*4882a593SmuzhiyunEXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DCMAKE_INSTALL_UNITDIR=${systemd_unitdir}', '-DINSTALL_SYSTEMD_UNITS=OFF', d)}"
87*4882a593Smuzhiyun
88*4882a593Smuzhiyundo_configure:append () {
89*4882a593Smuzhiyun    olddir=`pwd`
90*4882a593Smuzhiyun    cd ${XSERVER_SOURCE_DIR}
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun    rm -rf aclocal-copy/
93*4882a593Smuzhiyun    rm -f aclocal.m4
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun    export ACLOCALDIR="${XSERVER_SOURCE_DIR}/aclocal-copy"
96*4882a593Smuzhiyun    mkdir -p ${ACLOCALDIR}/
97*4882a593Smuzhiyun    if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then
98*4882a593Smuzhiyun        cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${ACLOCALDIR}/
99*4882a593Smuzhiyun    fi
100*4882a593Smuzhiyun    if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then
101*4882a593Smuzhiyun        cp-noerror ${STAGING_DATADIR}/aclocal/ ${ACLOCALDIR}/
102*4882a593Smuzhiyun    fi
103*4882a593Smuzhiyun    ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed."
104*4882a593Smuzhiyun    chmod +x ./configure
105*4882a593Smuzhiyun    ${CACHED_CONFIGUREVARS} ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
106*4882a593Smuzhiyun    cd $olddir
107*4882a593Smuzhiyun}
108*4882a593Smuzhiyun
109*4882a593Smuzhiyundo_compile:append () {
110*4882a593Smuzhiyun    olddir=`pwd`
111*4882a593Smuzhiyun    cd ${XSERVER_SOURCE_DIR}
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun    oe_runmake
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun    cd $olddir
116*4882a593Smuzhiyun}
117*4882a593Smuzhiyun
118*4882a593Smuzhiyundo_install:append() {
119*4882a593Smuzhiyun    olddir=`pwd`
120*4882a593Smuzhiyun    cd ${XSERVER_SOURCE_DIR}/hw/vnc
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun    oe_runmake 'DESTDIR=${D}' install
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun    cd $olddir
125*4882a593Smuzhiyun}
126*4882a593Smuzhiyun
127*4882a593SmuzhiyunFILES:${PN} += " \
128*4882a593Smuzhiyun    ${libdir}/xorg/modules/extensions \
129*4882a593Smuzhiyun    ${datadir}/icons \
130*4882a593Smuzhiyun    ${systemd_unitdir} \
131*4882a593Smuzhiyun"
132*4882a593Smuzhiyun
133*4882a593SmuzhiyunFILES:${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug"
134