From fe011b55df68b7419a8042db94fc3fd1bcaca497 Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Sat, 16 Dec 2017 03:55:58 +0100 Subject: Support building with legacy (pre-1.4.2) libXfont(1) versions. Partly reverts ec30a857eb0d67b232f8d43e63a6370023f4c4d0, but in a forward-compatible manner. Legacy libXfont1 versions are automatically detected by the main Makefile. --- Makefile | 2 +- nx-X11/config/cf/Imake.tmpl | 7 +++++++ nx-X11/config/cf/host.def | 7 +++++++ nx-X11/config/cf/xorg.cf | 4 ++++ nx-X11/programs/Xserver/dix/dixfonts.c | 6 ++++++ nx-X11/programs/Xserver/include/dixfont.h | 4 ++++ nx-libs.spec | 2 +- 7 files changed, 30 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index cfd0d10b8..b0beacd23 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,7 @@ INCLUDEDIR ?= $(PREFIX)/include CONFIGURE ?= ./configure --prefix=$(PREFIX) # use Xfont2 if available in the build env -FONT_DEFINES ?= $(shell pkg-config --modversion xfont2 1>/dev/null 2>/dev/null && echo "-DHAS_XFONT2") +FONT_DEFINES ?= $(shell pkg-config --modversion xfont2 1>/dev/null 2>/dev/null && echo "-DHAS_XFONT2") $(shell pkg-config --exists 'xfont < 1.4.2' 1>/dev/null 2>/dev/null && echo "-DLEGACY_XFONT1") XFONTLIB ?= $(shell pkg-config --modversion xfont2 1>/dev/null 2>/dev/null && echo "-lXfont2" || echo "-lXfont") NX_VERSION_MAJOR=$(shell ./version.sh 1) diff --git a/nx-X11/config/cf/Imake.tmpl b/nx-X11/config/cf/Imake.tmpl index 85228ae07..44fe2f3c1 100644 --- a/nx-X11/config/cf/Imake.tmpl +++ b/nx-X11/config/cf/Imake.tmpl @@ -555,6 +555,9 @@ X_BYTE_ORDER = ByteOrder #ifndef HasXfont2 #define HasXfont2 NO #endif +#ifndef HasLegacyXfont1 +#define HasLegacyXfont1 NO +#endif #ifndef GzipLibrary /* if OS config didn't define it, assume it's -lz */ #define GzipLibrary -lz #endif @@ -1871,7 +1874,11 @@ SETITIMER_DEFINES = HasSetitimerDefines FONT_DEFINES = -DHAS_XFONT2 XFONTLIB = -lXfont2 #else +#if HasLegacyXfont1 +FONT_DEFINES = -DLEGACY_XFONT1 +#else FONT_DEFINES = +#endif XFONTLIB = -lXfont #endif diff --git a/nx-X11/config/cf/host.def b/nx-X11/config/cf/host.def index 4a11359e2..abacf2c4e 100644 --- a/nx-X11/config/cf/host.def +++ b/nx-X11/config/cf/host.def @@ -395,6 +395,13 @@ #define HasXfont2 YES */ +/* + * If building against libXfont(1) and using a legacy version (lower than 1.4.2), + * uncomment this. + * +#define HasLegacyXfont1 YES + */ + /* * If you are running NetBSD 0.9C or later, and have the aperture driver * installed, uncomment this. diff --git a/nx-X11/config/cf/xorg.cf b/nx-X11/config/cf/xorg.cf index 13ccd577c..50a1f4590 100644 --- a/nx-X11/config/cf/xorg.cf +++ b/nx-X11/config/cf/xorg.cf @@ -428,6 +428,10 @@ IPLAN2P8_DEFS = -DUSE_IPLAN2P8 # define HasXfont2 NO #endif +#ifndef HasLegacyXfont1 +# define HasLegacyXfont1 NO +#endif + #ifndef BuildScreenSaverExt # define BuildScreenSaverExt YES #endif diff --git a/nx-X11/programs/Xserver/dix/dixfonts.c b/nx-X11/programs/Xserver/dix/dixfonts.c index 98d2a6439..0d90cd7b0 100644 --- a/nx-X11/programs/Xserver/dix/dixfonts.c +++ b/nx-X11/programs/Xserver/dix/dixfonts.c @@ -2139,7 +2139,13 @@ InitFonts () ResetFontPrivateIndex(); +#ifdef LEGACY_XFONT1 + BuiltinRegisterFpeFunctions(); + FontFileRegisterFpeFunctions(); + fs_register_fpe_functions(); +#else register_fpe_functions(); +#endif } #endif /* HAS_XFONT2 */ diff --git a/nx-X11/programs/Xserver/include/dixfont.h b/nx-X11/programs/Xserver/include/dixfont.h index 21d917fe5..9ae55157e 100644 --- a/nx-X11/programs/Xserver/include/dixfont.h +++ b/nx-X11/programs/Xserver/include/dixfont.h @@ -152,7 +152,11 @@ extern void dixGetGlyphs(FontPtr /*font*/, unsigned long * /*glyphcount*/, CharInfoPtr * /*glyphs*/); +#ifdef LEGACY_XFONT1 +extern void BuiltinRegisterFpeFunctions(void); +#else extern void register_fpe_functions(void); +#endif extern void QueryGlyphExtents(FontPtr /*pFont*/, CharInfoPtr * /*charinfo*/, diff --git a/nx-libs.spec b/nx-libs.spec index 7b34538d1..9a13ac026 100644 --- a/nx-libs.spec +++ b/nx-libs.spec @@ -82,7 +82,7 @@ BuildRequires: pixman-devel >= 0.13.2 BuildRequires: xorg-x11-libX11-devel BuildRequires: xorg-x11-libXext-devel BuildRequires: xorg-x11-libXpm-devel -BuildRequires: xorg-x11-libXfont-devel >= 1.4.2 +BuildRequires: xorg-x11-devel BuildRequires: xorg-x11-libXdmcp-devel BuildRequires: xorg-x11-libXdamage-devel BuildRequires: xorg-x11-libXcomposite-devel -- cgit v1.2.3