[HarfBuzz] Ubuntu 16.04 building 1.5.1 from source didn't quite work for me

Richard Wordingham richard.wordingham at ntlworld.com
Sun Sep 24 23:42:56 UTC 2017


On Sun, 24 Sep 2017 22:59:11 +0200
Rolf Langenhuijzen <rolf.langenhuijzen at xs4all.nl> wrote:

> Hi all,
> 
> Was away from Harfbuzz for a while, but today tried to get it running
> (as expected) on a freshly installed server Ubuntu 16.04 32 bit. I
> followed the build instructions at
> https://github.com/behdad/harfbuzz/blob/master/BUILD.md
> <https://github.com/behdad/harfbuzz/blob/master/BUILD.md> to setup
> the basic packages etc.
> 
> I kept some old notes from previous installations (going back to
> 0.9.26 I think), and after downloading in the root home folder;
> - sudo ./autogen.sh
> - sudo ./configure --prefix=/usr
> - sudo make && make install
> 
> (sometimes the configure was with more options, but as this was for
> basic use anyway, I didn’t add any)
> 
> After this I usually copied util/hb-view to /usr/local/bin and that
> was it (used it from there instead of /usr/bin).
> 
> But, now with 1.5.1, I noticed the util/.libs folder that final
> hb-view build (was also copied in /usr/bin). When I run hb-view
> —version I get:
> - hb-view (HarfBuzz) 1.5.1
> - Available shapers: graphite2,ot,fallback
> - Linked HarfBuzz library has a different version: 1.0.1
> 
> Question: why is that 3rd line there?

I think the problem is that ./configure --prefix=/usr has caused the
system Harfbuzz library to be used.  (Or is the problem that it should
have been sudo make && sudo make install?)

I did a simple:

git clone  https://github.com/behdad/harfbuzz.git harfbuzz-git
cd harfbuzz-git
./autogen.sh
make distclean
mkdir jrw1
cd jrw1
../configure CFLAGS=-g CXXFLAGS=-g  --no-recursion --with-graphite2
make

The command "hb-view --version" then yielded:

lt-hb-view (HarfBuzz) 1.5.1
Available shapers: graphite2,ot,fallback

Ubuntu 16.04 is saddled with Version 1.0.1 of HarfBuzz.  For Cham and
Tai Tham, there is a fundamental bug in Indic rearrangement.  One can
be a good boy, and install HarfBuzz 1.2.7 via Debian packages.  I used
the instructions from https://help.ubuntu.com/community/PinningHowto
and proceeded as follows:

Add the following line to /etc/apt/sources.list 
deb-src http://archive.ubuntu.com/ubuntu yakkety main restricted
universe multiverse
Then you'll need to update your repos: 
sudo apt-get update 
Now we need to install some packages so we can build the desired
software in intrepid: 
sudo apt-get build-dep libharfbuzz0b
Now we can do the following to get the package built from yakkety on
our hardy machine: 
sudo apt-get -b source -t yakkety harfbuzz
This created as set of 8 Debian package files:
gir1.2-harfbuzz-0.0_1.2.7-1_i386.deb
libharfbuzz0b_1.2.7-1_i386.deb
libharfbuzz0-udeb_1.2.7-1_i386.udeb
libharfbuzz-bin_1.2.7-1_i386.deb
libharfbuzz-dev_1.2.7-1_i386.deb
libharfbuzz-doc_1.2.7-1_all.deb
libharfbuzz-gobject0_1.2.7-1_i386.deb
libharfbuzz-icu0_1.2.7-1_i386.deb
The final step is 
sudo dpkg -i libharfbuzz0b_1.2.7-1_i386.deb
This fixes the rendering problem.

I need to insert some other of the packages in various orders to make
the Debian control system happy.

Going higher than 1.2.7 raises potential issues with build dependencies
on Xenial, or at least did when I investigated the problem.

For me, the most significant client application is LibreOffice, and
that seemed to work well when I simply replaced system libraries with
those I built from Version 1.4.6.  (Firefox bundles HarfBuzz.)

> When I run a simple hb-view test I get:
> - hb-view: symbol lookup error: hb-view: undefined symbol:
> hb_font_set_variations
> 
> Question: what does this mean?

Probably as symptom of mismatched source and library. 
 
> Should I destroy this server and start over?

Probably.  I don't know if Ubuntu has recovered the desktop quality of
12.04 Precise.  The smartish keyboards are a disaster.  My KMfL
keyboards are selected unbidden (I could do with a hotkey to select
the allegedly selected keyboard) until the ibus daemon dies.  However,
there's no evidence that you've misinstalled 16.04.

Richard.


More information about the HarfBuzz mailing list