With the new pango version 1.44 compilation of
src/lilypond/lily/pango-font.cc
gives warnings about
'void* pango_fc_font_lock_face(PangoFcFont*)'
to be deprecated and
'pango_font_get_hb_font'
should be used instead.
followed by
error: invalid conversion from 'gpointer' {aka 'void*'} to 'FT_Face' {aka 'FT_FaceRec_*'}
Seems that pango doesn't work with freetype fonts anymore.
A side note: lilypond executables compiled with pango <=1.43
produce an empty 1st page when run with pango 1.44 installed.
Rafael Fontenelle adds:
Pango 1.44 also dropped Type1 support... Note sure whether this is something we actually want.
Well, Pango did drop Type1 support...
Regarding the 1.44 issue: There have been reports that a lilypond binary compiled against Pango 1.43 doesn't work with 1.44
.so
libraries (using OpenType fonts). If this can be confirmed (can you do that?) we have a serious bug in Pango itself since they broke ABI backward compatibility; this should be reported as such, and the Pango guys have to increase the.so
major number correctly – or fix the ABI.Of course, we should make LilyPond compile with newer Pango versions, too. It is also possible that our Pango code is not fully correct, exhibiting problems with 1.44.
Last edit: Werner LEMBERG 2019-08-06
I can confirm that my Lilypond was compiled against 1.43 and works, dropping in the 1.44 SO makes it fail.
I've reported a bug about the so version with Pango.
Upstream is suggesting the C ABI did not change and the problem is Lilypond's C++ casting.
That concerns the compilation error which is a bit tangential to the issue. Even if the interfaces were superficially completely binary compatible, when there are substantial reductions in functionality making it unavoidable to be using two different versions of the library at the same time, the library numbers have to be changed. Only straightforward extensions in functionality and bug fixes can afford to keep the same numbers because only then there is no incentive to use more than one version of the library at the same time.
I fully agree, and I've just commented on the Pango bug report.
Upstream has rolled back this change. I'm sure it will take a littleb bit of time to land in distros, but when it does Lilypond compiled agoinst 1.43 should work again even with new Pango dropped in. What that won't solve is being able to compile against 1.44, which is also a problem because distros that have new Pango won't be able to update (and hence include) Lilypond.
This is already an issue on Arch that is stuck one point release behind because it won't compile. As soon as this compile time issue is fixed it should make it's way to a point release so Arch and other up to date distros can keep using it on new systems.
Pango 1.44.5 or newer fixes this.