Bug 103346

Summary: Harfbuzz 1.6.0 check-externs.sh test fails on Debian
Product: HarfBuzz Reporter: أحمد المحمودي <aelmahmoudy>
Component: srcAssignee: Behdad Esfahbod <freedesktop>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: freedesktop, pochu27
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description أحمد المحمودي 2017-10-18 15:40:22 UTC
Build log: https://launchpadlibrarian.net/341304020/buildlog_ubuntu-artful-amd64.harfbuzz_1.6.0-1~2.gbp2ea60f_BUILDING.txt.gz

FAIL: check-externs.sh 
======================
 Checking that all public symbols are exported with HB_EXTERN 
hb_bool_t 
FAIL check-externs.sh (exit status: 1)
Comment 1 Behdad Esfahbod 2017-10-24 14:07:52 UTC
The test now prints more diagnostics:
https://github.com/behdad/harfbuzz/commit/9ac2e5c6c01db3ebe419e3aa07f4d1a3777d2bb6

Can you get output of that one so we figure out what's going on?  Also, any idea what grep is that?
Comment 2 أحمد المحمودي 2017-10-25 02:15:03 UTC
After applying the patch:

FAIL: check-externs.sh
======================

Checking that all public symbols are exported with HB_EXTERN
../../src/hb-version.h-65-
../../src/hb-version.h:66:hb_bool_t
FAIL check-externs.sh (exit status: 1)
Comment 3 Behdad Esfahbod 2017-10-25 16:09:17 UTC
Looks like you have a stale hb-version.h in your src/ directory.  Delete it.
Comment 4 Behdad Esfahbod 2017-10-25 16:10:06 UTC
Should be fixed in master.
Comment 5 Emilio Pozuelo Monfort 2017-10-26 06:53:09 UTC
This is actually caused by a patch that we ship, which adds back the hb_version_check symbol, which was removed a few releases ago without bumping the SONAME. It's a trivial patch that should be alright, but it didn't have HB_EXTERN (as the commit that was reverted didn't have either).

We plan to get rid of this patch, but we were waiting for the next SONAME bump to do so. Maybe we can get rid of this now as there are no users of this API according to codesearch.debian.net... the only user is mlterm but it's just defining HB_VERSION_ATLEAST when not defined (so not used in practice):

https://codesearch.debian.net/search?q=HB_VERSION_CHECK+package%3Amlterm

Sorry for the noise, in any case.
Comment 6 Behdad Esfahbod 2017-10-26 17:47:50 UTC
Next time you want to do something like that just let me know, I'd keep the symbol upstream as deprecated.  In this case I removed it because its implementation was returning the exact opposite of what it was suppose to, so ANY users would have been completely borked.

In other news, no soname bump expected anytime soon.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.