Building libX11 statically causes problems with libpthread, however
the version of libX11 that ships with el5 is too old to build libXext.
So we have to build a dynamic version of libX11 and link against that
while building. The resulting binary will actually be linked against
the system libX11, which should be ABI compatible as far as Xvnc is
concerned.
Compile legacy Xvnc with relative rpath for portability
Build with rpath link so that Xvnc finds our libGL even if
it's not installed in "/". Also applied dridir and xkbcompdir
patches so that the correct DRI driver gets loaded.
Added patches for the following upstream CVEs: 2013-7439,
2015-0255, 2015-1802, 2015-1803, 2015-1804. Also updated the
versions of gnutls, libtasn1, and libjpeg-turbo used to build
static libraries to their latest respective upstream versions.
Added patches for the following upstream CVEs: 2013-7439,
2015-0255, 2015-1802, 2015-1803, 2015-1804. Also updated the
versions of gnutls, libtasn1, and libjpeg-turbo used to build
static libraries to their latest respective upstream versions.
Improved font path specifiecation for el5 & generic binaries.
Font paths were incompletely specified, resulting in font issues with some applications (nedit, for instance). Also, added support for font catalogues back in, even though el5 doesn't supoort it, this should make font handling more robust for the genric binaries.
(cherry picked from commit 233eea2d45)
Fixed various static linking problems with latest el5 spec.
Some definitions were being overridden in StaticBuild.cmake,
causing checks for various fltk capabilities to fail. Also,
fontconfig was not being configured properly for default font
locations, causing the vncviewer to fail to locate fonts when
used as a generic binary.
(cherry picked from commit 81e4483169)
The patches required for the 2014-12-09 Xorg CVE advisory would not
have been feasible to back-port to the 1.7 version of Xorg that we
were previously using to built against for EL5 and the generic
binaries. However, building the newer version of Xorg required
some fairly extensive re-tooling. In a nutshell, here's what was
done:
* The build is now done against Xorg X117R7, with all CVE patches
(taken from debian sources) applied. Note that this requires
updating various packages beyond the versions readily available
for EL5. This included things like automake, autoconf, libtool,
m4, and flex. Wherever possible, the EL6 rpm was used unaltered.
The most chalenging package to upgrade was libxml2, which was
necessary to supply the python26-libxml2 requirement from mesa.
* Mesa libGL is now supplied with the package, installed in the
%{_libdir}/tigervnc directory. The Xvnc binary is linked using
an rpath so that we always link against our version of libGL.
This was done to prevent linker errors with the generic binaries
in the case where the distro supplied libGL is built with
different options (in particular, kernel versions < 2.4.20 do
not support glx-tls, so the generic binaries would likely break
whenever used on newer distros that build libGL with glx-tls
turned on by default). Additionally, this allows swrast_dri.so
to be bundled without worrying about overwriting the distro
supplied library.
* A static libsha1 is built for Xorg to link against. The EL5
version of libgcrypt does not satisfy Xorg's requirements,
and linking against OpenSSL creates nearly a dozen runtime
dependencies.
* Removed the hard coded snap tag, if needed it should be passed in
via "rpmbuild --define 'snap ...'".
* Changed the hard coded version to "@VERSION@" to make it clear
that the copy of the spec file in the repository needs to be
updated manually.
* Fixes for unresolved dependency issues when linking against static fltk
* Major overhaul of static build. Previously, fltk & tigervnc were built
against the dynamic system libraries (and thus not entirely portable).
All of the X11 libraries required for Xvnc are now built first and
everything is linked against them.
Added 'contrib' folder to store patches necessary to build external dependecies, distribution-specific packaging files, etc. Also added a delimiter to the end of the fltk patch script defined in BUILDING.txt to make it easier to parse this script out for automated builds.