tigervnc: simplify xserver unpack and build

When unpacking, just use cp to hardlink the xserver source tree into the
tigervnc source tree.

When configuring, instead of replicating complicated logic, we can
simply set the variable AUTOTOOLS_SCRIPT_PATH and just call
autotools_do_configure.  Some of the options passed to the xserver
configure are obsolete so remove them.

Signed-off-by: Ross Burton <ross.burton@arm.com>
This commit is contained in:
Ross Burton
2025-02-25 17:57:29 +00:00
parent e5643c6ba5
commit c6a91f32cc
@@ -33,32 +33,17 @@ SRC_URI[xorg.sha256sum] = "841c82901282902725762df03adbbcd68153d4cdfb0d61df0cfd7
# It is the directory containing the Xorg source for the # It is the directory containing the Xorg source for the
# machine on which you are building TigerVNC. # machine on which you are building TigerVNC.
XSERVER_SOURCE_DIR="${S}/unix/xserver" XSERVER_SOURCE_DIR="${S}/unix/xserver"
AUTOTOOLS_SCRIPT_PATH = "${XSERVER_SOURCE_DIR}"
do_patch[postfuncs] += "do_patch_xserver" do_patch[postfuncs] += "do_patch_xserver"
do_patch_xserver () { do_patch_xserver () {
subdirs="Xext xkb GL hw/xquartz/bundle hw/xfree86/common man doc" # Put the xserver source in the right place in the tigervnc source tree
for i in ${subdirs}; do cp -rfl ${XORG_S}/* ${XSERVER_SOURCE_DIR}
install -d ${XSERVER_SOURCE_DIR}/$i # Apply the patch to integrate the vnc server
done patch -p1 -b --suffix .vnc --directory ${XSERVER_SOURCE_DIR} <${S}/unix/xserver21.patch
sources="hw/xquartz/bundle/cpprules.in man/Xserver.man doc/smartsched \
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/xserver21.patch"
echo "Apply $xserverpatch"
patch -p1 -b --suffix .vnc < $xserverpatch
} }
EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \ EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb \
--disable-xwin --disable-xephyr --disable-kdrive --with-pic \ --disable-xwin --disable-xephyr --disable-kdrive --with-pic \
--disable-static --disable-xinerama \ --disable-static --disable-xinerama \
--with-xkb-output=${localstatedir}/lib/xkb \ --with-xkb-output=${localstatedir}/lib/xkb \
@@ -76,48 +61,20 @@ EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
--without-xmlto \ --without-xmlto \
--enable-systemd-logind=no \ --enable-systemd-logind=no \
--disable-xinerama \ --disable-xinerama \
--disable-xwayland \
" "
EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DCMAKE_INSTALL_UNITDIR=${systemd_system_unitdir}', '-DINSTALL_SYSTEMD_UNITS=OFF', d)}" EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DCMAKE_INSTALL_UNITDIR=${systemd_system_unitdir}', '-DINSTALL_SYSTEMD_UNITS=OFF', d)}"
do_configure:append () { do_configure:append () {
olddir=`pwd` autotools_do_configure
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 --aclocal-path=${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 () { do_compile:append () {
olddir=`pwd`
cd ${XSERVER_SOURCE_DIR}
oe_runmake oe_runmake
cd $olddir
} }
do_install:append() { do_install:append() {
olddir=`pwd` oe_runmake -C ${B}/hw/vnc 'DESTDIR=${D}' install
cd ${XSERVER_SOURCE_DIR}/hw/vnc
oe_runmake 'DESTDIR=${D}' install
cd $olddir
} }
FILES:${PN} += " \ FILES:${PN} += " \