Skip to content

Instantly share code, notes, and snippets.

@lf-

lf-/README.md Secret

Last active Sep 13, 2021
Embed
What would you like to do?

boomer fontconfig

in case you need to run software that is ancient.

to use:

clone this gist: git clone https://gist.github.com/3e642f409e99dd7faa8ce353992e53f4 boomer-fontconfig, then cd boomer-fontconfig.

run ./boom.sh. it will emit a ./out directory, which you can copy somewhere. you can then stuff /wherever/it/is/lib in LD_LIBRARY_PATH.

for example, put export LD_LIBRARY_PATH="/opt/intelFPGA_lite/boomer-fontconfig/lib:$LD_LIBRARY_PATH" in the startup script of your old Intel FPGA ModelSim.

#!/bin/bash
set -eo pipefail
NCPU=$(nproc)
ftname=freetype-2.4.12
fcname=fontconfig-2.10.95
mkdir -p out
collectFreetype() {
echo ":: collectFreetype"
local fn=$ftname.tar.gz
if [[ ! -e $fn ]]; then
curl -L -o $fn https://sourceforge.net/projects/freetype/files/freetype2/2.4.12/freetype-2.4.12.tar.gz/download
fi
tar xf $fn
}
buildFreetype() {
echo ":: buildFreetype"
cd $ftname
./configure --prefix= --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
make -j$NCPU
make install DESTDIR=$(pwd)/../out
}
collectFontconfig() {
echo ":: collectFontconfig"
rm -rf "$fcname"
local fn="$fcname.tar.gz"
if [[ ! -e "$fn" ]]; then
curl -L -o "$fn" "https://www.freedesktop.org/software/fontconfig/release/$fn"
fi
tar xf "$fn"
cd "$fcname"
patch -p1 < ../fontconfig-cursed.patch
}
buildFontconfig() {
echo ":: buildFontconfig"
cd "$fcname"
local out="$(pwd)/../out"
# override the lib search path so we do not use system stuff
./configure \
--prefix= \
--build=i686-pc-linux-gnu \
"CFLAGS=-m32" \
"CXXFLAGS=-m32" \
"LDFLAGS=-m32" \
FREETYPE_CFLAGS="-I$out/include/freetype2 -I$out/include" \
FREETYPE_LIBS="-lfreetype"
make -j$NCPU LIBRARY_PATH="$out/lib"
make install DESTDIR=$(pwd)/../out
}
(collectFreetype)
(buildFreetype)
(collectFontconfig)
(buildFontconfig)
From 20cddc824c6501c2082cac41b162c34cd5fcc530 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 11 Dec 2016 14:32:00 -0800
Subject: [PATCH] Avoid conflicts with integer width macros from TS
18661-1:2014
glibc 2.25+ has now defined these macros in <limits.h>
https://sourceware.org/git/?p=glibc.git;a=commit;h=5b17fd0da62bf923cb61d1bb7b08cf2e1f1f9c1a
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Submitted
fontconfig/fontconfig.h | 2 +-
src/fcobjs.h | 2 +-
src/fcobjshash.gperf | 2 +-
src/fcobjshash.h | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
Index: fontconfig-2.12.1/fontconfig/fontconfig.h
===================================================================
--- fontconfig-2.12.1.orig/fontconfig/fontconfig.h
+++ fontconfig-2.12.1/fontconfig/fontconfig.h
@@ -128,7 +128,8 @@ typedef int FcBool;
#define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION
/* Adjust outline rasterizer */
-#define FC_CHAR_WIDTH "charwidth" /* Int */
+#define FC_CHARWIDTH "charwidth" /* Int */
+#define FC_CHAR_WIDTH FC_CHARWIDTH
#define FC_CHAR_HEIGHT "charheight"/* Int */
#define FC_MATRIX "matrix" /* FcMatrix */
Index: fontconfig-2.12.1/src/fcobjs.h
===================================================================
--- fontconfig-2.12.1.orig/src/fcobjs.h
+++ fontconfig-2.12.1/src/fcobjs.h
@@ -51,7 +51,7 @@ FC_OBJECT (DPI, FcTypeDouble, NULL)
FC_OBJECT (RGBA, FcTypeInteger, NULL)
FC_OBJECT (SCALE, FcTypeDouble, NULL)
FC_OBJECT (MINSPACE, FcTypeBool, NULL)
-FC_OBJECT (CHAR_WIDTH, FcTypeInteger, NULL)
+FC_OBJECT (CHARWIDTH, FcTypeInteger, NULL)
FC_OBJECT (CHAR_HEIGHT, FcTypeInteger, NULL)
FC_OBJECT (MATRIX, FcTypeMatrix, NULL)
FC_OBJECT (CHARSET, FcTypeCharSet, FcCompareCharSet)
Index: fontconfig-2.12.1/src/fcobjshash.gperf
===================================================================
--- fontconfig-2.12.1.orig/src/fcobjshash.gperf
+++ fontconfig-2.12.1/src/fcobjshash.gperf
@@ -44,7 +44,7 @@ int id;
"rgba",FC_RGBA_OBJECT
"scale",FC_SCALE_OBJECT
"minspace",FC_MINSPACE_OBJECT
-"charwidth",FC_CHAR_WIDTH_OBJECT
+"charwidth",FC_CHARWIDTH_OBJECT
"charheight",FC_CHAR_HEIGHT_OBJECT
"matrix",FC_MATRIX_OBJECT
"charset",FC_CHARSET_OBJECT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment