Re: build of libharfbuzz0-shlibs-2.6.8-2 failed
Hanspeter Niederstrasser <[email protected]> Wed, 9 Oct 2024 19:38:43 -0500
| Newsgroups | gmane.os.apple.fink.general |
|---|---|
| Organization | Snaggled Works |
| Message-ID | <[email protected]> |
On 10/9/24 5:43 PM, Derek Homeier wrote: > On 9 Oct 2024, at 9:51 PM, [email protected] wrote: >> >> In the failed build directory, can you edit the file util/helper-cairo.cc at line 155 and delete the "(cairo_destroy_func_t)" part at the beginning. This would leave just "hb_font_destroy))" after all the indentations. Make sure you leave the 2 closing parentheses at the end. I don't know if this change will work, but it follows the same pattern from the previous upstream patch in src/hb-ft.cc. >> > Still seems to remember its type: > > g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I.. -DHB_DISABLE_DEPRECATED -I../src/ -I../src/ -I/opt/sw3/include/glib-2.0 -I/opt/sw3/lib/glib-2.0/include -I/opt/sw3/include/freetype2 -I/opt/sw3/include/cairo -I/opt/sw3/include/freetype2 -I/opt/sw3/include -fno-rtti -g -O2 -fno-exceptions -fno-threadsafe-statics -fvisibility-inlines-hidden -MT helper-cairo.o -MD -MP -MF .deps/helper-cairo.Tpo -c -o helper-cairo.o helper-cairo.cc > helper-cairo.cc:152:7: error: no matching function for call to 'cairo_scaled_font_set_user_data' > 152 | if (cairo_scaled_font_set_user_data (scaled_font, > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > /opt/sw3/include/cairo/cairo.h:1592:1: note: candidate function not viable: no known conversion from 'void (hb_font_t *)' to 'cairo_destroy_func_t' (aka 'void (*)(void *)') for 4th argument > 1592 | cairo_scaled_font_set_user_data (cairo_scaled_font_t *scaled_font, > | ^ > 1593 | const cairo_user_data_key_t *key, > 1594 | void *user_data, > 1595 | cairo_destroy_func_t destroy); > > I have found the related change in upstream 7.0.0, which is removing the hb_font_destroy call altogether in > https://github.com/harfbuzz/harfbuzz/commit/ab8b9b4 > so tried to apply that as well. There is a second change in the same commit (no pull request or discussion of > the change as far as I can see) apparently linking a hb_blob_destroy in helper-cairo-ft.hh, but since that file > does not even exist in 2.6.8 (or anything containing a similar function), I’ve no idea how to implement it there. > > With that somewhat aggressive surgery, the package does build, and reactivating the test suite, passes all tests except check-symbols.py: > > Checking that ./.libs/libharfbuzz.dylib does not expose internal symbols > Checking that ./.libs/libharfbuzz.dylib has the same symbol list as ./harfbuzz.def > *** > --- > *************** > > *** 201,207 **** > > hb_ft_font_set_funcs > hb_ft_font_set_load_flags > hb_ft_font_unlock_face > - hb_glib_blob_create > hb_glib_get_unicode_funcs > hb_glib_script_from_script > hb_glib_script_to_script > --- 201,206 —— > > But that function is sitting inside an #if GLIB_CHECK_VERSION(2,31,10) block in hb-glib.cc <http://hb-glib.cc/> > and Fink has glib2 2.28.8, so seems unrelated and inevitable. Another option might be to skip all the patching and just turn off making -Wcast-function-type-script an error. See https://github.com/harfbuzz/harfbuzz/blob/main/src/hb.hh#L132 and https://github.com/harfbuzz/harfbuzz/commit/60c6b7786d9f4651ae2803bfc4ff4435b38a5bc6 which is the commit immediately before the first one I sent that fixed src/hb-ft.cc Hanspeter -- The appearance of the concept of good and evil, interpreted by man as his expulsion from Paradise, was probably a molecular disease that turned out to be evolution. --E. Zuckerkandl and L. Pauling _______________________________________________ Fink-users mailing list [email protected] List archive: https://sourceforge.net/p/fink/mailman/fink-users/ Subscription management: https://lists.sourceforge.net/lists/listinfo/fink-users