From e0fe062ee45f19d7c9ea2765fd31d3bddddc2f2a Mon Sep 17 00:00:00 2001 From: Chen Qi Date: Wed, 21 Apr 2021 00:01:43 -0700 Subject: tigervnc: upgrade to 1.11.0 Upgrade to latest stable version. The 1.10 branch is not maitained any more, it stops update in 2019. The 1.11 branch has fix for CVE-2020-26117, which is a high risk CVE. https://nvd.nist.gov/vuln/detail/CVE-2020-26117 Some changes in this new version are as below. 1) 'bash' is added to RDEPENDS as /usr/libexec/vncsession-start requires it. 2) DEPENDS on libpam and requires 'pam' distro feature. This is because upstream has made 'pam' mandatory in the following commit. """ commit d80817f101d1b3f1a9b1c5ec268f28fffa2d75f9 Author: Pierre Ossman Date: Wed Jul 11 15:49:46 2018 +0200 Make PAM mandatory It is present on all UNIX systems anyway, so let's simplify things. We will need it for more proper session startup anyway. """ Signed-off-by: Chen Qi Signed-off-by: Khem Raj --- .../0002-do-not-build-tests-sub-directory.patch | 21 ++-- ...tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch | 36 ++---- .../recipes-graphics/tigervnc/tigervnc_1.10.1.bb | 130 -------------------- .../recipes-graphics/tigervnc/tigervnc_1.11.0.bb | 133 +++++++++++++++++++++ 4 files changed, 157 insertions(+), 163 deletions(-) delete mode 100644 meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb create mode 100644 meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb (limited to 'meta-oe') diff --git a/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch b/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch index 4e875ba82b..5a42e67d06 100644 --- a/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch +++ b/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch @@ -1,29 +1,30 @@ -From c3460d63f0b6cd50b9a64265f420f0439e12a1d5 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Tue, 25 Apr 2017 01:36:44 -0400 -Subject: [PATCH 2/4] do not build tests sub directory +From 076d0e12a7be6cd2108e4ca0dcde1cb658918fa5 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 19 Apr 2021 23:02:45 -0700 +Subject: [PATCH] do not build tests sub directory -Upstream-Status: Inappropriate [oe specific] +Upstream-Status: Inappropriate [OE Specific] -Signed-off-by: Hongxu Jia +Signed-off-by: Hongxu Jia +Signed-off-by: Chen Qi --- CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 94ec2ef..fb72a00 100644 +index 7bf99441..bda80598 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -300,9 +300,6 @@ if(BUILD_VIEWER) +@@ -304,9 +304,6 @@ if(BUILD_VIEWER) add_subdirectory(media) endif() -add_subdirectory(tests) - - - include(cmake/BuildPackages.cmake) + add_subdirectory(release) # uninstall -- -2.7.4 +2.30.2 diff --git a/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch b/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch index 97b0a388a2..5f14665b8d 100644 --- a/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch +++ b/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch @@ -1,44 +1,34 @@ -From 9563b69640227da2220ee0c39077afb736cc96d1 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Thu, 20 Jul 2017 17:12:17 +0800 -Subject: [PATCH 4/4] tigervnc: add fPIC option to COMPILE_FLAGS +From 7f8acd59bb2e54f9be25a98dd71534700a9e355a Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 19 Apr 2021 23:14:28 -0700 +Subject: [PATCH] tigervnc: add fPIC option to COMPILE_FLAGS -The static libraries in Xregion/network/rdr/rfb were linked by shared +The static libraries in network/rdr/rfb were linked by shared library libvnc.so, so we should add fPIC option to COMPILE_FLAGS to fix relocation issue. Upstream-Status: Pending Signed-off-by: Hongxu Jia +Signed-off-by: Chen Qi --- - common/Xregion/CMakeLists.txt | 1 + common/network/CMakeLists.txt | 1 + common/rdr/CMakeLists.txt | 1 + common/rfb/CMakeLists.txt | 1 + - 4 files changed, 4 insertions(+) + 3 files changed, 3 insertions(+) -diff --git a/common/Xregion/CMakeLists.txt b/common/Xregion/CMakeLists.txt -index 40ca97e..9411328 100644 ---- a/common/Xregion/CMakeLists.txt -+++ b/common/Xregion/CMakeLists.txt -@@ -3,4 +3,5 @@ add_library(Xregion STATIC - - if(UNIX) - libtool_create_control_file(Xregion) -+ set_target_properties(Xregion PROPERTIES COMPILE_FLAGS -fPIC) - endif() diff --git a/common/network/CMakeLists.txt b/common/network/CMakeLists.txt -index b624c8e..6c06ec9 100644 +index d00ca452..e84e0290 100644 --- a/common/network/CMakeLists.txt +++ b/common/network/CMakeLists.txt -@@ -9,4 +9,5 @@ endif() +@@ -16,4 +16,5 @@ endif() if(UNIX) libtool_create_control_file(network) + set_target_properties(network PROPERTIES COMPILE_FLAGS -fPIC) endif() diff --git a/common/rdr/CMakeLists.txt b/common/rdr/CMakeLists.txt -index 989ba2f..20f6489 100644 +index 989ba2f4..20f6489d 100644 --- a/common/rdr/CMakeLists.txt +++ b/common/rdr/CMakeLists.txt @@ -27,4 +27,5 @@ target_link_libraries(rdr ${RDR_LIBRARIES}) @@ -48,15 +38,15 @@ index 989ba2f..20f6489 100644 + set_target_properties(rdr PROPERTIES COMPILE_FLAGS -fPIC) endif() diff --git a/common/rfb/CMakeLists.txt b/common/rfb/CMakeLists.txt -index 5047e5e..88838ab 100644 +index fc5a37bf..7f5ce131 100644 --- a/common/rfb/CMakeLists.txt +++ b/common/rfb/CMakeLists.txt -@@ -98,4 +98,5 @@ target_link_libraries(rfb ${RFB_LIBRARIES}) +@@ -99,4 +99,5 @@ target_link_libraries(rfb ${RFB_LIBRARIES}) if(UNIX) libtool_create_control_file(rfb) + set_target_properties(rfb PROPERTIES COMPILE_FLAGS -fPIC) endif() -- -2.7.4 +2.30.2 diff --git a/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb b/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb deleted file mode 100644 index f97c2b2d6c..0000000000 --- a/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb +++ /dev/null @@ -1,130 +0,0 @@ -DESCRIPTION = "TigerVNC remote display system" -HOMEPAGE = "http://www.tigervnc.com/" -LICENSE = "GPLv2+" -SECTION = "x11/utils" -DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk" -RDEPENDS_${PN} = "coreutils hicolor-icon-theme perl" - -LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3" - -S = "${WORKDIR}/git" - -inherit features_check -REQUIRED_DISTRO_FEATURES = "x11" - -inherit autotools cmake -B = "${S}" - -SRCREV = "4739493b635372bd40a34640a719f79fa90e4dba" - -SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.10-branch \ - file://0002-do-not-build-tests-sub-directory.patch \ - file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \ - file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \ -" - -# Keep sync with xorg-server in oe-core -XORG_PN ?= "xorg-server" -XORG_PV ?= "1.20.6" -SRC_URI += "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${XORG_PV}.tar.bz2;name=xorg" -XORG_S = "${WORKDIR}/${XORG_PN}-${XORG_PV}" -SRC_URI[xorg.md5sum] = "a98170084f2c8fed480d2ff601f8a14b" -SRC_URI[xorg.sha256sum] = "6316146304e6e8a36d5904987ae2917b5d5b195dc9fc63d67f7aca137e5a51d1" - -# It is the directory containing the Xorg source for the -# machine on which you are building TigerVNC. -XSERVER_SOURCE_DIR="${S}/unix/xserver" - -do_patch[postfuncs] += "do_patch_xserver" -do_patch_xserver () { - for subdir in Xext xkb GL hw/xquartz/bundle hw/xfree86/common; do - install -d ${XSERVER_SOURCE_DIR}/$subdir - done - - for subdir in hw/dmx/doc man doc hw/dmx/doxygen; do - install -d ${XSERVER_SOURCE_DIR}/$subdir - done - - sources="hw/xquartz/bundle/cpprules.in man/Xserver.man doc/smartsched \ - hw/dmx/doxygen/doxygen.conf.in xserver.ent.in xkb/README.compiled \ - hw/xfree86/xorgconf.cpp hw/xfree86/Xorg.sh.in" - for i in ${sources}; do - install -m 0644 ${XORG_S}/$i ${XSERVER_SOURCE_DIR}/$i; - done - - cd ${XORG_S} - find . -type f | egrep '.*\.(c|h|am|ac|inc|m4|h.in|pc.in|man.pre|pl|txt)$' | \ - xargs tar cf - | (cd ${XSERVER_SOURCE_DIR} && tar xf -) - - cd ${XSERVER_SOURCE_DIR} - xserverpatch="${S}/unix/xserver120.patch" - echo "Apply $xserverpatch" - patch -p1 -b --suffix .vnc < $xserverpatch -} - -EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \ - --disable-xwin --disable-xephyr --disable-kdrive --with-pic \ - --disable-static --disable-xinerama \ - --with-xkb-output=${localstatedir}/lib/xkb \ - --disable-glx --disable-dri --disable-dri2 \ - --disable-config-hal \ - --disable-config-udev \ - --without-dtrace \ - --disable-unit-tests \ - --disable-devel-docs \ - --disable-selective-werror \ - --disable-xshmfence \ - --disable-config-udev \ - --disable-dri3 \ - --disable-libunwind \ - --without-xmlto \ - --enable-systemd-logind=no \ - --disable-xinerama \ - --disable-xwayland \ -" - -do_configure_append () { - olddir=`pwd` - cd ${XSERVER_SOURCE_DIR} - - rm -rf aclocal-copy/ - rm -f aclocal.m4 - - export ACLOCALDIR="${XSERVER_SOURCE_DIR}/aclocal-copy" - mkdir -p ${ACLOCALDIR}/ - if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then - cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${ACLOCALDIR}/ - fi - if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then - cp-noerror ${STAGING_DATADIR}/aclocal/ ${ACLOCALDIR}/ - fi - ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed." - chmod +x ./configure - ${CACHED_CONFIGUREVARS} ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} - cd $olddir -} - -do_compile_append () { - olddir=`pwd` - cd ${XSERVER_SOURCE_DIR} - - oe_runmake - - cd $olddir -} - -do_install_append() { - olddir=`pwd` - cd ${XSERVER_SOURCE_DIR}/hw/vnc - - oe_runmake 'DESTDIR=${D}' install - - cd $olddir -} - -FILES_${PN} += " \ - ${libdir}/xorg/modules/extensions \ - ${datadir}/icons \ -" - -FILES_${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug" diff --git a/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb b/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb new file mode 100644 index 0000000000..ce6c59bc39 --- /dev/null +++ b/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb @@ -0,0 +1,133 @@ +DESCRIPTION = "TigerVNC remote display system" +HOMEPAGE = "http://www.tigervnc.com/" +LICENSE = "GPLv2+" +SECTION = "x11/utils" +DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk libpam" +RDEPENDS_${PN} = "coreutils hicolor-icon-theme perl bash" + +LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3" + +S = "${WORKDIR}/git" + +inherit features_check +REQUIRED_DISTRO_FEATURES = "x11 pam" + +inherit autotools cmake +B = "${S}" + +SRCREV = "540bfc3278e396321124d4b18a798ac2bc18b6ca" + +SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.11-branch \ + file://0002-do-not-build-tests-sub-directory.patch \ + file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \ + file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \ +" + +# Keep sync with xorg-server in oe-core +XORG_PN ?= "xorg-server" +XORG_PV ?= "1.20.6" +SRC_URI += "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${XORG_PV}.tar.bz2;name=xorg" +XORG_S = "${WORKDIR}/${XORG_PN}-${XORG_PV}" +SRC_URI[xorg.md5sum] = "a98170084f2c8fed480d2ff601f8a14b" +SRC_URI[xorg.sha256sum] = "6316146304e6e8a36d5904987ae2917b5d5b195dc9fc63d67f7aca137e5a51d1" + +# It is the directory containing the Xorg source for the +# machine on which you are building TigerVNC. +XSERVER_SOURCE_DIR="${S}/unix/xserver" + +do_patch[postfuncs] += "do_patch_xserver" +do_patch_xserver () { + for subdir in Xext xkb GL hw/xquartz/bundle hw/xfree86/common; do + install -d ${XSERVER_SOURCE_DIR}/$subdir + done + + for subdir in hw/dmx/doc man doc hw/dmx/doxygen; do + install -d ${XSERVER_SOURCE_DIR}/$subdir + done + + sources="hw/xquartz/bundle/cpprules.in man/Xserver.man doc/smartsched \ + hw/dmx/doxygen/doxygen.conf.in xserver.ent.in xkb/README.compiled \ + hw/xfree86/xorgconf.cpp hw/xfree86/Xorg.sh.in" + for i in ${sources}; do + install -m 0644 ${XORG_S}/$i ${XSERVER_SOURCE_DIR}/$i; + done + + cd ${XORG_S} + find . -type f | egrep '.*\.(c|h|am|ac|inc|m4|h.in|pc.in|man.pre|pl|txt)$' | \ + xargs tar cf - | (cd ${XSERVER_SOURCE_DIR} && tar xf -) + + cd ${XSERVER_SOURCE_DIR} + xserverpatch="${S}/unix/xserver120.patch" + echo "Apply $xserverpatch" + patch -p1 -b --suffix .vnc < $xserverpatch +} + +EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \ + --disable-xwin --disable-xephyr --disable-kdrive --with-pic \ + --disable-static --disable-xinerama \ + --with-xkb-output=${localstatedir}/lib/xkb \ + --disable-glx --disable-dri --disable-dri2 \ + --disable-config-hal \ + --disable-config-udev \ + --without-dtrace \ + --disable-unit-tests \ + --disable-devel-docs \ + --disable-selective-werror \ + --disable-xshmfence \ + --disable-config-udev \ + --disable-dri3 \ + --disable-libunwind \ + --without-xmlto \ + --enable-systemd-logind=no \ + --disable-xinerama \ + --disable-xwayland \ +" + +EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DCMAKE_INSTALL_UNITDIR=/lib/systemd/system', '-DINSTALL_SYSTEMD_UNITS=OFF', d)}" + +do_configure_append () { + olddir=`pwd` + cd ${XSERVER_SOURCE_DIR} + + rm -rf aclocal-copy/ + rm -f aclocal.m4 + + export ACLOCALDIR="${XSERVER_SOURCE_DIR}/aclocal-copy" + mkdir -p ${ACLOCALDIR}/ + if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then + cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${ACLOCALDIR}/ + fi + if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then + cp-noerror ${STAGING_DATADIR}/aclocal/ ${ACLOCALDIR}/ + fi + ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed." + chmod +x ./configure + ${CACHED_CONFIGUREVARS} ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} + cd $olddir +} + +do_compile_append () { + olddir=`pwd` + cd ${XSERVER_SOURCE_DIR} + + oe_runmake + + cd $olddir +} + +do_install_append() { + olddir=`pwd` + cd ${XSERVER_SOURCE_DIR}/hw/vnc + + oe_runmake 'DESTDIR=${D}' install + + cd $olddir +} + +FILES_${PN} += " \ + ${libdir}/xorg/modules/extensions \ + ${datadir}/icons \ + ${systemd_unitdir} \ +" + +FILES_${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug" -- cgit 1.2.3-korg